123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package services
- import (
- "errors"
- "eta/eta_api/models"
- "eta/eta_api/services/alarm_msg"
- "fmt"
- )
- // UpdateParentClassifyHasTel 更新父级分类是否含有电话字段
- func UpdateParentClassifyHasTel(classifyId, parentId, hasTeleconference int) (err error) {
- if classifyId <= 0 || parentId <= 0 {
- return
- }
- defer func() {
- if err != nil {
- alarm_msg.SendAlarmMsg("编辑分类后-修改父级分类电话会信息失败, ErrMsg: "+err.Error(), 3)
- }
- }()
- parentClassify, e := models.GetClassifyById(parentId)
- if e != nil {
- err = fmt.Errorf("获取父级分类信息失败, Err: %s", e.Error())
- return
- }
- updateParent := false
- updateCols := make([]string, 0)
- updateCols = append(updateCols, "HasTeleconference")
- if hasTeleconference == 1 {
- // 二级分类包含电话会,则一级分类也默认包含电话会
- if parentClassify.HasTeleconference == 0 {
- parentClassify.HasTeleconference = 1
- updateParent = true
- }
- } else {
- // 二级分类均无电话会,则一级分类也无电话会
- if parentClassify.HasTeleconference == 1 {
- child, e := models.GetClassifyChild(parentClassify.Id, "")
- if e != nil {
- err = fmt.Errorf("获取子分类失败, Err: %s", e.Error())
- return
- }
- // 存在同一级分类下的二级分类有电话会则不变动
- hasTel := false
- for i := 0; i < len(child); i++ {
- if child[i].HasTeleconference == 1 && child[i].Id != classifyId {
- hasTel = true
- break
- }
- }
- if !hasTel {
- parentClassify.HasTeleconference = 0
- updateParent = true
- }
- }
- }
- if updateParent {
- if e = parentClassify.UpdateClassify(updateCols); e != nil {
- err = fmt.Errorf("更新父级分类失败, Err: %s", e.Error())
- return
- }
- }
- return
- }
- // AfterUpdateClassifyNameOrParent 更新报告分类名称/父级分类后的操作
- // 当二级分类名称做了修改, 更新chart_permission_search_key_word_mapping对应的key_word
- // 以及report表中的classify_name_second, 不然报告的权限会有BUG
- func AfterUpdateClassifyNameOrParent(classifyId, parentId, originParentId int, originName, classifyName string, classifyLevel int) (err error) {
- if classifyId == 0 {
- return
- }
- defer func() {
- if err != nil {
- alarm_msg.SendAlarmMsg("更改分类名称后-同步更新报告表字段及权限表关键词失败, ErrMsg: "+err.Error(), 3)
- }
- }()
- // 修改名称
- // ETA1.8.3 现在任何一级都能挂报告,所以只需要名称变更就要去更新数据,不需要判断是否属于子分类(2024-6-18 10:37:17)
- if originName != classifyName {
- switch classifyLevel {
- case 1: // 一级分类
- if e := models.UpdateReportFirstClassifyNameByClassifyId(classifyId, classifyName); e != nil {
- err = fmt.Errorf("更新报告表一级分类名称失败, Err: %s", e.Error())
- return
- }
- case 2: // 二级分类
- // 更新报告表分类字段
- if e := models.UpdateReportSecondClassifyNameByClassifyId(classifyId, classifyName); e != nil {
- err = fmt.Errorf("更新报告表二级分类名称失败, Err: %s", e.Error())
- return
- }
- case 3: // 三级分类
- // 更新报告表分类字段
- if e := models.UpdateReportThirdClassifyNameByClassifyId(classifyId, classifyName); e != nil {
- err = fmt.Errorf("更新报告表三级分类名称失败, Err: %s", e.Error())
- return
- }
- default:
- err = errors.New(fmt.Sprint("错误的分类级别,ClassifyId:", classifyId, ";层级:", classifyLevel))
- return
- }
- // 更新关键词
- if e := models.UpdateChartPermissionNameFromMappingByKeyword(classifyName, classifyId, "rddp"); e != nil {
- err = fmt.Errorf("更新二级分类关键词失败, Err: %s", e.Error())
- return
- }
- // 同步crm_master
- _ = EditKeywordPermissionSync(classifyName, classifyId)
- }
- //// 二级分类-修改了父级分类
- //// ETA1.8.3已经不允许修改父级分类了(2024-6-18 10:37:17)
- //if originParentId > 0 && parentId > 0 && originParentId != parentId {
- // parentClassify, e := models.GetClassifyById(parentId)
- // if e != nil {
- // err = fmt.Errorf("获取父级分类信息失败, Err: %s", e.Error())
- // return
- // }
- // // 更新报告表一级分类名称和ID
- // if e = models.UpdateReportSecondClassifyFirstNameByClassifyId(classifyId, parentClassify.Id, parentClassify.ClassifyName); e != nil {
- // err = fmt.Errorf("更新报告表一级分类名称和ID, Err: %s", e.Error())
- // return
- // }
- //}
- return
- }
|