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.
1119 lines
35 KiB
1119 lines
35 KiB
package grantpowers
|
|
|
|
import (
|
|
"appPlatform/models/modelAppPlatform"
|
|
"appPlatform/models/modelsschool"
|
|
"appPlatform/models/modelsstorage"
|
|
"appPlatform/models/modelssystempermission"
|
|
"appPlatform/overall"
|
|
"appPlatform/overall/publicmethod"
|
|
"encoding/json"
|
|
"fmt"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-05-29 16:07:22
|
|
@ 功能: 获取岗位已配置的权限
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetPostGrantPowers(c *gin.Context) {
|
|
var requestData GetPostPowerCont
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.OrdId == "" || requestData.OrdId == "0" {
|
|
publicmethod.Result(1, requestData, c, "未知行政组织!不可进行配权")
|
|
return
|
|
}
|
|
if requestData.PostId == "" || requestData.PostId == "0" {
|
|
publicmethod.Result(1, requestData, c, "未知岗位!不可进行配权")
|
|
return
|
|
}
|
|
if requestData.SystemName == "" {
|
|
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
|
|
return
|
|
}
|
|
var powerList []string
|
|
var empowerCont modelssystempermission.Empower
|
|
err = empowerCont.GetCont(map[string]interface{}{"`ordid`": requestData.OrdId, "`post_id`": requestData.PostId, "`system`": requestData.SystemName}, "`id`", "`point_id`", "`operation`", "`level`")
|
|
if err != nil {
|
|
publicmethod.Result(0, powerList, c)
|
|
return
|
|
}
|
|
fmt.Printf(" empowerCont.PointId--->%v--->%v\n", requestData.SystemName, empowerCont.PointId)
|
|
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":
|
|
if empowerCont.PointId != "" {
|
|
powerAry := strings.Split(empowerCont.PointId, ",")
|
|
powerList = GetWmsMenuPower(powerAry)
|
|
}
|
|
default:
|
|
if empowerCont.PointId != "" {
|
|
powerAry := strings.Split(empowerCont.PointId, ",")
|
|
powerList = GetSysAppMenuPower(powerAry)
|
|
}
|
|
|
|
}
|
|
sendData := publicmethod.MapOut[string]()
|
|
sendData["powerList"] = powerList
|
|
sendData["level"] = empowerCont.Level
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
获取平台菜单权限
|
|
@menusPower 以获得的权限
|
|
*/
|
|
func GetSysAppMenuPower(menusPower []string) (powersList []string) {
|
|
var permList []int64
|
|
err := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Menus{}).Select("`perm`").Where("visible IN ?", []int{1, 2}).Find(&permList).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, v := range permList {
|
|
|
|
permStr := strconv.FormatInt(int64(v), 10)
|
|
// permStr := strconv.Itoa(v.Id)
|
|
if publicmethod.IsInTrue[string](permStr, menusPower) {
|
|
powersList = append(powersList, fmt.Sprintf("m_%v", permStr))
|
|
}
|
|
}
|
|
fmt.Printf("------------>%v\n", powersList)
|
|
return
|
|
}
|
|
|
|
/*
|
|
获取KPI菜单权限
|
|
@menusPower 以获得的权限
|
|
@operPower 以获得的权限
|
|
*/
|
|
func GetSysKpiMenuPower(menusPower, operPower []string) (powersList []string) {
|
|
var menuList []int64
|
|
overall.CONSTANT_DB_Master.Model(&modelsschool.SystemMenuSchool{}).Select("m_id").Where("`m_steat` = 1").Order("`m_sort` ASC").Order("`m_sort` ASC").Order("`m_id` DESC").Find(&menuList)
|
|
fmt.Printf("menuList--->%v\n", menuList)
|
|
if len(menuList) > 0 {
|
|
for _, mv := range menuList {
|
|
permStr := strconv.FormatInt(mv, 10)
|
|
if publicmethod.IsInTrue[string](permStr, menusPower) {
|
|
powersList = append(powersList, fmt.Sprintf("m_%v", permStr))
|
|
}
|
|
}
|
|
}
|
|
var operList []modelsschool.MenuOperation
|
|
overall.CONSTANT_DB_Master.Order("menu_id asc").Find(&operList)
|
|
fmt.Printf("operList--->%v\n", operList)
|
|
if len(operList) > 0 {
|
|
for _, ov := range operList {
|
|
operIdStr := strconv.FormatInt(ov.OperId, 10)
|
|
menuIdStr := strconv.FormatInt(ov.MenuId, 10)
|
|
if publicmethod.IsInTrue[string](operIdStr, operPower) {
|
|
powersList = append(powersList, fmt.Sprintf("o_%v_%v", menuIdStr, operIdStr))
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
获取仓储菜单权限
|
|
@menusPower 以获得的权限
|
|
*/
|
|
func GetWmsMenuPower(menusPower []string) (powersList []string) {
|
|
var permList []int64
|
|
err := overall.CONSTANT_DB_Storage.Model(&modelsstorage.AccesstoAddress{}).Select("`id`").Where("`state` = 1").Find(&permList).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, v := range permList {
|
|
permStr := strconv.FormatInt(v, 10)
|
|
if publicmethod.IsInTrue[string](permStr, menusPower) {
|
|
powersList = append(powersList, fmt.Sprintf("m_%v", permStr))
|
|
}
|
|
}
|
|
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`", "`level`")
|
|
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)
|
|
}
|
|
|
|
}
|
|
sendData := publicmethod.MapOut[string]()
|
|
sendData["powerList"] = powerList
|
|
sendData["level"] = empowerCont.Level
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-05-13 13:57:55
|
|
@ 功能: 不分类别的自定义App列表
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GainAppList(c *gin.Context) {
|
|
var requestData GainAppIdAndRoleNew
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.PowerType == "" {
|
|
requestData.PowerType = "org"
|
|
}
|
|
if requestData.AppType == "" {
|
|
requestData.AppType = "system"
|
|
}
|
|
if requestData.RoleId == "" {
|
|
requestData.RoleId = "0"
|
|
}
|
|
powerInfo := publicmethod.GetSystemAppPower(requestData.PowerType, requestData.AppType, requestData.RoleId)
|
|
fmt.Printf("获得授权--->%v\n\n\n", powerInfo)
|
|
var custForm modelAppPlatform.CustomerForm
|
|
list, _ := custForm.ContMap(map[string]interface{}{"`states`": 1, "`classify`": 3}, "`name`", "`signCode`", "`id`")
|
|
var sendList []interface{}
|
|
for i, v := range list {
|
|
mapInfo := publicmethod.MapOut[string]()
|
|
mapInfo["id"] = strconv.FormatInt(v.Id, 10)
|
|
mapInfo["signCode"] = strconv.FormatInt(v.SignCode, 10)
|
|
mapInfo["name"] = v.Name
|
|
mapInfo["isPick"] = false
|
|
if i == 0 {
|
|
mapInfo["isPick"] = true
|
|
}
|
|
mapInfo["pickAll"] = false
|
|
for _, pv := range powerInfo {
|
|
if pv.SystemId == v.SignCode {
|
|
mapInfo["pickAll"] = pv.SystemIsPick
|
|
}
|
|
}
|
|
|
|
sendList = append(sendList, mapInfo)
|
|
}
|
|
publicmethod.Result(0, sendList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-05-13 15:01:11
|
|
@ 功能: 获取对应App下边的表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GainAppTableList(c *gin.Context) {
|
|
var requestData GainAppIdAndRole
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知App!不可获取表单列表!")
|
|
return
|
|
}
|
|
if requestData.RoleId == "" {
|
|
publicmethod.Result(1, err, c, "未知角色!不可获取表单列表!")
|
|
return
|
|
}
|
|
roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
|
|
// var appInfo modelAppPlatform.CustomerForm
|
|
// appInfo.GetCont(map[string]interface{}{"`signCode`":requestData.Id},"``")
|
|
var custForm []modelAppPlatform.CustomerForm
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Where("`states` = 1 AND `groupid` = ? AND `classify` IN (2,4)", requestData.Id).Find(&custForm)
|
|
var sendList []CusterAppTablePower
|
|
for _, v := range custForm {
|
|
formPower := GainAppTablePower(roleIdInt, v.Groupid, v.Id)
|
|
var sendInfo CusterAppTablePower
|
|
sendInfo.Id = strconv.FormatInt(v.Id, 10)
|
|
sendInfo.Name = v.Name
|
|
sendInfo.SignCode = strconv.FormatInt(v.SignCode, 10)
|
|
sendInfo.TablePower = formPower.TablePower
|
|
sendInfo.ListPower = formPower.ListPower
|
|
if v.ListJson != "" {
|
|
sendInfo.IstIsTrue = true
|
|
} else {
|
|
sendInfo.IstIsTrue = false
|
|
}
|
|
sendInfo.DatePower.Types = formPower.DatePower.Types
|
|
sendInfo.DatePower.Attribute = formPower.DatePower.Attribute
|
|
sendList = append(sendList, sendInfo)
|
|
}
|
|
publicmethod.Result(0, sendList, c)
|
|
// publicmethod.Result(0, custForm, c)
|
|
}
|
|
|
|
/*
|
|
计算初始权限
|
|
*/
|
|
func GainAppTablePower(roleId, appSignCode, tableId int64) (formPower SendAppTablePower) {
|
|
var tablePower modelssystempermission.CustomTableAuthorize
|
|
err := tablePower.GetCont(map[string]interface{}{"`role_id`": roleId, "`app_sign_code`": appSignCode, "`table_sign_code`": tableId})
|
|
if err != nil {
|
|
formPower.TablePower = []string{} //表单权限
|
|
formPower.ListPower = []string{} //列表权限
|
|
formPower.DatePower.Types = 1 //数据权限
|
|
formPower.DatePower.Attribute = []int64{}
|
|
return
|
|
}
|
|
if tablePower.TablePower != "" {
|
|
// fmt.Printf("dskjfhsdjklfhlskdjfhlksdhfl---->%v\n\n\n", tablePower.TablePower)
|
|
formPower.TablePower = strings.Split(tablePower.TablePower, ",") //表单权限
|
|
} else {
|
|
formPower.TablePower = []string{}
|
|
// fmt.Printf("dskjfhsdjklfhlskdjfhlksdhfl---22222->%v\n\n\n", tablePower.TablePower)
|
|
}
|
|
if tablePower.ListPower != "" {
|
|
formPower.ListPower = strings.Split(tablePower.ListPower, ",") //表单权限
|
|
} else {
|
|
formPower.ListPower = []string{}
|
|
}
|
|
formPower.DatePower.Types = int64(tablePower.PowerLerver)
|
|
orgStrAry := strings.Split(tablePower.Organization, ",")
|
|
if len(orgStrAry) > 0 {
|
|
for _, v := range orgStrAry {
|
|
vInt, _ := strconv.ParseInt(v, 10, 64)
|
|
formPower.DatePower.Attribute = append(formPower.DatePower.Attribute, vInt)
|
|
}
|
|
} else {
|
|
formPower.DatePower.Attribute = []int64{}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
/*
|
|
*‘
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-05-19 16:16:16
|
|
@ 功能: 提交APp单一表单权限
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) SetpAppTableForm(c *gin.Context) {
|
|
var requestData GainAppTableInfo
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, requestData, c, "未知App!不可获取表单列表!")
|
|
return
|
|
}
|
|
if requestData.RoleId == "" {
|
|
publicmethod.Result(1, requestData, c, "未知角色!不可编辑权限!")
|
|
return
|
|
}
|
|
if len(requestData.AppTablePwoer) < 1 {
|
|
publicmethod.Result(200, requestData, c, "没有具体表单!无需配置权限!")
|
|
return
|
|
}
|
|
var appInfo modelAppPlatform.CustomerForm
|
|
appInfo.GetCont(map[string]interface{}{"`signCode`": requestData.Id}, "id", "name")
|
|
var msgInfo AppTableMsgInfo
|
|
msgInfo.Id = strconv.FormatInt(appInfo.Id, 10)
|
|
msgInfo.SignCode = requestData.Id
|
|
msgInfo.Name = appInfo.Name
|
|
for _, v := range requestData.AppTablePwoer {
|
|
syncSeting.Add(1)
|
|
go msgInfo.AppTablePowerSave(requestData.RoleId, requestData.Id, v)
|
|
}
|
|
syncSeting.Wait()
|
|
publicmethod.Result(0, msgInfo, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-05-19 16:35:59
|
|
@ 功能:
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *AppTableMsgInfo) AppTablePowerSave(roleId, appSignCode string, list CusterAppTablePower) {
|
|
defer syncSeting.Done()
|
|
var errInfo ErrorInfo
|
|
var tablePower modelssystempermission.CustomTableAuthorize
|
|
err := tablePower.GetCont(map[string]interface{}{"`role_id`": roleId, "`app_sign_code`": appSignCode, "`table_sign_code`": list.Id})
|
|
if err != nil { //判断是否存在。不存在的情况下进行新增。
|
|
var newAddInfo modelssystempermission.CustomTableAuthorize
|
|
newAddInfo.Roleid, _ = strconv.ParseInt(roleId, 10, 64) // 角色ID
|
|
newAddInfo.TableSignCode, _ = strconv.ParseInt(list.Id, 10, 64) // app表格唯一识别符
|
|
newAddInfo.AppCignCode, _ = strconv.ParseInt(appSignCode, 10, 64) // 归谁哪个App
|
|
newAddInfo.TablePower = strings.Join(list.TablePower, ",") // 表格权限
|
|
newAddInfo.ListPower = strings.Join(list.ListPower, ",") // 列表权限
|
|
newAddInfo.PowerLerver, _ = strconv.Atoi(strconv.FormatInt(list.DatePower.Types, 10)) // 授权范围等级(1:本岗位;2:本部门;3:本分部;4:指定行政组织;5:所有)
|
|
var attAry []string
|
|
if len(list.DatePower.Attribute) > 0 {
|
|
for _, v := range list.DatePower.Attribute {
|
|
vStr := strconv.FormatInt(v, 10)
|
|
if !publicmethod.IsInTrue[string](vStr, attAry) {
|
|
attAry = append(attAry, vStr)
|
|
}
|
|
}
|
|
}
|
|
newAddInfo.Organization = strings.Join(attAry, ",") // 授权范围属性
|
|
newAddInfo.Time = time.Now().Unix() //
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&newAddInfo).Error
|
|
errInfo.Id = list.Id
|
|
errInfo.Name = list.Name
|
|
errInfo.Msg = err
|
|
if err != nil {
|
|
errInfo.Code = 1
|
|
} else {
|
|
errInfo.Code = 0
|
|
}
|
|
a.TableMsg = append(a.TableMsg, errInfo)
|
|
} else { //存在的情况下进行编辑。
|
|
saveData := publicmethod.MapOut[string]()
|
|
saveData["table_power"] = strings.Join(list.TablePower, ",")
|
|
saveData["list_power"] = strings.Join(list.ListPower, ",")
|
|
saveData["power_lerver"], _ = strconv.Atoi(strconv.FormatInt(list.DatePower.Types, 10))
|
|
var attAry []string
|
|
if len(list.DatePower.Attribute) > 0 {
|
|
for _, v := range list.DatePower.Attribute {
|
|
vStr := strconv.FormatInt(v, 10)
|
|
if !publicmethod.IsInTrue[string](vStr, attAry) {
|
|
attAry = append(attAry, vStr)
|
|
}
|
|
}
|
|
}
|
|
saveData["organization"] = strings.Join(attAry, ",")
|
|
saveData["time"] = time.Now().Unix()
|
|
var saveRun modelssystempermission.CustomTableAuthorize
|
|
err = saveRun.EiteCont(map[string]interface{}{"`id`": tablePower.Id}, saveData)
|
|
errInfo.Id = list.Id
|
|
errInfo.Name = list.Name
|
|
errInfo.Msg = err
|
|
if err != nil {
|
|
errInfo.Code = 1
|
|
} else {
|
|
errInfo.Code = 0
|
|
}
|
|
a.TableMsg = append(a.TableMsg, errInfo)
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-11-11 11:35:56
|
|
@ 功能: 获取应用基本盘面
|
|
*/
|
|
func (a *ApiMethod) GainAppTableListNew(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
|
|
}
|
|
// if requestData.RoleId == "" {
|
|
// publicmethod.Result(1, err, c, "未知角色!不可获取表单列表!")
|
|
// return
|
|
// }
|
|
roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
|
|
|
|
powerInfo, formButPowerList := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id)
|
|
// var appInfo modelAppPlatform.CustomerForm
|
|
// appInfo.GetCont(map[string]interface{}{"`signCode`":requestData.Id},"``")
|
|
var custForm []modelAppPlatform.CustomerForm
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Where("`states` = 1 AND `groupid` = ? AND `classify` IN (1,2,4)", requestData.Id).Find(&custForm)
|
|
var sendList []CusterAppTablePower
|
|
for _, v := range custForm {
|
|
powerInfo, isOk := CallBackTablePower(v, powerInfo.PowerList)
|
|
if isOk {
|
|
sendList = append(sendList, powerInfo)
|
|
} else {
|
|
formPower := GainAppTablePower(roleIdInt, v.Groupid, v.Id)
|
|
var sendInfo CusterAppTablePower
|
|
sendInfo.Id = strconv.FormatInt(v.Id, 10)
|
|
sendInfo.Name = v.Name
|
|
sendInfo.SignCode = strconv.FormatInt(v.SignCode, 10)
|
|
sendInfo.TablePower = formPower.TablePower
|
|
sendInfo.ListPower = formPower.ListPower
|
|
if v.ListJson != "" {
|
|
sendInfo.IstIsTrue = true
|
|
} else {
|
|
sendInfo.IstIsTrue = false
|
|
}
|
|
sendInfo.DatePower.Types = formPower.DatePower.Types
|
|
sendInfo.DatePower.Attribute = formPower.DatePower.Attribute
|
|
sendList = append(sendList, sendInfo)
|
|
}
|
|
|
|
}
|
|
outData := publicmethod.MapOut[string]()
|
|
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)
|
|
// publicmethod.Result(0, custForm, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-11-21 17:04:28
|
|
@ 功能: 回显表单权限
|
|
*/
|
|
func CallBackTablePower(tableInfo modelAppPlatform.CustomerForm, powerList []publicmethod.ItemInfo) (sendInfo CusterAppTablePower, isOk bool) {
|
|
for _, v := range powerList {
|
|
if tableInfo.Id == v.ItemId {
|
|
sendInfo.Id = strconv.FormatInt(tableInfo.Id, 10)
|
|
sendInfo.Name = tableInfo.Name
|
|
sendInfo.SignCode = strconv.FormatInt(tableInfo.SignCode, 10)
|
|
sendInfo.TablePower = v.TablePower
|
|
sendInfo.ListPower = v.ListPower
|
|
if tableInfo.ListJson != "" {
|
|
sendInfo.IstIsTrue = true
|
|
} else {
|
|
sendInfo.IstIsTrue = false
|
|
}
|
|
sendInfo.ListIsAll = v.IsPick
|
|
sendInfo.DatePower.Types = int64(v.VisibleRange)
|
|
var attId []int64
|
|
for _, iv := range v.VisibleOrg {
|
|
// ivInt, _ := strconv.ParseInt(iv, 10, 64)
|
|
// attId = append(attId, ivInt)
|
|
attId = append(attId, iv)
|
|
}
|
|
sendInfo.DatePower.Attribute = attId
|
|
isOk = true
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-11 13:33:37
|
|
@ 功能: 回显自定义app菜单权限
|
|
*/
|
|
func CallBackAppMenuPower(tableInfo modelAppPlatform.Appmenus, powerList []publicmethod.ItemInfo) (sendInfo CusterAppTablePower, isOk bool) {
|
|
for _, v := range powerList {
|
|
if tableInfo.Id == v.ItemId {
|
|
sendInfo.Id = strconv.FormatInt(tableInfo.Id, 10)
|
|
sendInfo.Name = tableInfo.Label
|
|
sendInfo.ParentId = tableInfo.Parent
|
|
sendInfo.SignCode = strconv.FormatInt(tableInfo.Id, 10)
|
|
sendInfo.TablePower = v.TablePower
|
|
sendInfo.ListPower = v.ListPower
|
|
var cfInfo modelAppPlatform.CustomerForm
|
|
cfInfo.GetCont(map[string]interface{}{"`signCode`": tableInfo.Id}, "`listjson`")
|
|
if cfInfo.ListJson != "" {
|
|
sendInfo.IstIsTrue = true
|
|
} else {
|
|
sendInfo.IstIsTrue = false
|
|
}
|
|
sendInfo.ListIsAll = v.IsPick
|
|
sendInfo.DatePower.Types = int64(v.VisibleRange)
|
|
var attId []int64
|
|
for _, iv := range v.VisibleOrg {
|
|
// ivInt, _ := strconv.ParseInt(iv, 10, 64)
|
|
// attId = append(attId, ivInt)
|
|
attId = append(attId, iv)
|
|
}
|
|
sendInfo.DatePower.Attribute = attId
|
|
isOk = true
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-17 10:00:38
|
|
@ 功能: 初始化应用授权选项
|
|
*/
|
|
func (a *ApiMethod) AppInitAuthorization(c *gin.Context) {
|
|
var requestData GainAppIdAndRoleNew
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.PowerType == "" {
|
|
requestData.PowerType = "org"
|
|
}
|
|
if requestData.AppType == "" {
|
|
requestData.AppType = "system"
|
|
}
|
|
if requestData.RoleId == "" {
|
|
requestData.RoleId = "0"
|
|
}
|
|
var groupPower modelssystempermission.AuthGroupPower
|
|
groupPower.GetCont(map[string]interface{}{"`appType`": requestData.AppType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.RoleId})
|
|
|
|
//Step1:获取分组
|
|
var groupIsTrue []string
|
|
if groupPower.GroupStatus != "" {
|
|
json.Unmarshal([]byte(groupPower.GroupStatus), &groupIsTrue)
|
|
}
|
|
|
|
var AppPowerInfo []AppGroupInfo
|
|
|
|
var groupInfo modelAppPlatform.CustomerFormGroup
|
|
groupAry, _ := groupInfo.ContMap("`state` = 1")
|
|
//进行排序
|
|
sort.Slice(groupAry, func(i, j int) bool {
|
|
return groupAry[i].Sort < groupAry[j].Sort
|
|
})
|
|
for _, v := range groupAry {
|
|
groupId := strconv.FormatInt(v.Id, 10)
|
|
var groupCont AppGroupInfo
|
|
groupCont.Id = groupId //识别符
|
|
groupCont.Name = v.Title //名称
|
|
groupCont.ParentId = strconv.FormatInt(v.Superior, 10) //上级
|
|
groupCont.IsPick = false //是否激活
|
|
fmt.Printf("%v----%v---%v\n\n\n", groupId, groupIsTrue, publicmethod.IsInTrue[string](groupId, groupIsTrue))
|
|
groupCont.IsTrue = publicmethod.IsInTrue[string](groupId, groupIsTrue) //是否选中
|
|
groupCont.AppList = GetGroupApp(v.Id, requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id)
|
|
// syncSeting.Add(1)
|
|
// go groupCont.GetGroupApp()
|
|
AppPowerInfo = append(AppPowerInfo, groupCont)
|
|
}
|
|
syncSeting.Wait()
|
|
sendData := publicmethod.MapOut[string]()
|
|
sendData["groupButPower"] = []string{}
|
|
|
|
if groupPower.PowerInfo != "" {
|
|
var butPower []string
|
|
json.Unmarshal([]byte(groupPower.PowerInfo), &butPower)
|
|
// fmt.Printf("\n\nbutPower---------->%v\n\n", butPower)
|
|
sendData["groupButPower"] = butPower
|
|
}
|
|
sendData["appList"] = AppPowerInfo
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-17 11:08:15
|
|
@ 功能: 获取分组App
|
|
*/
|
|
// func (a *AppGroupInfo) GetGroupApp() {
|
|
func GetGroupApp(uuId int64, powerType, appType, powerId, systemId string) (appAry []AppInfoPower) {
|
|
// defer syncSeting.Done()
|
|
var appList []modelAppPlatform.CustomerForm
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Select("`id`,`signCode` ,`name`,`tablename`").Where("`classify` = 3 AND `states` = 1 AND `groupid` = ?", uuId).Find(&appList)
|
|
for _, v := range appList {
|
|
// fmt.Printf("获取分组App----->%v----->%v\n\n", a.Id, len(appList))
|
|
|
|
var appCont AppInfoPower
|
|
appCont.Id = strconv.FormatInt(v.SignCode, 10) //识别符
|
|
appCont.Name = v.Name //名称
|
|
appCont.ParentId = strconv.FormatInt(v.Groupid, 10) //上级
|
|
appCont.IsPick = false
|
|
var authId []int64
|
|
appCont.IsTrue, appCont.OperationButton, authId = AppCallBackShow(v.SignCode, powerType, appType, powerId) //是否选中
|
|
appCont.AppMenuTree = AppMenuList(v.SignCode, authId, powerType, appType, powerId, systemId)
|
|
appAry = append(appAry, appCont)
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-19 11:27:42
|
|
@ 功能: 获取APP回显是否选中
|
|
|
|
#appId Id
|
|
#powerType 授权类型
|
|
#appType 授权系统
|
|
#powerId 项目Id
|
|
*/
|
|
func AppCallBackShow(appId int64, powerType, appType, powerId string) (isTrue bool, butPower []string, authId []int64) {
|
|
isTrue = false
|
|
|
|
var authPower modelssystempermission.AuthPower
|
|
authPower.GetCont(map[string]interface{}{"`appType`": appType, "`orgPowerType`": powerType, "`orgOrUserKey`": powerId, "`appKey`": appId}, "`id`", "`isTrue`", "`appButPower`")
|
|
if authPower.Id == 0 {
|
|
if powerType == "person" {
|
|
var authPower []modelssystempermission.AuthPower
|
|
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.AuthPower{}).Where(" `orgPowerType` IN ('org','job','role') AND `appType` = ? AND `orgOrUserKey` = ? AND `appKey` = ?", appType, powerId, appId).Find(&authPower)
|
|
|
|
if len(authPower) > 0 {
|
|
var allButAry []string
|
|
for _, v := range authPower {
|
|
if v.IsTrue == 1 {
|
|
isTrue = true
|
|
authId = append(authId, v.Id)
|
|
}
|
|
if v.AppButPower != "" && v.AppButPower != "null" {
|
|
var appButAry []string
|
|
json.Unmarshal([]byte(v.AppButPower), &appButAry)
|
|
allButAry = append(allButAry, appButAry...)
|
|
}
|
|
}
|
|
if len(allButAry) > 0 {
|
|
for _, av := range allButAry {
|
|
if !publicmethod.IsInTrue(av, butPower) {
|
|
butPower = append(butPower, av)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
authId = append(authId, authPower.Id)
|
|
if authPower.IsTrue == 1 {
|
|
isTrue = true
|
|
}
|
|
if authPower.AppButPower != "" && authPower.AppButPower != "null" {
|
|
json.Unmarshal([]byte(authPower.AppButPower), &butPower)
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-17 11:28:31
|
|
@ 功能: 获取app菜单
|
|
*/
|
|
func AppMenuList(appId int64, authId []int64, powerType, appType, powerId, systemId string) (menuTree []AppMenuTreeInit) {
|
|
var appMenuList []modelAppPlatform.Appmenus
|
|
err := overall.CONSTANT_DB_AppPlatform.Where("`state` = 1 AND `isLock` = 2 AND `appkey` = ?", appId).Find(&appMenuList).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
sort.Slice(appMenuList, func(i, j int) bool {
|
|
return appMenuList[i].EditTime < appMenuList[j].EditTime
|
|
})
|
|
sort.Slice(appMenuList, func(i, j int) bool {
|
|
return appMenuList[i].Sort < appMenuList[j].Sort
|
|
})
|
|
menuTree = AppTreeMenus(appId, authId, appMenuList)
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-04-23 13:42:51
|
|
@ 功能: App菜单树处理
|
|
*/
|
|
func AppTreeMenus(parentId int64, authId []int64, menuList []modelAppPlatform.Appmenus) (menusTree []AppMenuTreeInit) {
|
|
for _, v := range menuList {
|
|
if v.Parent == parentId {
|
|
var menuCont AppMenuTreeInit
|
|
menuCont.Id = strconv.FormatInt(v.Id, 10) //
|
|
menuCont.Name = v.Label //名称
|
|
menuCont.ParentId = strconv.FormatInt(v.Parent, 10) //上级
|
|
menuCont.AppKey = strconv.FormatInt(v.Appkey, 10)
|
|
menuCont.IsPick = false //是否激活
|
|
menuCont.IsTrue = false //是否选中
|
|
menuCont.MenuType = v.Types
|
|
menuCont.VisibleRange.Types = 1
|
|
menuCont.IsTrue, menuCont.PagePower, menuCont.ListPower, menuCont.FormPower, menuCont.VisibleRange.Types, menuCont.VisibleRange.Attribute = AppMenuCallBackShow(v.Id, authId)
|
|
menuCont.Children = AppTreeMenus(v.Id, authId, menuList)
|
|
menusTree = append(menusTree, menuCont)
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-19 11:27:42
|
|
@ 功能: 获取APP中菜单回显是否选中
|
|
|
|
#appId Id
|
|
#powerType 授权类型
|
|
#appType 授权系统
|
|
#powerId 项目Id
|
|
*/
|
|
func AppMenuCallBackShow(menuId int64, authId []int64) (isTrue bool, pagePower, ListPower, FormPower []string, types int64, userPower []int64) {
|
|
isTrue = false
|
|
var menuPower []modelssystempermission.PowerInfo
|
|
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where(" `authId` IN ? AND `appType` = ? AND `itemId` = ? ", authId, menuId).Find(&menuPower)
|
|
for _, v := range menuPower {
|
|
if v.IsPick == 1 {
|
|
isTrue = true
|
|
}
|
|
if v.PageButPower != "" && v.PageButPower != "null" {
|
|
json.Unmarshal([]byte(v.PageButPower), &pagePower)
|
|
}
|
|
if v.TablePower != "" && v.TablePower != "null" {
|
|
json.Unmarshal([]byte(v.TablePower), &FormPower)
|
|
}
|
|
if v.ListPower != "" && v.ListPower != "null" {
|
|
json.Unmarshal([]byte(v.ListPower), &ListPower)
|
|
}
|
|
if types <= int64(v.VisibleRange) {
|
|
types = int64(v.VisibleRange)
|
|
}
|
|
if v.VisibleOrg != "" && v.VisibleOrg != "null" {
|
|
json.Unmarshal([]byte(v.VisibleOrg), &userPower)
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-18 14:39:53
|
|
@ 功能: 选项卡App授权模式
|
|
*/
|
|
func (a *ApiMethod) TabsAuthorizationMode(c *gin.Context) {
|
|
var requestData SaveAppPower
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.PowerType == "" {
|
|
publicmethod.Result(1, requestData, c, "未知授权类型!不可编辑权限!")
|
|
return
|
|
}
|
|
if requestData.AppType == "" {
|
|
publicmethod.Result(1, requestData, c, "未知授权系统!不可编辑权限!")
|
|
return
|
|
}
|
|
if requestData.RoleId == "" {
|
|
publicmethod.Result(1, requestData, c, "未知授权项!不可编辑权限!")
|
|
return
|
|
}
|
|
if len(requestData.ListPower) < 1 {
|
|
publicmethod.Result(1, requestData, c, "未知授权内容!不可编辑权限!")
|
|
return
|
|
}
|
|
var groupIdAry []string
|
|
for _, v := range requestData.ListPower {
|
|
if v.IsTrue {
|
|
if !publicmethod.IsInTrue(v.Id, groupIdAry) {
|
|
groupIdAry = append(groupIdAry, v.Id)
|
|
}
|
|
}
|
|
// if i == 0 {
|
|
// syncSeting.Add(1)
|
|
// go appPowerSetup(requestData.AppType, requestData.PowerType, requestData.RoleId, v.AppList)
|
|
// }
|
|
appPowerSetup(requestData.AppType, requestData.PowerType, requestData.RoleId, v.AppList)
|
|
}
|
|
|
|
groupIsShow, _ := json.Marshal(groupIdAry)
|
|
//写入App分组权限
|
|
var appGroupPower modelssystempermission.AuthGroupPower
|
|
err := appGroupPower.GetCont(map[string]interface{}{"`orgPowerType`": requestData.PowerType, "`appType`": requestData.AppType, "`orgOrUserKey`": requestData.RoleId})
|
|
if err == nil && appGroupPower.Id != 0 { //编辑
|
|
saveData := publicmethod.MapOut[string]()
|
|
saveData["groupStatus"] = string(groupIsShow)
|
|
saveData["time"] = time.Now().Unix()
|
|
var saveInfo modelssystempermission.AuthGroupPower
|
|
saveInfo.EiteCont(map[string]interface{}{"`id`": appGroupPower.Id}, saveData)
|
|
} else { //新增
|
|
uuid := publicmethod.GetUUid(1)
|
|
var saveGroupPower modelssystempermission.AuthGroupPower
|
|
saveGroupPower.Id = uuid
|
|
saveGroupPower.AppType = requestData.AppType
|
|
saveGroupPower.OrgPowerType = requestData.PowerType
|
|
saveGroupPower.OrgOrUserKey, _ = strconv.ParseInt(requestData.RoleId, 10, 64)
|
|
saveGroupPower.Time = time.Now().Unix()
|
|
saveGroupPower.PowerInfo = "['xz','dl','bj','xzapp']"
|
|
saveGroupPower.GroupStatus = string(groupIsShow)
|
|
overall.CONSTANT_DB_System_Permission.Create(&saveGroupPower)
|
|
}
|
|
// syncSeting.Wait()
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-18 15:32:49
|
|
@ 功能: 批量处理App授权
|
|
|
|
#uuid 统一编码
|
|
#appType 系统类型(system:系统平台;app:自定义表单与应用)
|
|
#powerType 赋权类型(org:组织;job:岗位;role:角色;person:个人)
|
|
#roleId 具体执行人
|
|
#appList App列表
|
|
*/
|
|
func appPowerSetup(appType, powerType, roleId string, appList []AppInfoPower) {
|
|
// defer syncSeting.Done()
|
|
for _, v := range appList {
|
|
// if i == 0 {
|
|
uuid := publicmethod.GetUUid(1)
|
|
var appPowerInfo modelssystempermission.AuthPower
|
|
appPowerInfo.GetCont(map[string]interface{}{"`appType`": appType, "`orgPowerType`": powerType, "`orgOrUserKey`": roleId, "`appKey`": v.Id})
|
|
appPowerJson, _ := json.Marshal(v.AppMenuTree)
|
|
if appPowerInfo.Id == 0 { //新增
|
|
var newAppPowerInfo modelssystempermission.AuthPower
|
|
newAppPowerInfo.Id = uuid
|
|
newAppPowerInfo.OrgPowerType = powerType
|
|
newAppPowerInfo.OrgOrUserKey, _ = strconv.ParseInt(roleId, 10, 64)
|
|
newAppPowerInfo.AppType = appType
|
|
newAppPowerInfo.AppKey, _ = strconv.ParseInt(v.Id, 10, 64)
|
|
newAppPowerInfo.Time = time.Now().Unix()
|
|
if v.IsTrue {
|
|
newAppPowerInfo.IsTrue = 1 //1:有;非1:无)
|
|
} else {
|
|
newAppPowerInfo.IsTrue = 0
|
|
}
|
|
newAppPowerInfo.PowerInfo = string(appPowerJson)
|
|
operAtionBut, _ := json.Marshal(v.OperationButton)
|
|
newAppPowerInfo.AppButPower = string(operAtionBut)
|
|
overall.CONSTANT_DB_System_Permission.Create(&newAppPowerInfo)
|
|
// var menuPowList AppMenuAry
|
|
// menuPowList.List = []AppMenuInfo{}
|
|
// menuPowList.AppMenuTreeSub(v.AppMenuTree)
|
|
// menuPowList.EditAppMenuPoser(uuid)
|
|
var oldPower modelssystempermission.PowerInfo
|
|
oldPower.DelCont(map[string]interface{}{"`authId`": uuid})
|
|
var menuPowList AppMenuAry
|
|
menuPowList.List = []AppMenuInfo{}
|
|
menuPowList.AppMenuTreeSubNew(v.AppMenuTree, uuid)
|
|
} else { //编辑
|
|
uuid = appPowerInfo.Id
|
|
saveData := publicmethod.MapOut[string]()
|
|
saveData["powerInfo"] = string(appPowerJson)
|
|
if v.IsTrue {
|
|
saveData["isTrue"] = 1
|
|
} else {
|
|
saveData["isTrue"] = 0
|
|
}
|
|
operAtionBut, _ := json.Marshal(v.OperationButton)
|
|
saveData["appButPower"] = string(operAtionBut)
|
|
saveData["time"] = time.Now().Unix()
|
|
var saveAppPowerInfo modelssystempermission.AuthPower
|
|
saveAppPowerInfo.EiteCont(map[string]interface{}{"`id`": appPowerInfo.Id}, saveData)
|
|
// var menuPowList AppMenuAry
|
|
// menuPowList.List = []AppMenuInfo{}
|
|
// menuPowList.AppMenuTreeSub(v.AppMenuTree)
|
|
// menuPowList.EditAppMenuPoser(appPowerInfo.Id)
|
|
var oldPower modelssystempermission.PowerInfo
|
|
oldPower.DelCont(map[string]interface{}{"`authId`": appPowerInfo.Id})
|
|
var menuPowList AppMenuAry
|
|
menuPowList.List = []AppMenuInfo{}
|
|
menuPowList.AppMenuTreeSubNew(v.AppMenuTree, appPowerInfo.Id)
|
|
}
|
|
|
|
// }
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-18 16:51:04
|
|
@ 功能: 将自定义App菜单权限写入数据库
|
|
*/
|
|
func (a *AppMenuAry) EditAppMenuPoser(uuid int64) {
|
|
json, _ := json.Marshal(a.List)
|
|
fmt.Printf("\n\n%v----------------->%v\n\n", uuid, string(json))
|
|
var oldPower modelssystempermission.PowerInfo
|
|
oldPower.DelCont(map[string]interface{}{"`authId`": uuid})
|
|
var insterAry []modelssystempermission.PowerInfo
|
|
for _, v := range a.List {
|
|
var saveInfo modelssystempermission.PowerInfo
|
|
saveInfo.AuthId = uuid //归属权限
|
|
saveInfo.ItemId, _ = strconv.ParseInt(v.Id, 10, 64) //项目ID
|
|
if v.IsTrue {
|
|
saveInfo.IsPick = 1 //是否有权(1:有;非1:无)
|
|
} else {
|
|
saveInfo.IsPick = 0 //是否有权(1:有;非1:无)
|
|
}
|
|
|
|
tpAry := MyCreateTablePower(v.FormPower)
|
|
if tpAry == "null" {
|
|
tpAry = "[]"
|
|
}
|
|
saveInfo.TablePower = tpAry //表单权限
|
|
lpAry := MyCreateTablePower(v.ListPower)
|
|
if lpAry == "null" {
|
|
lpAry = "[]"
|
|
}
|
|
saveInfo.ListPower = lpAry //列表权限
|
|
|
|
pgButAry := MyCreateTablePower(v.PagePower)
|
|
if pgButAry == "null" {
|
|
pgButAry = "[]"
|
|
}
|
|
saveInfo.PageButPower = pgButAry //列表权限
|
|
inStr := strconv.FormatInt(v.VisibleRange.Types, 10)
|
|
intVal, _ := strconv.Atoi(inStr)
|
|
saveInfo.VisibleRange = intVal //可见范围(1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有)
|
|
// visibleOrgStr, _ := json.Marshal(v.VisibleRange.Attribute)
|
|
// saveInfo.VisibleOrg = string(visibleOrgStr) //可见范围辅助参数
|
|
saveInfo.ButPower = "[]" //按钮权限
|
|
saveInfo.Time = time.Now().Unix() //编辑时间
|
|
insterAry = append(insterAry, saveInfo)
|
|
}
|
|
if len(insterAry) > 0 {
|
|
overall.CONSTANT_DB_System_Permission.Create(&insterAry)
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-11-20 11:39:52
|
|
@ 功能: 解释自定义表单权限
|
|
*/
|
|
func MyCreateTablePower(powerList []string) string {
|
|
if len(powerList) <= 0 {
|
|
return "[]"
|
|
}
|
|
var powerAry []string
|
|
for _, v := range powerList {
|
|
if !publicmethod.IsInTrue[string](v, powerAry) {
|
|
powerAry = append(powerAry, v)
|
|
}
|
|
}
|
|
jsonStr, _ := json.Marshal(powerAry)
|
|
return string(jsonStr)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-12-18 16:30:08
|
|
@ 功能: 解析自定义App菜单列表
|
|
*/
|
|
func (a *AppMenuAry) AppMenuTreeSub(AppMenuTree []AppMenuTreeInit) {
|
|
if len(AppMenuTree) > 0 {
|
|
for _, v := range AppMenuTree {
|
|
var menuInfo AppMenuInfo
|
|
menuInfo.Id = v.Id //识别符
|
|
menuInfo.Name = v.Name //名称
|
|
menuInfo.ParentId = v.ParentId //上级
|
|
menuInfo.IsPick = v.IsPick //是否激活
|
|
menuInfo.IsTrue = v.IsTrue //是否选中
|
|
menuInfo.AppKey = v.AppKey
|
|
menuInfo.PagePower = v.PagePower
|
|
menuInfo.FormPower = v.FormPower
|
|
menuInfo.ListPower = v.ListPower
|
|
menuInfo.VisibleRange = v.VisibleRange
|
|
menuInfo.MenuType = v.MenuType
|
|
a.List = append(a.List, menuInfo)
|
|
if len(v.Children) > 0 {
|
|
a.AppMenuTreeSub(v.Children)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|