20 changed files with 496 additions and 71 deletions
@ -0,0 +1,103 @@ |
|||
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 |
|||
} |
|||
Loading…
Reference in new issue