chart_classify.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package services
  2. import (
  3. "eta/eta_forum_hub/models"
  4. "eta/eta_forum_hub/services/alarm_msg"
  5. "eta/eta_forum_hub/utils"
  6. "fmt"
  7. "time"
  8. )
  9. // 批量新增或更新图表分类
  10. func BatchAddOrUpdateChartClassify(req *models.ChartClassifySyncReq) (err error, isSendEmail bool) {
  11. defer func() {
  12. if err != nil {
  13. utils.FileLog.Info("新增或更新图表分类, BatchAddOrUpdateChartClassify Err: " + err.Error())
  14. go alarm_msg.SendAlarmMsg("新增或更新图表分类, BatchAddOrUpdateChartClassify Err: "+err.Error(), 3)
  15. }
  16. }()
  17. isSendEmail = true
  18. if len(req.List) == 0 {
  19. return
  20. }
  21. // 构建待删除列表
  22. deleteList := make(map[int]int)
  23. // 获取现有分类数据
  24. classifyList, err := models.GetChartClassifyAll(1)
  25. if err != nil {
  26. err = fmt.Errorf("获取图表分类数据失败,%v", err)
  27. return
  28. }
  29. classifyMap := make(map[int]*models.ChartClassify)
  30. for _, v := range classifyList {
  31. deleteList[v.ChartClassifyId] = v.ChartClassifyId
  32. classifyMap[v.ChartClassifyId] = v
  33. }
  34. // 处理请求列表
  35. for _, item := range req.List {
  36. classify, exists := classifyMap[item.ChartClassifyId]
  37. if exists {
  38. delete(deleteList, item.ChartClassifyId)
  39. } else {
  40. classify = new(models.ChartClassify)
  41. }
  42. // 更新字段
  43. classify.ChartClassifyId = item.ChartClassifyId
  44. classify.ChartClassifyName = item.ChartClassifyName
  45. classify.ParentId = item.ParentId
  46. classify.Sort = item.Sort
  47. classify.HasData = item.HasData
  48. classify.Level = item.Level
  49. classify.UniqueCode = item.UniqueCode
  50. classify.Source = item.Source
  51. classify.IsJoinPermission = item.IsJoinPermission
  52. classify.ChartClassifyNameEn = item.ChartClassifyNameEn
  53. classify.LevelPath = item.LevelPath
  54. classify.IsSelected = item.IsSelected
  55. classify.ResourceStatus = item.ResourceStatus
  56. classify.SysUserId = item.SysUserId
  57. classify.SysUserRealName = item.SysUserRealName
  58. classify.ModifyTime = time.Now()
  59. if !exists {
  60. classify.CreateTime = time.Now()
  61. _, err = models.AddChartClassify(classify)
  62. if err != nil {
  63. err = fmt.Errorf("新增图表分类失败,Err:%s", err.Error())
  64. return
  65. }
  66. } else {
  67. err = classify.Update([]string{})
  68. if err != nil {
  69. err = fmt.Errorf("更新图表分类失败,Err:%s", err.Error())
  70. return
  71. }
  72. }
  73. }
  74. // 删除不在请求中的分类
  75. for _, id := range deleteList {
  76. err = models.DeleteChartClassify(id)
  77. if err != nil {
  78. err = fmt.Errorf("删除图表分类失败,Err:%s", err.Error())
  79. return
  80. }
  81. }
  82. return
  83. }
  84. // 新增或者更新图表分类
  85. func AddOrUpdateChartClassify(req *models.ChartClassify) (err error) {
  86. defer func() {
  87. if err != nil {
  88. utils.FileLog.Info("新增或者更新图表分类, AddOrUpdateChartClassify Err: " + err.Error())
  89. go alarm_msg.SendAlarmMsg("新增或者更新图表分类, AddOrUpdateChartClassify Err: "+err.Error(), 3)
  90. }
  91. }()
  92. // 查询分类id是否存在
  93. exist, err := models.GetChartClassifyById(req.ChartClassifyId)
  94. if err != nil && err.Error() != utils.ErrNoRow() {
  95. err = fmt.Errorf("查询分类id是否存在失败,Err:%s", err.Error())
  96. return
  97. }
  98. isAdd := false
  99. if exist == nil {
  100. isAdd = true
  101. }
  102. if isAdd {
  103. req.CreateTime = time.Now()
  104. req.ModifyTime = time.Now()
  105. _, err = models.AddChartClassify(req)
  106. } else {
  107. exist.ModifyTime = time.Now()
  108. err = exist.Update([]string{})
  109. }
  110. return
  111. }