You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
233 lines
7.7 KiB
233 lines
7.7 KiB
package jurisdictionpc
|
|
|
|
import (
|
|
"fmt"
|
|
"key_performance_indicators/models/modelshr"
|
|
"key_performance_indicators/models/modelssystempermission"
|
|
"key_performance_indicators/overall"
|
|
"key_performance_indicators/overall/publicmethod"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-05-29 13:06:32
|
|
@ 功能: 给指定岗位授权
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GrantPostSystemPowers(c *gin.Context) {
|
|
var receivedValue editPowerStructNew
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.OrdId == "" || receivedValue.OrdId == "0" {
|
|
publicmethod.Result(1, receivedValue, c, "未知行政组织!不可进行配权")
|
|
return
|
|
}
|
|
if receivedValue.PostId == "" || receivedValue.PostId == "0" {
|
|
publicmethod.Result(1, receivedValue, c, "未知岗位!不可进行配权")
|
|
return
|
|
}
|
|
if receivedValue.SystemName == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知配权系统!不可进行配权")
|
|
return
|
|
}
|
|
if receivedValue.Level == 0 {
|
|
receivedValue.Level = 2
|
|
}
|
|
var orgIdList []int64
|
|
switch receivedValue.Level {
|
|
case 2: //本部门
|
|
orgIdInt, _ := strconv.ParseInt(receivedValue.OrdId, 10, 64)
|
|
_, _, departmentId, _, _ := publicmethod.GetOrgStructure(orgIdInt)
|
|
// orgIdList = publicmethod.GetDepartmentSun(departmentId, orgIdList)
|
|
|
|
var getSunOrg publicmethod.GetOrgAllSun
|
|
getSunOrg.GetOrgSun(departmentId)
|
|
orgIdList = getSunOrg.Id
|
|
orgIdList = append(orgIdList, departmentId)
|
|
case 3: //本分部
|
|
orgIdInt, _ := strconv.ParseInt(receivedValue.OrdId, 10, 64)
|
|
_, companyId, _, _, _ := publicmethod.GetOrgStructure(orgIdInt)
|
|
// orgIdList = publicmethod.GetDepartmentSun(companyId, orgIdList)
|
|
var getSunOrg publicmethod.GetOrgAllSun
|
|
getSunOrg.GetOrgSun(companyId)
|
|
orgIdList = getSunOrg.Id
|
|
orgIdList = append(orgIdList, companyId)
|
|
case 4: //指定行政组织
|
|
case 5: //所有
|
|
overall.CONSTANT_DB_HR.Model(&modelshr.AdministrativeOrganization{}).Select("`id`").Where("`state` = 1").Find(&orgIdList)
|
|
default: //本岗位
|
|
orgIdInt, _ := strconv.ParseInt(receivedValue.OrdId, 10, 64)
|
|
orgIdList = append(orgIdList, orgIdInt)
|
|
}
|
|
var orgIdListAry []string //行政组织
|
|
for _, v := range orgIdList {
|
|
orgIdListAry = append(orgIdListAry, strconv.FormatInt(v, 10))
|
|
}
|
|
orgIdListStr := strings.Join(orgIdListAry, ",")
|
|
addTime := time.Now().Unix()
|
|
var empowerCont modelssystempermission.Empower
|
|
err = empowerCont.GetCont(map[string]interface{}{"`ordid`": receivedValue.OrdId, "`post_id`": receivedValue.PostId, "`system`": receivedValue.SystemName}, "`id`")
|
|
|
|
if len(receivedValue.PowerList) > 0 {
|
|
var menuList []string //权限点位
|
|
var menuOperationList []string //操作点位
|
|
for _, v := range receivedValue.PowerList {
|
|
switch receivedValue.SystemName {
|
|
case "kpi":
|
|
if v.Attribute != 4 {
|
|
menuList = append(menuList, v.Key)
|
|
}
|
|
if v.Attribute == 4 {
|
|
menuOperationList = append(menuOperationList, v.Key)
|
|
}
|
|
case "cangchu":
|
|
menuList = append(menuList, v.Key)
|
|
default:
|
|
menuList = append(menuList, v.Key)
|
|
}
|
|
}
|
|
menuListStr := strings.Join(menuList, ",")
|
|
menuOperationListStr := strings.Join(menuOperationList, ",")
|
|
fmt.Printf("操作点位-------->%v-------->%v\n", menuOperationListStr, menuOperationList)
|
|
if err != nil {
|
|
ordIdInt64, _ := strconv.ParseInt(receivedValue.OrdId, 10, 64)
|
|
empowerCont.OrdId = ordIdInt64 //行政组织"`
|
|
postIdInt64, _ := strconv.ParseInt(receivedValue.PostId, 10, 64)
|
|
empowerCont.PostId = postIdInt64 //岗位ID"`
|
|
empowerCont.System = receivedValue.SystemName //系统"`
|
|
empowerCont.PointId = menuListStr //权限点位"`
|
|
empowerCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|
empowerCont.Time = time.Now().Unix() //创建时间"`
|
|
empowerCont.Level = receivedValue.Level
|
|
empowerCont.Operation = menuOperationListStr
|
|
empowerCont.Organization = orgIdListStr
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&empowerCont).Error
|
|
} else {
|
|
err = empowerCont.EiteCont(map[string]interface{}{"`id`": empowerCont.Id}, map[string]interface{}{"`point_id`": menuListStr, "`operation`": menuOperationListStr, "`level`": receivedValue.Level, "`time`": addTime, "`state`": 1, "`organization`": orgIdListStr})
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "权限配置失败")
|
|
return
|
|
}
|
|
}
|
|
} else {
|
|
if err == nil {
|
|
err = empowerCont.EiteCont(map[string]interface{}{"`id`": empowerCont.Id}, map[string]interface{}{"`point_id`": "", "`operation`": "", "`level`": receivedValue.Level, "`time`": addTime, "`state`": 1, "`organization`": orgIdListStr})
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "权限配置失败")
|
|
return
|
|
}
|
|
}
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-05-30 14:59:12
|
|
@ 功能:
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GrantRoleSystemPowers(c *gin.Context) {
|
|
var receivedValue editRolePowerStructNew
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.RoleId == "" || receivedValue.RoleId == "0" {
|
|
publicmethod.Result(1, receivedValue, c, "未知角色!不可进行配权")
|
|
return
|
|
}
|
|
|
|
if receivedValue.SystemName == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知配权系统!不可进行配权")
|
|
return
|
|
}
|
|
if receivedValue.Level == 0 {
|
|
receivedValue.Level = 2
|
|
}
|
|
addTime := time.Now().Unix()
|
|
var empowerCont modelssystempermission.RoleEmpower
|
|
err = empowerCont.GetCont(map[string]interface{}{"`role_id`": receivedValue.RoleId, "`system`": receivedValue.SystemName}, "`id`")
|
|
if len(receivedValue.PowerList) < 1 {
|
|
if err == nil {
|
|
err = empowerCont.EiteCont(map[string]interface{}{"`id`": empowerCont.Id}, map[string]interface{}{"`point_id`": "", "`operation`": "", "`level`": receivedValue.Level, "`time`": addTime, "`state`": 1})
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "权限配置失败")
|
|
return
|
|
}
|
|
}
|
|
} else {
|
|
var menuList []string //权限点位
|
|
var menuOperationList []string //操作点位
|
|
for _, v := range receivedValue.PowerList {
|
|
switch receivedValue.SystemName {
|
|
case "kpi":
|
|
if v.Attribute != 4 {
|
|
menuList = append(menuList, v.Key)
|
|
}
|
|
if v.Attribute == 4 {
|
|
menuOperationList = append(menuOperationList, v.Key)
|
|
}
|
|
case "cangchu":
|
|
menuList = append(menuList, v.Key)
|
|
default:
|
|
menuList = append(menuList, v.Key)
|
|
}
|
|
}
|
|
menuListStr := strings.Join(menuList, ",")
|
|
menuOperationListStr := strings.Join(menuOperationList, ",")
|
|
if err == nil {
|
|
err = empowerCont.EiteCont(map[string]interface{}{"`id`": empowerCont.Id}, map[string]interface{}{"`point_id`": menuListStr, "`operation`": menuOperationListStr, "`level`": receivedValue.Level, "`time`": addTime, "`state`": 1})
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "权限配置失败")
|
|
return
|
|
}
|
|
} else {
|
|
roleIdInt, _ := strconv.ParseInt(receivedValue.RoleId, 10, 64)
|
|
empowerCont.RoleId = roleIdInt //行政组织"`
|
|
empowerCont.System = receivedValue.SystemName //系统"`
|
|
empowerCont.PointId = menuListStr //权限点位"`
|
|
empowerCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|
empowerCont.Time = addTime //创建时间"`
|
|
empowerCont.Level = receivedValue.Level //授权范围等级(1:本部门;2:本分部;3:所有)"`
|
|
empowerCont.Operation = menuOperationListStr //操作点位
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&empowerCont).Error
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "权限配置失败")
|
|
return
|
|
}
|
|
}
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|