123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- 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
- }
|