report_classify.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package eta
  2. import (
  3. "fmt"
  4. "hongze/hz_crm_eta/models/eta"
  5. "hongze/hz_crm_eta/services/alarm_msg"
  6. "hongze/hz_crm_eta/utils"
  7. )
  8. // UpdateParentClassifyHasTel 更新父级分类是否含有电话字段
  9. func UpdateParentClassifyHasTel(classifyId, parentId, hasTeleconference int) (err error) {
  10. if classifyId <= 0 || parentId <= 0 {
  11. return
  12. }
  13. defer func() {
  14. if err != nil {
  15. alarm_msg.SendAlarmMsg("编辑分类后-修改父级分类电话会信息失败, ErrMsg: "+err.Error(), 3)
  16. }
  17. }()
  18. ob := new(eta.Classify)
  19. parentClassify, e := ob.GetClassifyById(parentId)
  20. if e != nil {
  21. if e == utils.ErrNoRow {
  22. err = fmt.Errorf("父级分类不存在")
  23. return
  24. }
  25. err = fmt.Errorf("获取父级分类信息失败, Err: %s", e.Error())
  26. return
  27. }
  28. if parentClassify == nil {
  29. err = fmt.Errorf("父级分类不存在")
  30. return
  31. }
  32. updateParent := false
  33. updateCols := make([]string, 0)
  34. updateCols = append(updateCols, "HasTeleconference")
  35. if hasTeleconference == 1 {
  36. // 二级分类包含电话会,则一级分类也默认包含电话会
  37. if parentClassify.HasTeleconference == 0 {
  38. parentClassify.HasTeleconference = 1
  39. updateParent = true
  40. }
  41. } else {
  42. // 二级分类均无电话会,则一级分类也无电话会
  43. if parentClassify.HasTeleconference == 1 {
  44. child, e := eta.GetClassifyChild(parentClassify.Id, "")
  45. if e != nil {
  46. err = fmt.Errorf("获取子分类失败, Err: %s", e.Error())
  47. return
  48. }
  49. // 存在同一级分类下的二级分类有电话会则不变动
  50. hasTel := false
  51. for i := 0; i < len(child); i++ {
  52. if child[i].HasTeleconference == 1 && child[i].Id != classifyId {
  53. hasTel = true
  54. break
  55. }
  56. }
  57. if !hasTel {
  58. parentClassify.HasTeleconference = 0
  59. updateParent = true
  60. }
  61. }
  62. }
  63. if updateParent {
  64. if e = parentClassify.UpdateClassify(updateCols); e != nil {
  65. err = fmt.Errorf("更新父级分类失败, Err: %s", e.Error())
  66. return
  67. }
  68. }
  69. return
  70. }