Procházet zdrojové kódy

fix:调整资产转移接口

Roc před 11 měsíci
rodič
revize
b88550a021

+ 2 - 5
controllers/data_manage/edb_info.go

@@ -3967,10 +3967,7 @@ func (this *EdbInfoController) MoveEdbChartList() {
 // MoveEdbChartUser
 // @Title 指标/图表创建人变更接口
 // @Description 指标/图表创建人变更接口
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
-// @Param   EdbInfoId   query   int  true       "指标id"
-// @Param   IsShowMe   query   bool  true       "是否只看我的,true、false"
+// @Param	request	body data_manage.MoveEdbChartReq true "type json string"
 // @Success 200 {object} data_manage.ChartListResp
 // @router /edb_chart/change_user [post]
 func (this *EdbInfoController) MoveEdbChartUser() {
@@ -4012,7 +4009,7 @@ func (this *EdbInfoController) MoveEdbChartUser() {
 		return
 	}
 
-	err, errMsg := data.MoveEdbChart(req.Source, req.NewUserId, req.DataIdList)
+	err, errMsg := data.MoveEdbChart(req.Source, req.NewUserId, req.IsSelectAll, req.DataIdList, req.Keyword, req.ClassifyId)
 	if err != nil {
 		//br.Success = true
 		br.Msg = "获取失败"

+ 6 - 3
models/data_manage/edb_info.go

@@ -1588,9 +1588,12 @@ type MoveEdbChartListResp struct {
 
 // MoveEdbChartReq 转移指标/图表的请求
 type MoveEdbChartReq struct {
-	Source     int      `description:"来源id"`
-	DataIdList []string `description:"指标/图表唯一id列表"`
-	NewUserId  int      `description:"新的创建人id"`
+	Source      int      `description:"来源id"`
+	DataIdList  []string `description:"指标/图表唯一id列表"`
+	NewUserId   int      `description:"新的创建人id"`
+	IsSelectAll bool     `description:"是否选择所有指标"`
+	ClassifyId  string   `description:"分类id,支持多选,用英文,隔开"`
+	Keyword     string   `description:"关键字"`
 }
 
 type EdbChartClassifyResp struct {

+ 15 - 0
models/data_manage/mysteel_chemical_index.go

@@ -318,6 +318,21 @@ func ModifyMysteelChemicalIndexUserIdByCodeList(edbIdList []string, userId int,
 	return
 }
 
+// ModifyMysteelChemicalIndexUserIdByOldUserId
+// @Description: 根据旧用户id修改新用户id
+// @author: Roc
+// @datetime 2024-03-25 17:59:08
+// @param oldUserId int
+// @param userId int
+// @param userName string
+// @return err error
+func ModifyMysteelChemicalIndexUserIdByOldUserId(oldUserId, userId int, userName string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `UPDATE base_from_mysteel_chemical_index SET sys_user_id=?,sys_user_real_name=? WHERE sys_user_id=?  `
+	_, err = o.Raw(sql, userId, userName, oldUserId).Exec()
+	return
+}
+
 // GetMysteelChemicalIndexAdminList 获取所有指标创建人
 func GetMysteelChemicalIndexAdminList() (list []int, err error) {
 	o := orm.NewOrmUsingDB("data")

+ 14 - 0
models/target.go

@@ -1445,6 +1445,20 @@ func ModifyEdbinfoUserIdByCodeList(edbCodeList []string, userId int) (err error)
 	return
 }
 
+// ModifyEdbinfoUserIdByOldUserId
+// @Description:  根据旧用户id修改新用户id
+// @author: Roc
+// @datetime 2024-03-25 17:59:32
+// @param oldUserId int
+// @param userId int
+// @return err error
+func ModifyEdbinfoUserIdByOldUserId(oldUserId, userId int) (err error) {
+	o := orm.NewOrmUsingDB("edb")
+	sql := `UPDATE edbinfo SET user_id=? WHERE user_id=? `
+	_, err = o.Raw(sql, userId, oldUserId).Exec()
+	return
+}
+
 func GetEdbInfoAdminList() (list []int, err error) {
 	sql := `SELECT user_id FROM edbinfo GROUP BY user_id `
 	o := orm.NewOrmUsingDB("edb")

+ 91 - 1
services/data/edb_info.go

@@ -1914,11 +1914,35 @@ func GetMoveEdbChartList(source, userId int, keyword, classify string, startSize
 
 // MoveEdbChart 转移指标/图表创建人
 // @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库
-func MoveEdbChart(source, userId int, dataId []string) (err error, errMsg string) {
+func MoveEdbChart(source, userId int, isSelectAll bool, dataId []string, keyword, classify string) (err error, errMsg string) {
 	adminInfo, err := system.GetSysAdminById(userId)
 	if err != nil {
 		return
 	}
+
+	// 如果勾选全部数据,那么
+	if isSelectAll {
+		// 找出不要的指标ID列表
+		dataIdMap := make(map[string]string, 0)
+		for _, v := range dataId {
+			dataIdMap[v] = v
+		}
+
+		// 需要转义的指标/图表ID列表
+		dataId = make([]string, 0)
+		// 获取所有指标/图表
+		list, _, tmpErr := GetMoveEdbChartList(source, userId, keyword, classify, 0, 100000)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		for _, v := range list {
+			if _, ok := dataIdMap[v.DataId]; !ok {
+				dataId = append(dataId, v.DataId)
+			}
+		}
+	}
+
 	switch source {
 	case 1: //手工数据指标
 		tmpList, tmpErr := models.GetEdbinfoListByCodeListGroupByUserId(dataId)
@@ -3257,3 +3281,69 @@ func EdbInfoSmmApiAdd(item *data_manage.EdbInfo) (edbInfo *data_manage.EdbInfo,
 	AddOrEditEdbInfoToEs(int(edbInfoId))
 	return
 }
+
+// MoveAllEdbChart 通过原创建人转移指标/图表创建人
+// @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库
+func MoveAllEdbChart(source, oldUserId, userId int) (err error, errMsg string) {
+	adminInfo, err := system.GetSysAdminById(userId)
+	if err != nil {
+		return
+	}
+
+	switch source {
+	case 1: //手工数据指标
+		// 修改创建人
+		err = models.ModifyEdbinfoUserIdByOldUserId(oldUserId, userId)
+
+	case 2: //钢联化工数据库
+		// 修改创建人
+		err = data_manage.ModifyMysteelChemicalIndexUserIdByOldUserId(oldUserId, adminInfo.AdminId, adminInfo.RealName)
+	case 3, 4: //ETA指标库、ETA预测指标
+		tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		if len(tmpList) > 0 {
+			for _, v := range tmpList {
+				if v.SysUserId == userId {
+					errMsg = "新创建人不可和原创建人一致"
+					err = errors.New(errMsg)
+					return
+				}
+			}
+			// 修改创建人
+			err = data_manage.ModifyEdbInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
+
+			// 移除当前用户的不可操作权限
+			{
+				obj := data_manage.EdbInfoNoPermissionAdmin{}
+				for _, v := range dataId {
+					edbInfoId, _ := strconv.Atoi(v)
+					go obj.DeleteByEdbInfoIdAndAdminId(edbInfoId, adminInfo.AdminId)
+				}
+			}
+		}
+	case 5: //图库
+		tmpList, tmpErr := data_manage.GetChartInfoListGroupByUserId(dataId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		if len(tmpList) > 0 {
+			for _, v := range tmpList {
+				if v.SysUserId == userId {
+					errMsg = "新创建人不可和原创建人一致"
+					err = errors.New(errMsg)
+					return
+				}
+			}
+			// 修改创建人
+			err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
+		}
+	default:
+		return
+	}
+
+	return
+}