|
@@ -1,6 +1,7 @@
|
|
|
package data
|
|
|
|
|
|
import (
|
|
|
+ "errors"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/data/data_manage_permission"
|
|
@@ -220,3 +221,156 @@ func HandleNoPermissionChart(allNodes []*data_manage.ChartClassifyItems, noPermi
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// AddChartClassify
|
|
|
+// @Description: 添加图表分类
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-04-17 14:48:23
|
|
|
+// @param chartClassifyName string
|
|
|
+// @param parentId int
|
|
|
+// @param level int
|
|
|
+// @param source int
|
|
|
+// @param lang string
|
|
|
+// @param sysUser *system.Admin
|
|
|
+// @return classifyInfo *data_manage.ChartClassify
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
+// @return isSendEmail bool
|
|
|
+func AddChartClassify(chartClassifyName string, parentId, level, source int, lang string, sysUser *system.Admin) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ errMsg = "保存分类失败"
|
|
|
+ // 版本校验
|
|
|
+ switch lang {
|
|
|
+ case utils.LangEn:
|
|
|
+ count, tmpErr := data_manage.GetChartClassifyEnCount(chartClassifyName, parentId, source)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断名称是否已存在失败"
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "分类名称已存在,请重新输入"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ count, tmpErr := data_manage.GetChartClassifyCount(chartClassifyName, parentId, source)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断名称是否已存在失败"
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "分类名称已存在,请重新输入"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取该层级下最大的排序数
|
|
|
+ maxSort, err := data_manage.GetChartClassifyMaxSort(parentId, source)
|
|
|
+
|
|
|
+ classifyInfo = new(data_manage.ChartClassify)
|
|
|
+ classifyInfo.ParentId = parentId
|
|
|
+ classifyInfo.ChartClassifyName = chartClassifyName
|
|
|
+ classifyInfo.ChartClassifyNameEn = chartClassifyName
|
|
|
+ classifyInfo.HasData = 0
|
|
|
+ classifyInfo.CreateTime = time.Now()
|
|
|
+ classifyInfo.ModifyTime = time.Now()
|
|
|
+ classifyInfo.SysUserId = sysUser.AdminId
|
|
|
+ classifyInfo.SysUserRealName = sysUser.RealName
|
|
|
+ classifyInfo.Level = level + 1
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
+ classifyInfo.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
|
|
|
+ classifyInfo.Sort = maxSort + 1
|
|
|
+ classifyInfo.Source = source
|
|
|
+
|
|
|
+ _, err = data_manage.AddChartClassify(classifyInfo)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// EditChartClassify
|
|
|
+// @Description: 修改图表分类
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-04-17 14:59:37
|
|
|
+// @param chartClassifyId int
|
|
|
+// @param source int
|
|
|
+// @param chartClassifyName string
|
|
|
+// @param lang string
|
|
|
+// @param sysUser *system.Admin
|
|
|
+// @return classifyInfo *data_manage.ChartClassify
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
+// @return isSendEmail bool
|
|
|
+func EditChartClassify(chartClassifyId, source int, chartClassifyName, lang string, sysUser *system.Admin) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ errMsg = "保存失败"
|
|
|
+
|
|
|
+ // 获取分类信息
|
|
|
+ classifyInfo, err = data_manage.GetChartClassifyById(chartClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类来源校验
|
|
|
+ if classifyInfo.Source != source {
|
|
|
+ errMsg = "图表分类异常"
|
|
|
+ err = errors.New(fmt.Sprintf("图表分类来源异常,修改来源:%d,分类来源:%d", source, classifyInfo.Source))
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 需要变更的字段
|
|
|
+ updateCols := make([]string, 0)
|
|
|
+
|
|
|
+ // 语言版本校验
|
|
|
+ switch lang {
|
|
|
+ case utils.LangEn:
|
|
|
+ if classifyInfo.ChartClassifyNameEn != chartClassifyName {
|
|
|
+ count, tmpErr := data_manage.GetChartClassifyEnCount(chartClassifyName, classifyInfo.ParentId, source)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断名称是否已存在失败"
|
|
|
+ err = errors.New("判断名称是否已存在失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "分类名称已存在,请重新输入"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyInfo.ChartClassifyNameEn = chartClassifyName
|
|
|
+ classifyInfo.ModifyTime = time.Now()
|
|
|
+ updateCols = append(updateCols, "ChartClassifyName", "ModifyTime")
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ if classifyInfo.ChartClassifyName != chartClassifyName {
|
|
|
+ count, tmpErr := data_manage.GetChartClassifyCount(chartClassifyName, classifyInfo.ParentId, source)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断名称是否已存在失败"
|
|
|
+ err = errors.New("判断名称是否已存在失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "分类名称已存在,请重新输入"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyInfo.ChartClassifyName = chartClassifyName
|
|
|
+ classifyInfo.ModifyTime = time.Now()
|
|
|
+ updateCols = append(updateCols, "ChartClassifyName", "ModifyTime")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(updateCols) > 0 {
|
|
|
+ err = classifyInfo.Update(updateCols)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|