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.
103 lines
3.5 KiB
103 lines
3.5 KiB
package grantpowers
|
|
|
|
import (
|
|
"appPlatform/models/modelAppPlatform"
|
|
"appPlatform/models/modelssystempermission"
|
|
"appPlatform/overall"
|
|
"appPlatform/overall/publicmethod"
|
|
"encoding/json"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-11 11:12:02
|
|
@ 功能: 处理自定义应用授权数据
|
|
*/
|
|
func (a *ApiMethod) GainAppEmpowerPower(c *gin.Context) {
|
|
var requestData GainAppIdAndRoleNew
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知App!不可获取表单列表!")
|
|
return
|
|
}
|
|
appSignCode, _ := strconv.ParseInt(requestData.Id, 10, 64)
|
|
|
|
roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
|
|
|
|
powerInfo, formButPowerList := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id)
|
|
|
|
var appMenuList []modelAppPlatform.Appmenus
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`isLock` = 2 AND `appkey` = ?", appSignCode).Find(&appMenuList)
|
|
var sendList []CusterAppTablePower
|
|
for _, v := range appMenuList {
|
|
powerInfo, isOk := CallBackAppMenuPower(v, powerInfo.PowerList)
|
|
if isOk {
|
|
sendList = append(sendList, powerInfo)
|
|
} else {
|
|
var cfInfo modelAppPlatform.CustomerForm
|
|
cfInfo.GetCont(map[string]interface{}{"`signCode`": v.Id}, "`groupid`", "`listjson`")
|
|
formPower := GainAppTablePower(roleIdInt, cfInfo.Groupid, v.Id)
|
|
var sendInfo CusterAppTablePower
|
|
sendInfo.Id = strconv.FormatInt(v.Id, 10)
|
|
sendInfo.Name = v.Label
|
|
sendInfo.SignCode = strconv.FormatInt(v.Id, 10)
|
|
sendInfo.TablePower = formPower.TablePower
|
|
sendInfo.ListPower = formPower.ListPower
|
|
if cfInfo.ListJson != "" {
|
|
sendInfo.IstIsTrue = true
|
|
} else {
|
|
sendInfo.IstIsTrue = false
|
|
}
|
|
sendInfo.DatePower.Types = formPower.DatePower.Types
|
|
sendInfo.DatePower.Attribute = formPower.DatePower.Attribute
|
|
sendInfo.ParentId = v.Parent
|
|
sendList = append(sendList, sendInfo)
|
|
}
|
|
}
|
|
outData := publicmethod.MapOut[string]()
|
|
// outData["list"] = AppMenuTree(appSignCode, sendList)
|
|
outData["list"] = sendList
|
|
outData["groupButPower"] = []string{}
|
|
outData["formButPower"] = formButPowerList
|
|
//获取app按钮控制
|
|
var groupPower modelssystempermission.AuthGroupPower
|
|
groupPower.GetCont(map[string]interface{}{"`appType`": requestData.AppType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": roleIdInt})
|
|
if groupPower.PowerInfo != "" {
|
|
var butPower []string
|
|
json.Unmarshal([]byte(groupPower.PowerInfo), &butPower)
|
|
outData["groupButPower"] = butPower
|
|
}
|
|
publicmethod.Result(0, outData, c)
|
|
}
|
|
|
|
func AppMenuTree(parentId int64, list []CusterAppTablePower) []CusterAppTablePower {
|
|
treeList := []CusterAppTablePower{}
|
|
for _, v := range list {
|
|
if v.ParentId == parentId {
|
|
var treeInfo CusterAppTablePower
|
|
treeInfo.Id = v.Id //表单ID
|
|
treeInfo.Name = v.Name //表单名称
|
|
treeInfo.SignCode = v.SignCode //表单识别符
|
|
treeInfo.ParentId = v.ParentId //上级
|
|
treeInfo.IstIsTrue = v.IstIsTrue
|
|
treeInfo.TableIsAll = v.TableIsAll
|
|
treeInfo.TablePower = v.TablePower //表单权限
|
|
treeInfo.ListIsAll = v.ListIsAll
|
|
treeInfo.ListPower = v.ListPower //列表权限
|
|
treeInfo.DatePower = v.DatePower //数据权限
|
|
treeInfo.AppButPower = v.AppButPower //页面按钮权限
|
|
idInt, _ := strconv.ParseInt(v.Id, 10, 64)
|
|
treeInfo.Children = AppMenuTree(idInt, list)
|
|
treeList = append(treeList, treeInfo)
|
|
}
|
|
}
|
|
return treeList
|
|
}
|
|
|