|
@@ -0,0 +1,122 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "eta/eta_forum_hub/models"
|
|
|
+ "eta/eta_forum_hub/services/alarm_msg"
|
|
|
+ "eta/eta_forum_hub/utils"
|
|
|
+ "fmt"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// 批量新增或更新图表分类
|
|
|
+func BatchAddOrUpdateChartClassify(req *models.ChartClassifySyncReq) (err error, isSendEmail bool) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("新增或更新图表分类, BatchAddOrUpdateChartClassify Err: " + err.Error())
|
|
|
+ go alarm_msg.SendAlarmMsg("新增或更新图表分类, BatchAddOrUpdateChartClassify Err: "+err.Error(), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ isSendEmail = true
|
|
|
+ if len(req.List) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建待删除列表
|
|
|
+ deleteList := make(map[int]int)
|
|
|
+
|
|
|
+ // 获取现有分类数据
|
|
|
+ classifyList, err := models.GetChartClassifyAll(1)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("获取图表分类数据失败,%v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyMap := make(map[int]*models.ChartClassify)
|
|
|
+ for _, v := range classifyList {
|
|
|
+ deleteList[v.ChartClassifyId] = v.ChartClassifyId
|
|
|
+ classifyMap[v.ChartClassifyId] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理请求列表
|
|
|
+ for _, item := range req.List {
|
|
|
+ classify, exists := classifyMap[item.ChartClassifyId]
|
|
|
+ if exists {
|
|
|
+ delete(deleteList, item.ChartClassifyId)
|
|
|
+ } else {
|
|
|
+ classify = new(models.ChartClassify)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新字段
|
|
|
+ classify.ChartClassifyId = item.ChartClassifyId
|
|
|
+ classify.ChartClassifyName = item.ChartClassifyName
|
|
|
+ classify.ParentId = item.ParentId
|
|
|
+ classify.Sort = item.Sort
|
|
|
+ classify.HasData = item.HasData
|
|
|
+ classify.Level = item.Level
|
|
|
+ classify.UniqueCode = item.UniqueCode
|
|
|
+ classify.Source = item.Source
|
|
|
+ classify.IsJoinPermission = item.IsJoinPermission
|
|
|
+ classify.ChartClassifyNameEn = item.ChartClassifyNameEn
|
|
|
+ classify.LevelPath = item.LevelPath
|
|
|
+ classify.IsSelected = item.IsSelected
|
|
|
+ classify.ResourceStatus = item.ResourceStatus
|
|
|
+ classify.SysUserId = item.SysUserId
|
|
|
+ classify.SysUserRealName = item.SysUserRealName
|
|
|
+ classify.ModifyTime = time.Now()
|
|
|
+
|
|
|
+ if !exists {
|
|
|
+ classify.CreateTime = time.Now()
|
|
|
+ _, err = models.AddChartClassify(classify)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("新增图表分类失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = classify.Update([]string{})
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("更新图表分类失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除不在请求中的分类
|
|
|
+ for _, id := range deleteList {
|
|
|
+ err = models.DeleteChartClassify(id)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("删除图表分类失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// 新增或者更新图表分类
|
|
|
+func AddOrUpdateChartClassify(req *models.ChartClassify) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("新增或者更新图表分类, AddOrUpdateChartClassify Err: " + err.Error())
|
|
|
+ go alarm_msg.SendAlarmMsg("新增或者更新图表分类, AddOrUpdateChartClassify Err: "+err.Error(), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ // 查询分类id是否存在
|
|
|
+ exist, err := models.GetChartClassifyById(req.ChartClassifyId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ err = fmt.Errorf("查询分类id是否存在失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ isAdd := false
|
|
|
+ if exist == nil {
|
|
|
+ isAdd = true
|
|
|
+ }
|
|
|
+ if isAdd {
|
|
|
+ req.CreateTime = time.Now()
|
|
|
+ req.ModifyTime = time.Now()
|
|
|
+ _, err = models.AddChartClassify(req)
|
|
|
+ } else {
|
|
|
+ exist.ModifyTime = time.Now()
|
|
|
+ err = exist.Update([]string{})
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|