diff --git a/api/version1/grantpowers/postpower.go b/api/version1/grantpowers/postpower.go index 099f68f..dfaa033 100644 --- a/api/version1/grantpowers/postpower.go +++ b/api/version1/grantpowers/postpower.go @@ -136,7 +136,7 @@ func GetSysKpiMenuPower(menusPower, operPower []string) (powersList []string) { */ func GetWmsMenuPower(menusPower []string) (powersList []string) { var permList []int64 - err := overall.CONSTANT_DB_AppPlatform.Model(&modelsstorage.AccesstoAddress{}).Select("`id`").Where("`state` = 1").Find(&permList).Error + err := overall.CONSTANT_DB_Storage.Model(&modelsstorage.AccesstoAddress{}).Select("`id`").Where("`state` = 1").Find(&permList).Error if err != nil { return } @@ -148,3 +148,66 @@ func GetWmsMenuPower(menusPower []string) (powersList []string) { } return } + +/* +* +@ 作者: 秦东 +@ 时间: 2023-05-30 14:36:57 +@ 功能: 获取角色已配置的权限 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func (a *ApiMethod) GetRoleGrantPowers(c *gin.Context) { + var requestData GetRolePowerCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + publicmethod.Result(100, err, c) + return + } + if requestData.RoleId == "" || requestData.RoleId == "0" { + publicmethod.Result(1, requestData, c, "未知角色!不可进行配权") + return + } + if requestData.SystemName == "" { + publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权") + return + } + var powerList []string + var empowerCont modelssystempermission.RoleEmpower + err = empowerCont.GetCont(map[string]interface{}{"`role_id`": requestData.RoleId, "`system`": requestData.SystemName}, "`id`", "`point_id`", "`operation`") + if err != nil { + publicmethod.Result(0, powerList, c) + return + } + switch requestData.SystemName { + case "kpi": + if empowerCont.PointId != "" || empowerCont.Operation != "" { + powerAry := strings.Split(empowerCont.PointId, ",") + opeartionAry := strings.Split(empowerCont.Operation, ",") + powerList = GetSysKpiMenuPower(powerAry, opeartionAry) + } + case "cangchu": + fmt.Printf("仓储--->%v\n", empowerCont.PointId) + if empowerCont.PointId != "" { + powerAry := strings.Split(empowerCont.PointId, ",") + powerList = GetWmsMenuPower(powerAry) + fmt.Printf("仓储--111->%v\n", powerList) + } + default: + if empowerCont.PointId != "" { + powerAry := strings.Split(empowerCont.PointId, ",") + powerList = GetSysAppMenuPower(powerAry) + } + + } + publicmethod.Result(0, powerList, c) +} diff --git a/api/version1/grantpowers/type.go b/api/version1/grantpowers/type.go index f33da54..3050ae3 100644 --- a/api/version1/grantpowers/type.go +++ b/api/version1/grantpowers/type.go @@ -39,3 +39,11 @@ type GetPostPowerCont struct { PostId string `json:"postid"` //岗位 SystemName string `json:"name"` //系统识别符 } + +/* +根据系统获取岗位已配置的权限 +*/ +type GetRolePowerCont struct { + RoleId string `json:"roleid"` //角色Id + SystemName string `json:"name"` //系统识别符 +} diff --git a/api/version1/user/userCont.go b/api/version1/user/userCont.go index 21b2e9a..931d8ce 100644 --- a/api/version1/user/userCont.go +++ b/api/version1/user/userCont.go @@ -107,24 +107,46 @@ func GetUserPower(appType string, postId int64, roleList []string) (menuPoint, o } //获取角色权限 if len(roleList) > 0 { - for _, v := range roleList { - var roleEmpower modelssystempermission.RoleEmpower - err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) - if err == nil { - if roleEmpower.PointId != "" { - pointIdList := strings.Split(roleEmpower.PointId, ",") - menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) - } - if roleEmpower.Operation != "" { - operationIdList := strings.Split(roleEmpower.Operation, ",") - opeart = publicmethod.MergeStruct[string](operationIdList, opeart) - } - if roleEmpower.Organization != "" { - orgIdList := strings.Split(roleEmpower.Organization, ",") - orgList = publicmethod.MergeStruct[string](orgIdList, orgList) + var roleId []int64 + err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("`state` = 1 AND `id` IN ?", roleList).Find(&roleId).Error + if err == nil && len(roleId) > 0 { + for _, v := range roleId { + var roleEmpower modelssystempermission.RoleEmpower + err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) + if err == nil { + if roleEmpower.PointId != "" { + pointIdList := strings.Split(roleEmpower.PointId, ",") + menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) + } + if roleEmpower.Operation != "" { + operationIdList := strings.Split(roleEmpower.Operation, ",") + opeart = publicmethod.MergeStruct[string](operationIdList, opeart) + } + if roleEmpower.Organization != "" { + orgIdList := strings.Split(roleEmpower.Organization, ",") + orgList = publicmethod.MergeStruct[string](orgIdList, orgList) + } } } } + // for _, v := range roleList { + // var roleEmpower modelssystempermission.RoleEmpower + // err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) + // if err == nil { + // if roleEmpower.PointId != "" { + // pointIdList := strings.Split(roleEmpower.PointId, ",") + // menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) + // } + // if roleEmpower.Operation != "" { + // operationIdList := strings.Split(roleEmpower.Operation, ",") + // opeart = publicmethod.MergeStruct[string](operationIdList, opeart) + // } + // if roleEmpower.Organization != "" { + // orgIdList := strings.Split(roleEmpower.Organization, ",") + // orgList = publicmethod.MergeStruct[string](orgIdList, orgList) + // } + // } + // } } return diff --git a/apirouter/v1/grantsystempower/pc.go b/apirouter/v1/grantsystempower/pc.go index a4efc7c..3375c54 100644 --- a/apirouter/v1/grantsystempower/pc.go +++ b/apirouter/v1/grantsystempower/pc.go @@ -15,6 +15,6 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) { apiRouter.GET("", methodBinding.Index) //入口 apiRouter.POST("", methodBinding.Index) //入口 apiRouter.POST("get_post_grant_powers", methodBinding.GetPostGrantPowers) //获取岗位已配置的权限 - + apiRouter.POST("get_role_grant_powers", methodBinding.GetRoleGrantPowers) //获取角色已配置的权限 } }