Browse Source

fix:指标名称只在当前用户下面唯一

Roc 1 week ago
parent
commit
ce4a48fcf6

+ 1 - 1
controllers/base_from_business.go

@@ -313,7 +313,7 @@ func (c *BusinessIndexController) Edit() {
 	}
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, c.Lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.SysUserId, req.EdbInfoId, req.EdbName, c.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()

+ 3 - 3
controllers/base_from_calculate.go

@@ -226,7 +226,7 @@ func (this *CalculateController) Edit() {
 	}
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.AdminId, req.EdbInfoId, req.EdbName, this.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()
@@ -514,7 +514,7 @@ func (this *CalculateController) BatchSave() {
 	//加入缓存机制,避免创建同一个名称的指标 end
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.AdminId, req.EdbInfoId, req.EdbName, this.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()
@@ -882,7 +882,7 @@ func (this *CalculateController) BatchEdit() {
 	}
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.AdminId, req.EdbInfoId, req.EdbName, this.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()

+ 3 - 3
controllers/base_from_predict_calculate.go

@@ -127,7 +127,7 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 	}
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, 0, req.EdbName, lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, req.AdminId, 0, req.EdbName, lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()
@@ -390,7 +390,7 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 	oldUnit := edbInfo.Unit
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(edbInfo.EdbInfoType, edbInfo.EdbInfoId, req.EdbName, lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(edbInfo.EdbInfoType, req.AdminId, edbInfo.EdbInfoId, req.EdbName, lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()
@@ -609,7 +609,7 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 	//加入缓存机制,避免创建同一个名称的指标 end
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, req.AdminId, req.EdbInfoId, req.EdbName, this.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
 		br.ErrMsg = "判断指标名称是否存在失败,Err:" + err.Error()

+ 27 - 29
logic/predict_edb.go

@@ -66,7 +66,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 	edbCode := sourceEdbInfo.EdbCode + "_" + time.Now().Format(utils.FormatShortDateTimeUnSpace)
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, 0, edbName, lang)
+	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, sysUserId, 0, edbName, lang)
 	if err != nil {
 		errMsg = "判断指标名称是否存在失败"
 		err = errors.New("判断指标名称是否存在失败,Err:" + err.Error())
@@ -404,24 +404,22 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 // EditPredictEdbInfo 编辑预测指标
 func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string, ruleList []models.RuleConfig, minValue, maxValue float64, lang string) (edbInfo *models.EdbInfo, err error, errMsg string) {
 	// 指标信息校验
-	{
-		edbInfo, err = models.GetEdbInfoById(edbInfoId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			errMsg = "修改失败"
-			err = errors.New("获取预测指标失败,Err:" + err.Error())
-			return
-		}
-		if edbInfo == nil {
-			errMsg = "找不到该预测指标"
-			err = errors.New(errMsg)
-			return
-		}
-		//必须是普通的指标
-		if edbInfo.EdbInfoType != 1 {
-			errMsg = "指标异常,不是预测指标"
-			err = errors.New(errMsg)
-			return
-		}
+	edbInfo, err = models.GetEdbInfoById(edbInfoId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		errMsg = "修改失败"
+		err = errors.New("获取预测指标失败,Err:" + err.Error())
+		return
+	}
+	if edbInfo == nil {
+		errMsg = "找不到该预测指标"
+		err = errors.New(errMsg)
+		return
+	}
+	//必须是普通的指标
+	if edbInfo.EdbInfoType != 1 {
+		errMsg = "指标异常,不是预测指标"
+		err = errors.New(errMsg)
+		return
 	}
 
 	var predictEdbConf *models.PredictEdbConf
@@ -443,7 +441,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 	}
 
 	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
-	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, edbInfoId, edbName, lang)
+	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, edbInfo.SysUserId, edbInfoId, edbName, lang)
 	if err != nil {
 		errMsg = "判断指标名称是否存在失败"
 		err = errors.New("判断指标名称是否存在失败,Err:" + err.Error())
@@ -988,12 +986,12 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 // @param lang string
 // @return has bool
 // @return err error
-func checkExistByEdbName(edbInfoType int, edbName, lang string) (has bool, err error) {
+func checkExistByEdbName(edbInfoType, userId int, edbName, lang string) (has bool, err error) {
 	var condition string
 	var pars []interface{}
 
-	condition += " AND edb_info_type=? "
-	pars = append(pars, 0)
+	condition += " AND edb_info_type=? AND sys_user_id=? "
+	pars = append(pars, edbInfoType, userId)
 
 	switch lang {
 	case utils.EnLangVersion:
@@ -1027,11 +1025,11 @@ func checkExistByEdbName(edbInfoType int, edbName, lang string) (has bool, err e
 // @param lang string
 // @return has bool
 // @return err error
-func checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang string) (has bool, err error) {
+func checkExistByEdbNameAndEdbInfoId(edbInfoType, userId, edbInfoId int, edbName, lang string) (has bool, err error) {
 	var condition string
 	var pars []interface{}
-	condition += " AND edb_info_type=? "
-	pars = append(pars, edbInfoType)
+	condition += " AND edb_info_type=? AND sys_user_id=? "
+	pars = append(pars, edbInfoType, userId)
 
 	condition += " AND edb_info_id<>? "
 	pars = append(pars, edbInfoId)
@@ -1068,12 +1066,12 @@ func checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang s
 // @param lang string
 // @return has bool
 // @return err error
-func CheckExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang string) (has bool, err error) {
+func CheckExistByEdbNameAndEdbInfoId(edbInfoType, userId, edbInfoId int, edbName, lang string) (has bool, err error) {
 	// 指标没有入库的情况
 	if edbInfoId == 0 {
-		return checkExistByEdbName(edbInfoType, edbName, lang)
+		return checkExistByEdbName(edbInfoType, userId, edbName, lang)
 	}
 
 	//指标已经入库的情况
-	return checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId, edbName, lang)
+	return checkExistByEdbNameAndEdbInfoId(edbInfoType, userId, edbInfoId, edbName, lang)
 }

+ 1 - 1
services/base_from_calculate.go

@@ -947,7 +947,7 @@ func EdbCalculateAdd(req models.EdbInfoCalculateSaveReq, lang string) (edbInfo *
 	}
 
 	// 校验指标名称是否存在
-	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, 0, req.EdbName, lang)
+	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, edbInfo.SysUserId, 0, req.EdbName, lang)
 	if err != nil {
 		errMsg = "判断指标名称是否存在失败,Err:" + err.Error()
 		err = fmt.Errorf("判断指标名称是否存在失败")