|
@@ -395,8 +395,7 @@ func UpdateEnglishVideoEs(videoId int, publishState int) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func UpdateEnglishReportClassifyId(oldItem, newItem, newParent *models.EnglishClassify, classifyId int) (err error) {
|
|
|
- //一级分类改为二级分类
|
|
|
+func UpdateEnglishReportClassifyId(oldItem, newItem *models.EnglishClassify, classifyId int) (err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
go alarm_msg.SendAlarmMsg("英文报告分类改名-同步更新报告表字段及权限表关键词失败3, Err:"+err.Error(), 3)
|
|
@@ -406,64 +405,51 @@ func UpdateEnglishReportClassifyId(oldItem, newItem, newParent *models.EnglishCl
|
|
|
//如果二级分类更换了父级分类,则更新报告中的父级分类ID
|
|
|
//如果一级分类更换了名称,则更新所有报告中的一级分类名称
|
|
|
//如果二级分类更换了名称,则更新所有报告中的二级分类名称
|
|
|
- if oldItem.ParentId != newItem.ParentId {
|
|
|
- parentClassifyName := ""
|
|
|
- parentId := 0
|
|
|
-
|
|
|
- //二级分类改为一级分类, 或者二级分类的一级分类有变更
|
|
|
- if newItem.ParentId > 0 {
|
|
|
- parentClassifyName = newParent.ClassifyName
|
|
|
- parentId = newParent.Id
|
|
|
- }
|
|
|
-
|
|
|
- // 更新报告表分类字段
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
-
|
|
|
- condition += ` AND classify_id_second = ? `
|
|
|
- pars = append(pars, classifyId)
|
|
|
- list, e := models.GetEnglishReportByCondition(condition, pars)
|
|
|
- if e != nil {
|
|
|
- err = e
|
|
|
- return
|
|
|
- }
|
|
|
- if len(list) > 0 {
|
|
|
- //二级分类改为一级分类
|
|
|
- if oldItem.ParentId > 0 && newItem.ParentId == 0 {
|
|
|
- //查询该二级分类下是否存在关联报告,如果存在则不允许变更
|
|
|
- err = fmt.Errorf("该分类有关联的报告,不允许变更为一级分类")
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- var idSlice []string
|
|
|
- for _, report := range list {
|
|
|
- idSlice = append(idSlice, strconv.Itoa(report.Id))
|
|
|
- }
|
|
|
- ids := strings.Join(idSlice, ",")
|
|
|
- if ids != "" {
|
|
|
- if err = models.UpdateEnglishReportByClassifyId(parentClassifyName, newItem.ClassifyName, parentId, oldItem.Id, ids); err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else if oldItem.ClassifyName != newItem.ClassifyName {
|
|
|
- if oldItem.ParentId > 0 {
|
|
|
- //只对二级分类名称作了修改
|
|
|
- // 更新报告表分类字段
|
|
|
- if err = models.UpdateEnglishReportSecondClassifyNameByClassifyId(classifyId, newItem.ClassifyName); err != nil {
|
|
|
- return
|
|
|
+ if oldItem.ParentId > 0 && oldItem.ParentId != newItem.ParentId {
|
|
|
+ //二级分类下的三级分类如果有报告,则该二级分类不允许改成一级分类
|
|
|
+ if oldItem.ParentId > 0 && oldItem.ParentId == oldItem.RootId {
|
|
|
+ if newItem.ParentId == 0 {
|
|
|
+ // 更新报告表分类字段
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += ` AND classify_id_first = ? `
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ count, e := models.GetEnglishReportCountByCondition(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ err = fmt.Errorf("该分类有关联的报告,不允许变更为一级分类")
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
- } else if oldItem.ParentId == 0 {
|
|
|
- //只对一级分类名称作了修改
|
|
|
- // 更新报告表分类字段
|
|
|
- if err = models.UpdateEnglishReportFirstClassifyNameByClassifyId(classifyId, newItem.ClassifyName); err != nil {
|
|
|
- return
|
|
|
+ } else if oldItem.ParentId > 0 && oldItem.ParentId != oldItem.RootId {
|
|
|
+ //三级分类下如果有报告,则该三级分类不允许改成二级或或者一级分类
|
|
|
+ if (newItem.ParentId > 0 && newItem.ParentId == newItem.RootId) || newItem.ParentId == 0 {
|
|
|
+ // 更新报告表分类字段
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += ` AND classify_id_second = ? `
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ count, e := models.GetEnglishReportCountByCondition(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ err = fmt.Errorf("该分类有关联的报告,不允许变更为二级分类或者一级分类")
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func UpdateEnglishVideoClassifyId(oldItem, newItem, newParent *models.EnglishClassify, classifyId int) (err error) {
|
|
|
+func UpdateEnglishVideoClassifyId(oldItem, newItem *models.EnglishClassify, classifyId int) (err error) {
|
|
|
//一级分类改为二级分类
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -474,56 +460,44 @@ func UpdateEnglishVideoClassifyId(oldItem, newItem, newParent *models.EnglishCla
|
|
|
//如果二级分类更换了父级分类,则更新报告中的父级分类ID
|
|
|
//如果一级分类更换了名称,则更新所有报告中的一级分类名称
|
|
|
//如果二级分类更换了名称,则更新所有报告中的二级分类名称
|
|
|
- if oldItem.ParentId != newItem.ParentId {
|
|
|
- parentClassifyName := ""
|
|
|
- parentId := 0
|
|
|
- //二级分类改为一级分类, 或者二级分类的一级分类有变更
|
|
|
- if newItem.ParentId > 0 {
|
|
|
- parentClassifyName = newParent.ClassifyName
|
|
|
- parentId = newParent.Id
|
|
|
- }
|
|
|
-
|
|
|
- // 更新报告表分类字段
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
-
|
|
|
- condition += ` AND classify_id_second = ? `
|
|
|
- pars = append(pars, classifyId)
|
|
|
- list, e := models.GetEnglishVideoByCondition(condition, pars)
|
|
|
- if e != nil {
|
|
|
- err = e
|
|
|
- return
|
|
|
- }
|
|
|
- if len(list) > 0 {
|
|
|
- //二级分类改为一级分类
|
|
|
- if oldItem.ParentId > 0 && newItem.ParentId == 0 {
|
|
|
- //查询该二级分类下是否存在关联报告,如果存在则不允许变更
|
|
|
- err = fmt.Errorf("该分类有关联的视频,不允许变更为一级分类")
|
|
|
- return
|
|
|
+ if oldItem.ParentId > 0 && oldItem.ParentId != newItem.ParentId {
|
|
|
+ //二级分类下的三级分类如果有报告,则该二级分类不允许改成一级分类
|
|
|
+ if oldItem.ParentId > 0 && oldItem.ParentId == oldItem.RootId {
|
|
|
+ if newItem.ParentId == 0 {
|
|
|
+ // 更新报告表分类字段
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += ` AND classify_id_first = ? `
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ count, e := models.GetEnglishVideoListCount(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ err = fmt.Errorf("该分类有关联的视频,不允许变更为一级分类")
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- var idSlice []string
|
|
|
- for _, report := range list {
|
|
|
- idSlice = append(idSlice, strconv.Itoa(report.Id))
|
|
|
- }
|
|
|
- ids := strings.Join(idSlice, ",")
|
|
|
- if ids != "" {
|
|
|
- if err = models.UpdateEnglishVideoByClassifyId(parentClassifyName, newItem.ClassifyName, parentId, oldItem.Id, ids); err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else if oldItem.ClassifyName != newItem.ClassifyName {
|
|
|
- if oldItem.ParentId > 0 {
|
|
|
- //只对二级分类名称作了修改
|
|
|
- // 更新报告表分类字段
|
|
|
- if err = models.UpdateEnglishVideoSecondClassifyNameByClassifyId(classifyId, newItem.ClassifyName); err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- } else if oldItem.ParentId == 0 {
|
|
|
- //只对一级分类名称作了修改
|
|
|
- // 更新报告表分类字段
|
|
|
- if err = models.UpdateEnglishVideoFirstClassifyNameByClassifyId(classifyId, newItem.ClassifyName); err != nil {
|
|
|
- return
|
|
|
+ } else if oldItem.ParentId > 0 && oldItem.ParentId != oldItem.RootId {
|
|
|
+ //三级分类下如果有报告,则该三级分类不允许改成二级或或者一级分类
|
|
|
+ if (newItem.ParentId > 0 && newItem.ParentId == newItem.RootId) || newItem.ParentId == 0 {
|
|
|
+ // 更新报告表分类字段
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += ` AND classify_id_second = ? `
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ count, e := models.GetEnglishVideoListCount(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ err = fmt.Errorf("该分类有关联的视频,不允许变更为二级分类或者一级分类")
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|