|
|
|
@ -2,10 +2,12 @@ package setupRoule |
|
|
|
|
|
|
|
import ( |
|
|
|
"appPlatform/models/modelAppPlatform" |
|
|
|
"appPlatform/models/modelssystempermission" |
|
|
|
"appPlatform/overall" |
|
|
|
"appPlatform/overall/publicmethod" |
|
|
|
"sort" |
|
|
|
"strconv" |
|
|
|
"time" |
|
|
|
|
|
|
|
"github.com/gin-gonic/gin" |
|
|
|
) |
|
|
|
@ -28,7 +30,8 @@ func (a *ApiMethod) AppPowerUnit(c *gin.Context) { |
|
|
|
requestData.RoleId = "0" |
|
|
|
} |
|
|
|
powerInfo, _ := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppSystem, requestData.RoleId, requestData.AppId) |
|
|
|
|
|
|
|
// jsonVal, _ := json.Marshal(powerInfo)
|
|
|
|
// fmt.Printf("powerInfo-------------->%v\n\n", string(jsonVal))
|
|
|
|
var appPowerTrue []AppPowerTree |
|
|
|
switch requestData.AppSystem { |
|
|
|
default: |
|
|
|
@ -59,10 +62,48 @@ func AppMenuPower(powerType, unitId string, powerInfo publicmethod.SendSystemPow |
|
|
|
ButMenu = append(ButMenu, v) |
|
|
|
} |
|
|
|
} |
|
|
|
butList := MenuPower(MenuButList(noButMenu, ButMenu), powerInfo) |
|
|
|
// noButMenujsh, _ := json.Marshal(noButMenu)
|
|
|
|
// ButMenujsh, _ := json.Marshal(ButMenu)
|
|
|
|
// fmt.Printf("数通智联平台菜单---->%v\n\n\n\n%v\n\n\n\n", string(noButMenujsh), string(ButMenujsh))
|
|
|
|
|
|
|
|
ButMenues := ButIsPick(ButMenu, powerInfo) |
|
|
|
// ButMenujshsss, _ := json.Marshal(ButMenues)
|
|
|
|
// fmt.Printf("数通智联平台菜单--ButMenujshsss-->%v\n\n\n\n%v\n\n\n\n", string(ButMenujshsss), string(ButMenujsh))
|
|
|
|
menhjs := MenuButList(noButMenu, ButMenues) |
|
|
|
|
|
|
|
// Bumenhjs, _ := json.Marshal(menhjs)
|
|
|
|
// fmt.Printf("数通智联平台菜单--Bumenhjs-->%v\n\n\n\n%v\n\n\n\n", string(ButMenujshsss), string(Bumenhjs))
|
|
|
|
butList := MenuPower(menhjs, powerInfo) |
|
|
|
return AppMenuTrue(0, butList) |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2026-01-14 09:41:58 |
|
|
|
@ 功能: 判断按钮是否选中 |
|
|
|
*/ |
|
|
|
func ButIsPick(ButMenu []AppPowerInfo, powerInfo publicmethod.SendSystemPower) []AppPowerInfo { |
|
|
|
var butIsTrue []string |
|
|
|
for _, v := range powerInfo.PowerList { |
|
|
|
if len(v.ButPower) > 0 { |
|
|
|
for _, bv := range v.ButPower { |
|
|
|
if !publicmethod.IsInTrue[string](bv, butIsTrue) { |
|
|
|
butIsTrue = append(butIsTrue, bv) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if len(butIsTrue) > 0 { |
|
|
|
for i, v := range ButMenu { |
|
|
|
if publicmethod.IsInTrue[string](v.Perm, butIsTrue) { |
|
|
|
ButMenu[i].IsTrue = true |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return ButMenu |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
@ 作者: 秦东 |
|
|
|
@ -168,10 +209,157 @@ func MenuPower(menuInfo []AppMenuBut, powerInfo publicmethod.SendSystemPower) (m |
|
|
|
// }
|
|
|
|
v.VisibleRange.Val = pv.VisibleOrg |
|
|
|
} |
|
|
|
v.ButtenPower = JuadgeBut(v.ButtenPower, pv) |
|
|
|
// v.ButtenPower = JuadgeBut(v.ButtenPower, pv)
|
|
|
|
} |
|
|
|
} |
|
|
|
menuPower = append(menuPower, v) |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2026-01-15 16:12:02 |
|
|
|
@ 功能: 复制角色 |
|
|
|
*/ |
|
|
|
func (a *ApiMethod) CopyRolePower(c *gin.Context) { |
|
|
|
var requestData CopyRolePowerInfo |
|
|
|
|
|
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
|
if err != nil { |
|
|
|
publicmethod.Result(100, err, c) |
|
|
|
return |
|
|
|
} |
|
|
|
if requestData.Label == "" { |
|
|
|
publicmethod.Result(1, requestData, c, "角色为命名!") |
|
|
|
return |
|
|
|
} |
|
|
|
if requestData.Id == "" { |
|
|
|
publicmethod.Result(1, requestData, c, "未知角色源头!") |
|
|
|
return |
|
|
|
} |
|
|
|
var roleInfo modelssystempermission.SystemRole |
|
|
|
err = roleInfo.GetCont(map[string]interface{}{"`id`": requestData.Id}) |
|
|
|
if err != nil { |
|
|
|
publicmethod.Result(100, err, c) |
|
|
|
return |
|
|
|
} |
|
|
|
if roleInfo.Name == requestData.Label { |
|
|
|
publicmethod.Result(1, requestData, c, "该名称已经存在!不可重复使用!") |
|
|
|
return |
|
|
|
} |
|
|
|
var newRoleInfo modelssystempermission.SystemRole |
|
|
|
newRoleInfo.Name = requestData.Label //系统名称"`
|
|
|
|
newRoleInfo.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|
|
|
newRoleInfo.Time = time.Now().Unix() //创建时间"`
|
|
|
|
newRoleInfo.Sort = roleInfo.Sort //排序"`
|
|
|
|
newRoleInfo.Types = roleInfo.Types //类型"`
|
|
|
|
newRoleInfo.Superior = roleInfo.Superior //上级"`
|
|
|
|
newRoleInfo.Roleuser = roleInfo.Roleuser //nt:使用人员"`
|
|
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&newRoleInfo).Error |
|
|
|
if err != nil { |
|
|
|
publicmethod.Result(100, err, c) |
|
|
|
return |
|
|
|
} |
|
|
|
if roleInfo.Id != 0 { |
|
|
|
CopyGroupPower(roleInfo.Id, newRoleInfo) |
|
|
|
CopyRolePowerAry(roleInfo.Id, newRoleInfo) |
|
|
|
} |
|
|
|
publicmethod.Result(0, err, c) |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
@ 作者: 秦东return |
|
|
|
@ 时间: 2026-01-16 11:06:28 |
|
|
|
@ 功能: 复制角色权限 |
|
|
|
*/ |
|
|
|
func CopyRolePowerAry(oldRoleId int64, newRoleInfoEntry modelssystempermission.SystemRole) (err error) { |
|
|
|
var authPowerList []modelssystempermission.AuthPower |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = ? AND `orgOrUserKey` = ?", "role", oldRoleId).Find(&authPowerList).Error |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
var saveNewRole []modelssystempermission.AuthPower |
|
|
|
for i, v := range authPowerList { |
|
|
|
uuid := publicmethod.GetUUid(int64(i)) |
|
|
|
var newRoleInfo modelssystempermission.AuthPower |
|
|
|
newRoleInfo.Id = uuid //
|
|
|
|
newRoleInfo.OrgPowerType = v.OrgPowerType //赋权类型(org:组织;job:岗位;role:角色;person:个人)\`
|
|
|
|
newRoleInfo.OrgOrUserKey = newRoleInfoEntry.Id //行政组织或角色、人员识别符`
|
|
|
|
newRoleInfo.AppType = v.AppType //系统类型(system:系统平台;app:自定义表单与应用)" `
|
|
|
|
newRoleInfo.AppKey = v.AppKey //自定义应用App" `
|
|
|
|
newRoleInfo.Time = time.Now().Unix() //d;default:0;comment:编辑时间;NOT NULL" json:"time"`
|
|
|
|
newRoleInfo.IsTrue = v.IsTrue //default:0;comment:是否有权(1:有;非1:无);NOT NULL" json:"isTrue"`
|
|
|
|
newRoleInfo.PowerInfo = v.PowerInfo //权限结构体" json:"powerInfo"`
|
|
|
|
newRoleInfo.AppButPower = v.AppButPower //t:自定义应用按钮授权" json:"appButPower"`
|
|
|
|
saveNewRole = append(saveNewRole, newRoleInfo) |
|
|
|
|
|
|
|
CopyRoleItemPower(v.Id, uuid) |
|
|
|
} |
|
|
|
if len(saveNewRole) > 0 { |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&saveNewRole).Error |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2026-01-16 11:25:07 |
|
|
|
@ 功能: 复制具体栏目角色权限 |
|
|
|
*/ |
|
|
|
func CopyRoleItemPower(oldAuthId, newAuthId int64) (err error) { |
|
|
|
var oldPowerItemAry []modelssystempermission.PowerInfo |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Where("`authId` = ? ", oldAuthId).Find(&oldPowerItemAry).Error |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
if len(oldPowerItemAry) > 0 { |
|
|
|
var newSaveData []modelssystempermission.PowerInfo |
|
|
|
for _, v := range oldPowerItemAry { |
|
|
|
var saveCont modelssystempermission.PowerInfo |
|
|
|
saveCont.AuthId = newAuthId //归属权限;`
|
|
|
|
saveCont.ItemId = v.ItemId //项目`
|
|
|
|
saveCont.IsPick = v.IsPick //是否有权(1:有;非1:无)`
|
|
|
|
saveCont.TablePower = v.TablePower //表单权限"
|
|
|
|
saveCont.ListPower = v.ListPower //列表权限"`
|
|
|
|
saveCont.VisibleRange = v.VisibleRange //可见范围(1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有)`
|
|
|
|
saveCont.VisibleOrg = v.VisibleOrg //可见范围辅助参数"
|
|
|
|
saveCont.ButPower = v.ButPower //按钮权限"
|
|
|
|
saveCont.Time = time.Now().Unix() //编辑时间
|
|
|
|
saveCont.PageButPower = v.PageButPower //页面表单权限"
|
|
|
|
newSaveData = append(newSaveData, saveCont) |
|
|
|
} |
|
|
|
if len(newSaveData) > 0 { |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&newSaveData).Error |
|
|
|
} |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 复制角色分组权限
|
|
|
|
func CopyGroupPower(oldRoleId int64, newRoleInfo modelssystempermission.SystemRole) (err error) { |
|
|
|
var oldRoleGroupAry []modelssystempermission.AuthGroupPower |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = ? AND `orgOrUserKey` = ?", "role", oldRoleId).Find(&oldRoleGroupAry).Error |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
var saveNewRoleGroup []modelssystempermission.AuthGroupPower |
|
|
|
for i, v := range oldRoleGroupAry { |
|
|
|
var newCont modelssystempermission.AuthGroupPower |
|
|
|
newCont.Id = publicmethod.GetUUid(int64(i)) //
|
|
|
|
newCont.AppType = v.AppType //系统类型(system:系统平台;app:自定义表单与应用)"
|
|
|
|
newCont.OrgPowerType = v.OrgPowerType //赋权类型(org:组织;job:岗位;role:角色;person:个人)"
|
|
|
|
newCont.OrgOrUserKey = newRoleInfo.Id //行政组织或角色、人员识别符
|
|
|
|
newCont.Time = time.Now().Unix() //编辑时间
|
|
|
|
newCont.PowerInfo = v.PowerInfo //权限结构体"
|
|
|
|
newCont.GroupStatus = v.GroupStatus //分组权限状态"
|
|
|
|
saveNewRoleGroup = append(saveNewRoleGroup, newCont) |
|
|
|
} |
|
|
|
if len(saveNewRoleGroup) > 0 { |
|
|
|
err = overall.CONSTANT_DB_System_Permission.Create(&saveNewRoleGroup).Error |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|