Selaa lähdekoodia

Merge remote-tracking branch 'origin/debug' into debug

Roc 1 vuosi sitten
vanhempi
commit
6feaad621c

+ 46 - 48
controllers/data_manage/edb_classify.go

@@ -813,7 +813,7 @@ func (this *EdbClassifyController) ItemsV3() {
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
-	classifyAll, err := data_manage.GetEdbClassifyAllV2()
+	classifyAll, err := data_manage.GetEdbClassifyAllV2(0)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
@@ -822,7 +822,6 @@ func (this *EdbClassifyController) ItemsV3() {
 	rootTwoMap := make(map[int][]*data_manage.EdbClassifyItems)
 	for _, v := range rootTwoList {
 		button := data.GetEdbClassifyOpButton(this.SysUser, v.SysUserId)
-		button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 		v.Button = button
 
 		rootTwoMap[v.ParentId] = append(rootTwoMap[v.ParentId], v)
@@ -830,7 +829,6 @@ func (this *EdbClassifyController) ItemsV3() {
 	rootTwoChildMap := make(map[int][]*data_manage.EdbClassifyItems)
 	for _, v := range classifyAll {
 		button := data.GetEdbClassifyOpButton(this.SysUser, v.SysUserId)
-		button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 		v.Button = button
 		if v.Level == 3 {
 			rootTwoChildMap[v.ParentId] = append(rootTwoChildMap[v.ParentId], v)
@@ -888,48 +886,48 @@ func (this *EdbClassifyController) ItemsV3() {
 // @Description 分类移动接口v2
 // @Success 200 {object} data_manage.MoveEdbClassifyReq
 // @router /edb_classify/move/v2 [post]
-func (this *EdbClassifyController) EdbClassifyMoveV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-
-	var req data_manage.MoveEdbClassifyReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-
-	if req.ClassifyId <= 0 {
-		br.Msg = "参数错误"
-		br.ErrMsg = "分类id小于等于0"
-		return
-	}
-
-	err, errMsg := data.MoveEdbClassify(req.ClassifyId, req.ParentClassifyId, req.PrevClassifyId, req.NextClassifyId)
-	if errMsg != `` {
-		br.Msg = errMsg
-		br.ErrMsg = errMsg
-		if err != nil {
-			br.ErrMsg = err.Error()
-		} else {
-			br.IsSendEmail = false
-		}
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "移动成功"
-}
+//func (this *EdbClassifyController) EdbClassifyMoveV2() {
+//	br := new(models.BaseResponse).Init()
+//	defer func() {
+//		this.Data["json"] = br
+//		this.ServeJSON()
+//	}()
+//
+//	sysUser := this.SysUser
+//	if sysUser == nil {
+//		br.Msg = "请登录"
+//		br.ErrMsg = "请登录,SysUser Is Empty"
+//		br.Ret = 408
+//		return
+//	}
+//
+//	var req data_manage.MoveEdbClassifyReq
+//	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+//	if err != nil {
+//		br.Msg = "参数解析异常!"
+//		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+//		return
+//	}
+//
+//	if req.ClassifyId <= 0 {
+//		br.Msg = "参数错误"
+//		br.ErrMsg = "分类id小于等于0"
+//		return
+//	}
+//
+//	err, errMsg := data.MoveEdbClassify(req.ClassifyId, req.ParentClassifyId, req.PrevClassifyId, req.NextClassifyId)
+//	if errMsg != `` {
+//		br.Msg = errMsg
+//		br.ErrMsg = errMsg
+//		if err != nil {
+//			br.ErrMsg = err.Error()
+//		} else {
+//			br.IsSendEmail = false
+//		}
+//		return
+//	}
+//
+//	br.Ret = 200
+//	br.Success = true
+//	br.Msg = "移动成功"
+//}

+ 157 - 0
controllers/data_manage/predict_edb_classify.go

@@ -494,3 +494,160 @@ func (this *PredictEdbClassifyController) Move() {
 	br.Success = true
 	br.Msg = "移动成功"
 }
+
+// ListV2
+// @Title 预测指标分类列表
+// @Description 预测指标分类列表接口
+// @Param   IsOnlyMe   query   bool  false       "是否只看我的"
+// @Success 200 {object} data_manage.EdbClassifyListResp
+// @router /predict_classify/list/v2 [get]
+func (this *PredictEdbClassifyController) ListV2() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	isOnlyMe, _ := this.GetBool("IsOnlyMe")
+
+	rootList, err := data_manage.GetEdbClassifyByParentId(0, 1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	// 获取当前账号的不可见指标
+	obj := data_manage.EdbInfoNoPermissionAdmin{}
+	confList, err := obj.GetAllListByAdminId(this.SysUser.AdminId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
+		return
+	}
+	noPermissionEdbInfoIdMap := make(map[int]bool)
+	for _, v := range confList {
+		noPermissionEdbInfoIdMap[v.EdbInfoId] = true
+	}
+
+	allEdbInfo, err := data_manage.GetPredictEdbInfoAll(1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	edbInfoMap := make(map[int][]*data_manage.EdbClassifyItems)
+	for _, v := range allEdbInfo {
+		// 如果指标不可见,那么就不返回该指标
+		if _, ok := noPermissionEdbInfoIdMap[v.EdbInfoId]; ok {
+			continue
+		}
+		button := data.GetPredictEdbOpButton(this.SysUser, v.SysUserId)
+		button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
+		button.OpButton = false
+		button.DeleteButton = false
+		v.Button = button
+		if isOnlyMe {
+			if v.SysUserId == this.SysUser.AdminId {
+				edbInfoMap[v.ClassifyId] = append(edbInfoMap[v.ClassifyId], v)
+			}
+		} else {
+			edbInfoMap[v.ClassifyId] = append(edbInfoMap[v.ClassifyId], v)
+		}
+	}
+	//rootChildMap := make(map[int][]*data_manage.EdbClassifyItems)
+
+	//for _, v := range rootList {
+	//	button := data.GetPredictEdbClassifyOpButton(this.SysUser, v.SysUserId)
+	//	v.Button = button
+	//
+	//	rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
+	//	if existItems, ok := edbInfoMap[v.ClassifyId]; ok {
+	//		v.Children = existItems
+	//	} else {
+	//		items := make([]*data_manage.EdbClassifyItems, 0)
+	//		v.Children = items
+	//	}
+	//}
+	rootTwoList, err := data_manage.GetEdbClassifyByParentIdTwo( 1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	classifyAll, err := data_manage.GetEdbClassifyAllV2(1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	rootTwoMap := make(map[int][]*data_manage.EdbClassifyItems)
+	for _, v := range rootTwoList {
+		button := data.GetPredictEdbClassifyOpButton(this.SysUser, v.SysUserId)
+		v.Button = button
+		rootTwoMap[v.ParentId] = append(rootTwoMap[v.ParentId], v)
+	}
+	rootTwoChildMap := make(map[int][]*data_manage.EdbClassifyItems)
+	for _, v := range classifyAll {
+		button := data.GetPredictEdbClassifyOpButton(this.SysUser, v.SysUserId)
+		v.Button = button
+		if v.Level == 3 {
+			rootTwoChildMap[v.ParentId] = append(rootTwoChildMap[v.ParentId], v)
+		}
+	}
+
+	nodeAll := make([]*data_manage.EdbClassifyItems, 0)
+	for _, v := range rootList {
+		button := data.GetPredictEdbClassifyOpButton(this.SysUser, v.SysUserId)
+		v.Button = button
+
+		if existItems, ok := rootTwoMap[v.ClassifyId]; ok {
+			v.Children = existItems
+			for _, item := range existItems {
+				button := data.GetPredictEdbClassifyOpButton(this.SysUser, item.SysUserId)
+				item.Button = button
+
+				if existItems, ok := rootTwoChildMap[item.ClassifyId]; ok {
+					item.Children = existItems
+				} else {
+					items := make([]*data_manage.EdbClassifyItems, 0)
+					item.Children = items
+				}
+			}
+		} else {
+			items := make([]*data_manage.EdbClassifyItems, 0)
+			v.Children = items
+		}
+		nodeAll = append(nodeAll, v)
+	}
+	// 是否允许添加分类
+	canOpClassify := true
+
+	// 如果不是 超管 或者 ficc管理员,那么就没有权限
+	if this.SysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && this.SysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_FICC_ADMIN {
+		canOpClassify = false
+	}
+
+	language := `CN`
+	// 指标显示的语言
+	{
+		configDetail, _ := system.GetConfigDetailByCode(this.SysUser.AdminId, system.PredictEdbLanguageVar)
+		if configDetail != nil {
+			language = configDetail.ConfigValue
+		} else {
+			configDetail, _ = system.GetDefaultConfigDetailByCode(system.PredictEdbLanguageVar)
+			if configDetail != nil {
+				language = configDetail.ConfigValue
+			}
+		}
+	}
+
+	resp := data_manage.EdbClassifyListResp{
+		AllNodes:      nodeAll,
+		CanOpClassify: canOpClassify,
+		Language:      language,
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 59 - 0
controllers/data_manage/predict_edb_info.go

@@ -1792,3 +1792,62 @@ func (this *PredictEdbInfoController) Modify() {
 //func init() {
 //	data.AddOrEditAllEdbInfoToEs()
 //}
+
+// @Title 获取分类下指标接口
+// @Description 获取分类下指标接口
+// @Param   ClassifyId   query   int  true       "分类id"
+// @Success 200 {object} data_manage.EdbClassifyListResp
+// @router /predict_edb_info/items [get]
+func (this *PredictEdbInfoController) ClassifyEdbInfoItems() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	classifyId, _ := this.GetInt("ClassifyId")
+	if classifyId <= 0 {
+		br.Msg = "参数错误,请刷新页面"
+		return
+	}
+
+	// 获取当前账号的不可见指标
+	obj := data_manage.EdbInfoNoPermissionAdmin{}
+	confList, err := obj.GetAllListByAdminId(this.SysUser.AdminId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
+		return
+	}
+	noPermissionEdbInfoIdMap := make(map[int]bool)
+	for _, v := range confList {
+		noPermissionEdbInfoIdMap[v.EdbInfoId] = true
+	}
+
+	allEdbInfo, err := data_manage.GetEdbInfoByClassifyId(classifyId, 1)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+
+	list := make([]*data_manage.EdbClassifyItems, 0)
+	for _, v := range allEdbInfo {
+		// 如果指标不可见,那么就不返回该指标
+		if _, ok := noPermissionEdbInfoIdMap[v.EdbInfoId]; ok {
+			continue
+		}
+		button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE)
+		button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
+		v.Button = button
+
+		list = append(list, v)
+	}
+
+	resp := new(data_manage.ClassifyEdbInfoListResp)
+	resp.EdbInfoList = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 20 - 5
controllers/sys_admin.go

@@ -491,7 +491,10 @@ func (this *SysAdminController) Add() {
 	}
 
 	// 同步用户缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_USER_FROM_ETA, admin.AdminName)
+	var syncData system.SyncAdminData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.AdminName = admin.AdminName
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
 
 	err = services.UpdateResearcherTagGroup(admin.AdminId, req.ResearchGroupIds)
 	if err != nil {
@@ -690,7 +693,10 @@ func (this *SysAdminController) Edit() {
 	}
 
 	// 同步用户缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_USER_FROM_ETA, adminInfo.AdminName)
+	var syncData system.SyncAdminData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.AdminName = adminInfo.AdminName
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
 
 	// 用户登出
 	logOutSystemUser(adminInfo.AdminId)
@@ -759,7 +765,10 @@ func (this *SysAdminController) EditEnabled() {
 	}
 
 	// 同步用户缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_USER_FROM_ETA, adminItem.AdminName)
+	var syncData system.SyncAdminData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.AdminName = adminItem.AdminName
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
 
 	//用户被禁用的情况下,需要将他对应的token给过期
 	if adminItem.Enabled == 1 && req.Enabled == 0 {
@@ -818,7 +827,10 @@ func (this *SysAdminController) Delete() {
 	}
 
 	// 同步用户缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_USER_FROM_ETA, adminInfo.AdminName)
+	var syncData system.SyncAdminData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.AdminName = adminInfo.AdminName
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
 
 	// 删除手工数据关联用户
 	{
@@ -1056,7 +1068,10 @@ func (this *SysAdminController) Move() {
 	}
 
 	// 同步用户缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_USER_FROM_ETA, adminInfo.AdminName)
+	var syncData system.SyncAdminData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.AdminName = adminInfo.AdminName
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
 
 	// 清除系统用户列表缓存key
 	_ = utils.Rc.Delete(utils.CACHE_KEY_ADMIN)

+ 22 - 1
controllers/sys_department.go

@@ -48,12 +48,19 @@ func (this *SysDepartmentController) Add() {
 	item := new(system.SysDepartment)
 	item.DepartmentName = req.DepartmentName
 	item.CreateTime = time.Now()
-	_, err = system.AddSysDepartment(item)
+	departmentId, err := system.AddSysDepartment(item)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步部门缓存
+	var syncData system.SyncDepartmentData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.DepartmentId = int(departmentId)
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_DEPARTMENT, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "新增成功"
@@ -104,6 +111,13 @@ func (this *SysDepartmentController) Edit() {
 		br.ErrMsg = "修改失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步部门缓存
+	var syncData system.SyncDepartmentData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.DepartmentId = req.DepartmentId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_DEPARTMENT, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "修改成功"
@@ -138,6 +152,13 @@ func (this *SysDepartmentController) Delete() {
 		br.ErrMsg = "删除失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步部门缓存
+	var syncData system.SyncDepartmentData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.DepartmentId = req.DepartmentId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_DEPARTMENT, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "删除成功"

+ 38 - 7
controllers/sys_group.go

@@ -54,12 +54,18 @@ func (this *SysGroupController) Add() {
 			item.GroupName = v
 			item.DepartmentId = req.DepartmentId
 			item.CreateTime = time.Now()
-			_, err = system.AddSysGroup(item)
-			if err != nil {
+			groupId, e := system.AddSysGroup(item)
+			if e != nil {
 				br.Msg = "新增失败"
-				br.ErrMsg = "新增失败,Err:" + err.Error()
+				br.ErrMsg = "新增失败,Err:" + e.Error()
 				return
 			}
+
+			// 同步分组缓存
+			var syncData system.SyncGroupData
+			syncData.Source = utils.SOURCE_ETA_FLAG
+			syncData.GroupId = int(groupId)
+			_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
 		}
 	}
 	br.Ret = 200
@@ -112,6 +118,13 @@ func (this *SysGroupController) Edit() {
 		br.ErrMsg = "修改失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步分组缓存
+	var syncData system.SyncGroupData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.GroupId = req.GroupId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "修改成功"
@@ -152,6 +165,13 @@ func (this *SysGroupController) Delete() {
 		br.ErrMsg = "删除失败,情况分组失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步分组缓存
+	var syncData system.SyncGroupData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.GroupId = req.GroupId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "删除成功"
@@ -215,10 +235,21 @@ func (this *SysGroupController) SetSort() {
 				})
 			}
 		}
-		if e := system.MultiUpdateGroupSort(updateArr); e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "批量更新分组排序失败, Err: " + e.Error()
-			return
+
+		if len(updateArr) > 0 {
+			if e := system.MultiUpdateGroupSort(updateArr); e != nil {
+				br.Msg = "操作失败"
+				br.ErrMsg = "批量更新分组排序失败, Err: " + e.Error()
+				return
+			}
+
+			// 同步分组缓存
+			for _, g := range updateArr {
+				var syncData system.SyncGroupData
+				syncData.Source = utils.SOURCE_ETA_FLAG
+				syncData.GroupId = g.GroupId
+				_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
+			}
 		}
 	}
 

+ 13 - 4
controllers/sys_role.go

@@ -55,7 +55,7 @@ func (this *SysRoleController) Add() {
 	item.RoleTypeCode = services.GetRoleTypeCode(req.RoleType)
 	item.CreateTime = time.Now()
 	item.ModifyTime = time.Now()
-	_, err = system.AddSysRole(item)
+	roleId, err := system.AddSysRole(item)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -63,7 +63,10 @@ func (this *SysRoleController) Add() {
 	}
 
 	// 同步角色缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_ROLE_FROM_ETA, item.RoleName)
+	var syncData system.SyncRoleData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.RoleId = int(roleId)
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
 
 	br.Ret = 200
 	br.Success = true
@@ -118,7 +121,10 @@ func (this *SysRoleController) Edit() {
 	}
 
 	// 同步角色缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_ROLE_FROM_ETA, item.RoleName)
+	var syncData system.SyncRoleData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.RoleId = item.RoleId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
 
 	br.Ret = 200
 	br.Success = true
@@ -169,7 +175,10 @@ func (this *SysRoleController) Delete() {
 	}
 
 	// 同步角色缓存
-	_ = utils.Rc.LPush(utils.CACHE_SYNC_SYS_ROLE_FROM_ETA, role.RoleName)
+	var syncData system.SyncRoleData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.RoleId = role.RoleId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_ROLE, syncData)
 
 	br.Ret = 200
 	br.Success = true

+ 23 - 3
controllers/sys_team.go

@@ -55,12 +55,18 @@ func (this *SysTeamController) Add() {
 			item.DepartmentId = req.DepartmentId
 			item.ParentId = req.GroupId
 			item.CreateTime = time.Now()
-			_, err = system.AddSysGroup(item)
-			if err != nil {
+			groupId, e := system.AddSysGroup(item)
+			if e != nil {
 				br.Msg = "新增失败"
-				br.ErrMsg = "新增失败,Err:" + err.Error()
+				br.ErrMsg = "新增失败,Err:" + e.Error()
 				return
 			}
+
+			// 同步分组缓存
+			var syncData system.SyncGroupData
+			syncData.Source = utils.SOURCE_ETA_FLAG
+			syncData.GroupId = int(groupId)
+			_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
 		}
 	}
 	br.Ret = 200
@@ -113,6 +119,13 @@ func (this *SysTeamController) Edit() {
 		br.ErrMsg = "修改失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步分组缓存
+	var syncData system.SyncGroupData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.GroupId = item.GroupId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "修改成功"
@@ -153,6 +166,13 @@ func (this *SysTeamController) Delete() {
 		br.ErrMsg = "删除失败,情况分组失败,Err:" + err.Error()
 		return
 	}
+
+	// 同步分组缓存
+	var syncData system.SyncGroupData
+	syncData.Source = utils.SOURCE_ETA_FLAG
+	syncData.GroupId = req.TeamId
+	_ = utils.Rc.LPush(utils.CACHE_SYNC_GROUP, syncData)
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "删除成功"

+ 3 - 3
models/data_manage/edb_classify.go

@@ -270,10 +270,10 @@ type ClassifyEdbInfoListResp struct {
 }
 
 // GetEdbClassifyAllV2 获取普通指标的分类列表
-func GetEdbClassifyAllV2() (items []*EdbClassifyItems, err error) {
+func GetEdbClassifyAllV2(classifyType int8) (items []*EdbClassifyItems, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_classify WHERE parent_id <>0  AND classify_type = 0  order by sort asc,classify_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
+	sql := ` SELECT * FROM edb_classify WHERE parent_id <>0  AND classify_type = ?  order by sort asc,classify_id asc`
+	_, err = o.Raw(sql, classifyType).QueryRows(&items)
 	return
 }
 

+ 8 - 2
models/data_manage/my_chart.go

@@ -411,9 +411,15 @@ func GetChartClassify(chartClassifyId int) (chart_classify_id string, err error)
 			WHERE a.chart_classify_id=?
 			UNION ALL
 			SELECT a.chart_classify_id FROM chart_classify AS a 
-			WHERE a.parent_id=?
+			WHERE a.parent_id=? UNION ALL
+	SELECT
+		chart_classify_id 
+	FROM
+		chart_classify 
+WHERE
+	parent_id IN ( SELECT chart_classify_id FROM chart_classify WHERE parent_id = ? )
 			)AS t`
-	err = o.Raw(sql, chartClassifyId, chartClassifyId).QueryRow(&chart_classify_id)
+	err = o.Raw(sql, chartClassifyId, chartClassifyId, chartClassifyId).QueryRow(&chart_classify_id)
 	return
 }
 

+ 24 - 0
models/system/sys_admin.go

@@ -505,3 +505,27 @@ func GetRaiAdmin() (items []*AdminItem, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// SyncRoleData 同步角色数据
+type SyncRoleData struct {
+	Source int `description:"来源: 1-CRM; 2-ETA"`
+	RoleId int `description:"角色ID"`
+}
+
+// SyncAdminData 同步用户数据
+type SyncAdminData struct {
+	Source    int    `description:"来源: 1-CRM; 2-ETA"`
+	AdminName string `description:"用户名"`
+}
+
+// SyncDepartmentData 同步部门数据
+type SyncDepartmentData struct {
+	Source       int `description:"来源: 1-CRM; 2-ETA"`
+	DepartmentId int `description:"部门ID"`
+}
+
+// SyncGroupData 同步分组数据
+type SyncGroupData struct {
+	Source  int `description:"来源: 1-CRM; 2-ETA"`
+	GroupId int `description:"分组ID"`
+}

+ 18 - 9
routers/commentsRouter.go

@@ -1645,15 +1645,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbClassifyController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbClassifyController"],
-        beego.ControllerComments{
-            Method: "EdbClassifyMoveV2",
-            Router: `/edb_classify/move/v2`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbClassifyController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbClassifyController"],
         beego.ControllerComments{
             Method: "AddMysteelChemical",
@@ -3166,6 +3157,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbClassifyController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbClassifyController"],
+        beego.ControllerComments{
+            Method: "ListV2",
+            Router: `/predict_classify/list/v2`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbClassifyController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbClassifyController"],
         beego.ControllerComments{
             Method: "Move",
@@ -3274,6 +3274,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbInfoController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbInfoController"],
+        beego.ControllerComments{
+            Method: "ClassifyEdbInfoItems",
+            Router: `/predict_edb_info/items`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbInfoController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:PredictEdbInfoController"],
         beego.ControllerComments{
             Method: "List",

+ 11 - 2
utils/constants.go

@@ -199,8 +199,11 @@ const (
 	CACHE_KEY_DAYNEW_REFRESH          = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
 	CACHE_KEY_DAYNEW_TRANSLATE        = "admin:day_new:translate"             //每日资讯中翻英
 	CACHE_KEY_ADMIN_OPERATE_RECORD    = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
-	CACHE_SYNC_SYS_USER_FROM_ETA      = "hz_crm_eta:eta_admin_sync"           // 同步用户的缓存队列key
-	CACHE_SYNC_SYS_ROLE_FROM_ETA      = "hz_crm_eta:eta_role_sync"            // 同步角色的缓存队列key
+
+	CACHE_SYNC_ADMIN      = "hz_crm_eta:sync_admin"      // 同步用户的缓存队列key
+	CACHE_SYNC_ROLE       = "hz_crm_eta:sync_role"       // 同步角色的缓存队列key
+	CACHE_SYNC_DEPARTMENT = "hz_crm_eta:sync_department" // 同步部门的缓存队列key
+	CACHE_SYNC_GROUP      = "hz_crm_eta:sync_group"      // 同步分组的缓存队列key
 )
 
 // 模板消息推送类型
@@ -287,3 +290,9 @@ var FrequencyDaysMap = map[string]int{
 const (
 	AiChatLimit = 50
 )
+
+// 系统来源
+const (
+	SOURCE_CRM_FLAG = 1
+	SOURCE_ETA_FLAG = 2
+)