Browse Source

权限

qin_v2
herenshan112 2 weeks ago
parent
commit
c4f3156919
  1. 185
      api/authentication/setupRoule.go
  2. 19
      api/authentication/type.go
  3. 3
      api/version1/customerApp/companyduty.go
  4. 32
      api/version1/customerform/calendarData.go
  5. 8
      api/version1/customerform/formTableList.go
  6. 6
      api/version1/customerform/formTableView.go
  7. 71
      api/version1/customerform/tableList.go
  8. 1
      api/version1/customerform/websub.go
  9. 530
      api/version1/grantpowers/appMenuPower.go
  10. 136
      api/version1/grantpowers/postpower.go
  11. 65
      api/version1/grantpowers/type.go
  12. 3
      api/version1/humanResources/org.go
  13. 8
      api/version1/menus/menus.go
  14. 60
      api/version1/setupRoule/authorization.go
  15. 3
      api/version1/setupRoule/entry.go
  16. 16
      api/version1/setupRoule/power.go
  17. 21
      api/version1/user/type.go
  18. 88
      api/version1/workWechat/wechat.go
  19. 2
      apirouter/authenticationroute/signcoderoute.go
  20. 7
      apirouter/v1/grantsystempower/pc.go
  21. 4
      config/configDatabase/database.yaml
  22. 16
      overall/publicmethod/getUserPower.go
  23. 2
      overall/publicmethod/technique.go
  24. 8
      overall/publicmethod/type.go

185
api/authentication/setupRoule.go

@ -8,6 +8,7 @@ import (
"fmt"
"sort"
"strconv"
"strings"
"time"
"github.com/gin-gonic/gin"
@ -311,3 +312,187 @@ func InfiniteOrgPostTree(parentId string, threeData []OrgPostPower) []OrgPostisT
}
return roleTree
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-09 10:14:27
@ 功能: 校队角色人员信息
*/
func (a *RoleApiMethod) VerifyInformationRolePersonnel(c *gin.Context) {
var manList []modelshr.PersonArchives
// overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`id`,`key`,`number`,`role`").Where("`role` <> ?", "").Find(&manList)
overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`id`,`key`,`number`,`role`").Find(&manList)
var newManAry []modelshr.PersonArchives
var userAry []JiaoDuiRole
var roleListAry JdsjRoel
for _, v := range manList {
if v.Role != "" && v.Role != "null" {
newManAry = append(newManAry, v)
roleAry := strings.Split(v.Role, ",")
// NewWriteRole(v.Key, roleAry)
var userCont JiaoDuiRole
userCont.UserKey = strconv.FormatInt(v.Key, 10)
userCont.RoleAry = roleAry
// if len(userAry) < 199 {
// userAry = append(userAry, userCont)
// } else {
// userAry = append(userAry, userCont)
// syncSeting.Add(1)
// // go XieChengRoleXd(userAry)
// go roleListAry.XieChengRoleAry(userAry)
// userAry = []JiaoDuiRole{}
// }
userAry = append(userAry, userCont)
syncSeting.Add(1)
// go XieChengRoleXd(userAry)
go roleListAry.XieChengRoleAry(userAry)
// break
}
}
if len(userAry) > 0 {
syncSeting.Add(1)
// go XieChengRoleXd(userAry)
go roleListAry.XieChengRoleAry(userAry)
userAry = []JiaoDuiRole{}
}
syncSeting.Wait()
fmt.Printf("总共%v人员赋权\n\n%v", len(newManAry), len(manList))
publicmethod.Result(0, roleListAry, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-09 11:45:38
@ 功能: 协程处理数据
*/
func (j *JdsjRoel) XieChengRoleAry(userAry []JiaoDuiRole) {
syncSeting.Done()
for _, v := range userAry {
fmt.Printf("协程处理数据--->%v\n\n", v.UserKey)
for _, rv := range v.RoleAry {
fmt.Printf("协程处理数据--1->%v\n\n", rv)
j.RoleAddUserKey(v.UserKey, rv)
// if len(j.RoleList) > 0 {
// isNew := true
// for ji, jv := range j.RoleList {
// if jv.RoleId == rv {
// isNew = false
// // fmt.Printf("%v--------------->%v\n\n\n", jv.RoleId, !publicmethod.IsInTrue[string](v.UserKey, jv.UserList))
// if !publicmethod.IsInTrue[string](v.UserKey, jv.UserList) {
// jv.UserList = append(jv.UserList, v.UserKey)
// }
// }
// j.RoleList[ji] = jv
// }
// if isNew {
// var kj RoleUserArt
// kj.RoleId = rv
// kj.UserList = append(kj.UserList, v.UserKey)
// j.RoleList = append(j.RoleList, kj)
// }
// } else {
// var kj RoleUserArt
// kj.RoleId = rv
// kj.UserList = append(kj.UserList, v.UserKey)
// j.RoleList = append(j.RoleList, kj)
// }
}
}
}
func (j *JdsjRoel) RoleAddUserKey(userKey, roleId string) {
isNewAdd := true
for i, v := range j.RoleList {
if v.RoleId == roleId {
if !publicmethod.IsInTrue[string](userKey, v.UserList) {
j.RoleList[i].UserList = append(j.RoleList[i].UserList, userKey)
isNewAdd = false
}
}
}
if isNewAdd {
var newRoleUs RoleUserArt
newRoleUs.RoleId = roleId
newRoleUs.UserList = append(newRoleUs.UserList, userKey)
j.RoleList = append(j.RoleList, newRoleUs)
}
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-09 11:23:59
@ 功能: 协程处理角色问题
*/
func XieChengRoleXd(userAry []JiaoDuiRole) {
syncSeting.Done()
fmt.Printf("协程处理角色问题--->%v\n\n", len(userAry))
for _, v := range userAry {
for _, rv := range v.RoleAry {
var roleCont modelssystempermission.SystemRole
roleCont.GetCont(map[string]interface{}{"`id`": rv}, "`id`", "`roleuser`")
if roleCont.Id != 0 {
if roleCont.Roleuser != "" && roleCont.Roleuser != "null" {
roleAry := strings.Split(roleCont.Roleuser, ",") //原角色已有的人员
if !publicmethod.IsInTrue[string](v.UserKey, roleAry) { //当原角色不存在此人员时加载
roleAry = append(roleAry, v.UserKey)
saveData := publicmethod.MapOut[string]()
saveData["`roleuser`"] = strings.Join(roleAry, ",")
saveData["`time`"] = time.Now().Unix()
var roleContSave modelssystempermission.SystemRole
roleContSave.EiteCont(map[string]interface{}{"`id`": roleCont.Id}, saveData)
}
} else {
var newRoleMan []string
newRoleMan = append(newRoleMan, v.UserKey)
saveData := publicmethod.MapOut[string]()
saveData["`roleuser`"] = strings.Join(newRoleMan, ",")
saveData["`time`"] = time.Now().Unix()
var roleContSave modelssystempermission.SystemRole
roleContSave.EiteCont(map[string]interface{}{"`id`": roleCont.Id}, saveData)
}
}
}
}
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-09 10:39:43
@ 功能: 写入新角色系统
*/
func NewWriteRole(userKey int64, roleAry []string) {
fmt.Printf("%v人员有赋权----------》%v\n\n", userKey, len(roleAry))
for _, v := range roleAry {
var roleCont modelssystempermission.SystemRole
roleCont.GetCont(map[string]interface{}{"`id`": v}, "`id`", "`roleuser`")
if roleCont.Id != 0 {
userKeyVal := strconv.FormatInt(userKey, 10)
if roleCont.Roleuser != "" && roleCont.Roleuser != "null" {
roleAry := strings.Split(roleCont.Roleuser, ",")
if !publicmethod.IsInTrue[string](userKeyVal, roleAry) {
roleAry = append(roleAry, userKeyVal)
saveData := publicmethod.MapOut[string]()
saveData["`roleuser`"] = strings.Join(roleAry, ",")
saveData["`time`"] = time.Now().Unix()
var roleContSave modelssystempermission.SystemRole
roleContSave.EiteCont(map[string]interface{}{"`id`": roleCont.Id}, saveData)
}
} else {
var newRoleMan []string
newRoleMan = append(newRoleMan, userKeyVal)
saveData := publicmethod.MapOut[string]()
saveData["`roleuser`"] = strings.Join(newRoleMan, ",")
saveData["`time`"] = time.Now().Unix()
var roleContSave modelssystempermission.SystemRole
roleContSave.EiteCont(map[string]interface{}{"`id`": roleCont.Id}, saveData)
}
}
}
}

19
api/authentication/type.go

@ -2,6 +2,7 @@ package authentication
import (
"appPlatform/overall/publicmethod"
"sync"
"github.com/gin-gonic/gin"
)
@ -30,6 +31,9 @@ type ApiEntry struct {
var AppApiEntry = new(ApiEntry)
// 协程设置
var syncSeting = sync.WaitGroup{}
// 验证字符串
type SignCodeStr struct {
Code string `json:"code"`
@ -96,3 +100,18 @@ type RoleTreeAndUser struct {
Icon string `json:"icon"`
Org string `json:"org"`
}
// 校对角色
type JiaoDuiRole struct {
UserKey string
RoleAry []string
}
type JdsjRoel struct {
RoleList []RoleUserArt
}
type RoleUserArt struct {
RoleId string
UserList []string
}

3
api/version1/customerApp/companyduty.go

@ -434,12 +434,15 @@ func (a *ApiMethod) GeyOneDayDuty(c *gin.Context) {
dayhValInt, _ := strconv.Atoi(dayhVal)
if requestData.Years != 0 {
yearValInt = requestData.Years
yearVal = strconv.Itoa(requestData.Years)
}
if requestData.Months != 0 {
monthValInt = requestData.Months
monthVal = strconv.Itoa(requestData.Months)
}
if requestData.Days != 0 {
dayhValInt = requestData.Days
dayhVal = strconv.Itoa(requestData.Days)
}
sendCenter := publicmethod.MapOut[string]()
var currOrgInfo GaveOrgAry

32
api/version1/customerform/calendarData.go

@ -137,6 +137,17 @@ func (c *CalendarList) HaveEveryDayData(day TimeAryInfo, formInfo modelAppPlatfo
gormDb = gormDb.Where("f.`states` = ?", 1)
gormDb = AnalysisSerachTermSqlIng(listField, gormDb) //将查询条件转换成
startTime, endTime := publicmethod.OenDayStartOrEndTime(day.Date, 1)
myPower := publicmethod.GetMyFormPower(userCont.Key, formInfo.Groupid, formInfo.SignCode)
//Step 2 权限处理
var powerSearch publicmethod.GainUserPower
powerSearch.SystemName = "appsystem" //系统名称
powerSearch.RoleId = userCont.Role //角色列表
powerSearch.OrgId = userCont.AdminOrg //行政组织
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
if class, isOk := viewCondition["date"]; isOk { //解析视图设定参数
if class.Status { //当前参数启用
if class.Form.StartTime != "" && class.Form.EndTime != "" {
@ -161,26 +172,25 @@ func (c *CalendarList) HaveEveryDayData(day TimeAryInfo, formInfo modelAppPlatfo
fmt.Printf("语句5===》%v\n", whySql)
gormDb = gormDb.Where(whySql)
}
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = true
timeConsfig.TimeWord = "f.`creater_time`"
timeConsfig.StartTime = startTime
timeConsfig.EndTime = endTime
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
} else {
whySql := fmt.Sprintf("f.`creater_time` BETWEEN %v AND %v", startTime, endTime)
fmt.Printf("语句6===》%v\n", whySql)
gormDb = gormDb.Where(whySql)
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
}
myPower := publicmethod.GetMyFormPower(userCont.Key, formInfo.Groupid, formInfo.SignCode)
//Step 2 权限处理
var powerSearch publicmethod.GainUserPower
powerSearch.SystemName = "appsystem" //系统名称
powerSearch.RoleId = userCont.Role //角色列表
powerSearch.OrgId = userCont.AdminOrg //行政组织
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
var formList []map[string]interface{}
err := gormDb.Order("`id` DESC").Find(&formList).Error
fmt.Printf("查询出来的结果是------>%v\n\n\n\n", formList)
// fmt.Printf("查询出来的结果是------>%v\n\n\n\n", formList)
if formInfo.ListJson != "" {
var listFieldsMap ListPageFields

8
api/version1/customerform/formTableList.go

@ -93,6 +93,8 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
// gormDb = gormDb.Where("`states` BETWEEN ? AND ?", 1, 2)
gormDb = AnalysisSerachTermSql(requestData.SearchData, gormDb) //处理查询条件
//Step 3 权限处理
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
var powerSearch publicmethod.GainUserPower
powerSearch.SystemName = "appsystem" //系统名称
powerSearch.RoleId = userCont.Role //角色列表
@ -100,7 +102,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
//Step 4 获取一共有多少条数据
var total int64
totalErr := gormDb.Count(&total).Error
@ -175,6 +177,8 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
gormDb = gormDb.Where("f.`states` = ?", 1) //基础查询条件
gormDb = AnalysisSerachTermSql(requestData.SearchData, gormDb) //处理查询条件
//Step 2 权限处理
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
var powerSearch publicmethod.GainUserPower
powerSearch.SystemName = "appsystem" //系统名称
powerSearch.RoleId = userCont.Role //角色列表
@ -182,7 +186,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
//Step 3 获取一共有多少条数据
var total int64
totalErr := gormDb.Count(&total).Error

6
api/version1/customerform/formTableView.go

@ -54,6 +54,7 @@ func (a *ApiMethod) MultiViewPAge(c *gin.Context) {
publicmethod.Result(1, err, c, "未知表单!无法获取字段!")
return
}
myPower := publicmethod.GetMyFormPower(userCont.Key, formInfo.Groupid, formInfo.SignCode)
//解析表单列表数据结构
var formJsonCont CustomerFormMaster
@ -68,7 +69,8 @@ func (a *ApiMethod) MultiViewPAge(c *gin.Context) {
// gormDb = gormDb.Where("f.`creater` = ? ", userCont.Key)
gormDb = gormDb.Where("f.`states` BETWEEN ? AND ?", 1, 2)
gormDb = AnalysisSerachTermSql(requestData.SearchData, gormDb)
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
//Step 2 权限处理
var powerSearch publicmethod.GainUserPower
powerSearch.SystemName = "appsystem" //系统名称
@ -77,7 +79,7 @@ func (a *ApiMethod) MultiViewPAge(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
var total int64
totalErr := gormDb.Count(&total).Error

71
api/version1/customerform/tableList.go

@ -100,7 +100,9 @@ func (a *ApiMethod) TableCusterField(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
//Step 4 获取一共有多少条数据
totalErr := gormDb.Count(&total).Error
@ -128,7 +130,9 @@ func (a *ApiMethod) TableCusterField(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
var timeConsfig publicmethod.PowerTimeSql
timeConsfig.IsTime = false
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower, timeConsfig)
//Step 3 获取一共有多少条数据
totalErr := gormDb.Count(&total).Error
@ -306,15 +310,43 @@ func HaveImgInfo(val map[string]interface{}, view map[string]ViewInfo, unitList
for _, v := range descVal {
vInfoStr := publicmethod.TypeToInterface(v)
descInfo := strings.Split(vInfoStr, "|#|")
// unitListJson, _ := json.Marshal(unitList)
// fmt.Printf("\n\n\n\n描述类型----->%v------------2------------->%v\n\n\n\n", vInfoStr, string(unitListJson))
if len(descInfo) >= 2 {
descAry = append(descAry, descInfo[0])
} else {
if descTitle, ok := val[vInfoStr]; ok {
descInfoVal := ""
for _, uv := range unitList {
if uv.Name != "" && uv.Name == vInfoStr {
descInfoVal = fmt.Sprintf("%v:%v ", uv.Item.Label, publicmethod.TypeToInterface(descTitle))
// unitListJson, _ := json.Marshal(uv)
// fmt.Printf("\n\n\n\n描述类型--11111111--->%v------------2------------->%v\n\n\n\n", vInfoStr, string(unitListJson))
for _, uvm := range uv.Columns {
for _, uvmL := range uvm.List {
if uvmL.Name != "" && uvmL.Name == vInfoStr {
if len(uvmL.Options) > 0 {
title := ""
valStr := publicmethod.TypeToInterface(descTitle)
for _, ov := range uvmL.Options {
if ov.Value == valStr {
title = ov.Label
}
}
if title != "" {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, title)
} else {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, publicmethod.TypeToInterface(descTitle))
}
} else {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, publicmethod.TypeToInterface(descTitle))
}
}
}
}
}
if descInfoVal == "" {
descInfoVal = publicmethod.TypeToInterface(descTitle)
@ -322,7 +354,7 @@ func HaveImgInfo(val map[string]interface{}, view map[string]ViewInfo, unitList
if descInfoVal != "" {
descAry = append(descAry, descInfoVal)
}
// fmt.Printf("\n\n\n\n描述类型----->%v------------3------------->%v\n\n\n\n", descTitle, descTitle)
}
}
}
@ -337,9 +369,34 @@ func HaveImgInfo(val map[string]interface{}, view map[string]ViewInfo, unitList
if descTitle, ok := val[vInfoStr]; ok {
descInfoVal := ""
for _, uv := range unitList {
if uv.Name != "" && uv.Name == vInfoStr {
descInfoVal = fmt.Sprintf("%v:%v ", uv.Item.Label, publicmethod.TypeToInterface(descTitle))
for _, uvm := range uv.Columns {
for _, uvmL := range uvm.List {
if uvmL.Name != "" && uvmL.Name == vInfoStr {
if len(uvmL.Options) > 0 {
title := ""
valStr := publicmethod.TypeToInterface(descTitle)
for _, ov := range uvmL.Options {
if ov.Value == valStr {
title = ov.Label
}
}
if title != "" {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, title)
} else {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, publicmethod.TypeToInterface(descTitle))
}
} else {
descInfoVal = fmt.Sprintf("%v:%v ", uvmL.Item.Label, publicmethod.TypeToInterface(descTitle))
}
}
}
}
// if uv.Name != "" && uv.Name == vInfoStr {
// descInfoVal = fmt.Sprintf("%v:%v ", uv.Item.Label, publicmethod.TypeToInterface(descTitle))
// }
}
if descInfoVal == "" {
descInfoVal = publicmethod.TypeToInterface(descTitle)

1
api/version1/customerform/websub.go

@ -0,0 +1 @@
package customerform

530
api/version1/grantpowers/appMenuPower.go

@ -0,0 +1,530 @@
package grantpowers
import (
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
"appPlatform/models/modelssystempermission"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/json"
"sort"
"strconv"
"strings"
"time"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2025-12-23 13:48:02
@ 功能: 初始化App双轴选项卡
*/
func (a *ApiMethod) GetAppGroupo(c *gin.Context) {
var requestData AppConfig
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.PowerType == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
powerId := publicmethod.TypeToInterface(requestData.PowerId)
if powerId == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
groupIsTrue, pickGroupAry := GainAppGroupAuth(requestData.PowerType, powerId)
var groupInfo modelAppPlatform.CustomerFormGroup
groupAry, _ := groupInfo.ContMap("`state` = 1")
//进行排序
sort.Slice(groupAry, func(i, j int) bool {
return groupAry[i].Sort < groupAry[j].Sort
})
var groupList []AppGroupInfo
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
groupCont.IsTrue = publicmethod.IsInTrue[string](groupId, pickGroupAry) //是否选中
groupList = append(groupList, groupCont)
}
sendGroupApp := publicmethod.MapOut[string]()
sendGroupApp["groupList"] = groupList
sendGroupApp["groupButPower"] = groupIsTrue
publicmethod.Result(0, sendGroupApp, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-26 08:34:59
@ 功能: 获取分组权限
#powerType 授权类型
#systemKey 授权对象值
*/
func GainAppGroupAuth(powerType, systemKey string) (butAry, groupAry []string) {
var groupPower modelssystempermission.AuthGroupPower
groupPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": powerType, "`orgOrUserKey`": systemKey})
if groupPower.PowerInfo != "" {
json.Unmarshal([]byte(groupPower.PowerInfo), &butAry)
}
if groupPower.GroupStatus != "" {
json.Unmarshal([]byte(groupPower.GroupStatus), &groupAry)
}
if powerType == "person" && groupPower.Id == 0 {
//Step 1: 获取人员相关权限
var userCont modelshr.PersonArchives
userCont.GetCont(map[string]interface{}{"`key`": systemKey})
//Step 2: 获取相关角色
var SystemRole []int64
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("`state` = 1 AND `types` = 1").Where("FIND_IN_SET(?, `roleuser`)", systemKey).Find(&SystemRole)
var roleIdAry []string
if userCont.Role != "" {
myRole := strings.Split(userCont.Role, ",")
roleIdAry = publicmethod.MergeStruct[string](myRole, roleIdAry)
}
for _, v := range SystemRole {
val := strconv.FormatInt(v, 10)
if !publicmethod.IsInTrue[string](val, roleIdAry) {
roleIdAry = append(roleIdAry, val)
}
}
if len(roleIdAry) > 0 {
var rolePowerAry []modelssystempermission.AuthGroupPower
overall.CONSTANT_DB_System_Permission.Where("`appType` = ? AND `orgPowerType` = ? AND `orgOrUserKey` IN ?", "app", "role", roleIdAry).Find(&rolePowerAry)
for _, v := range rolePowerAry {
if v.PowerInfo != "" {
var roleButAry []string
json.Unmarshal([]byte(v.PowerInfo), &roleButAry)
butAry = publicmethod.MergeStruct[string](roleButAry, butAry)
}
if v.GroupStatus != "" {
var roleGroupAry []string
json.Unmarshal([]byte(v.GroupStatus), &roleGroupAry)
groupAry = publicmethod.MergeStruct[string](roleGroupAry, groupAry)
}
}
}
//行政组织
var groupPower modelssystempermission.AuthGroupPower
groupPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": "org", "`orgOrUserKey`": systemKey})
if groupPower.Id > 0 {
if groupPower.PowerInfo != "" {
var roleButAry []string
json.Unmarshal([]byte(groupPower.PowerInfo), &roleButAry)
butAry = publicmethod.MergeStruct[string](roleButAry, butAry)
}
if groupPower.GroupStatus != "" {
var roleGroupAry []string
json.Unmarshal([]byte(groupPower.GroupStatus), &roleGroupAry)
groupAry = publicmethod.MergeStruct[string](roleGroupAry, groupAry)
}
} else {
var allFirstOrgId publicmethod.GetOrgAllParent
orgId, _ := strconv.ParseInt(systemKey, 10, 64)
allFirstOrgId.GetOrgFirst(orgId)
if len(allFirstOrgId.Id) > 0 {
for _, v := range allFirstOrgId.Id {
var groupPowerFirst modelssystempermission.AuthGroupPower
groupPowerFirst.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": "org", "`orgOrUserKey`": v})
if groupPowerFirst.Id > 0 {
if groupPowerFirst.PowerInfo != "" {
var roleButAry []string
json.Unmarshal([]byte(groupPowerFirst.PowerInfo), &roleButAry)
butAry = publicmethod.MergeStruct[string](roleButAry, butAry)
}
if groupPowerFirst.GroupStatus != "" {
var roleGroupAry []string
json.Unmarshal([]byte(groupPowerFirst.GroupStatus), &roleGroupAry)
groupAry = publicmethod.MergeStruct[string](roleGroupAry, groupAry)
}
break
}
}
}
}
//职务
var groupPowerPostst modelssystempermission.AuthGroupPower
groupPowerPostst.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": "job", "`orgOrUserKey`": userCont.Position})
if groupPowerPostst.PowerInfo != "" {
var roleButAry []string
json.Unmarshal([]byte(groupPowerPostst.PowerInfo), &roleButAry)
butAry = publicmethod.MergeStruct[string](roleButAry, butAry)
}
if groupPowerPostst.GroupStatus != "" {
var roleGroupAry []string
json.Unmarshal([]byte(groupPowerPostst.GroupStatus), &roleGroupAry)
groupAry = publicmethod.MergeStruct[string](roleGroupAry, groupAry)
}
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-24 13:38:13
@ 功能: 根据分组获取App列表
*/
func (a *ApiMethod) GetGroupAppList(c *gin.Context) {
var requestData GetGroupAppList
c.ShouldBindJSON(&requestData)
if requestData.PowerType == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.RoleId == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.Group == "" {
publicmethod.Result(1, requestData, c, "未知配权系统分组!不可进行配权")
return
}
list := GetGroupAppListIng(requestData.Group, requestData.PowerType, "app", requestData.RoleId)
publicmethod.Result(0, list, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-17 11:08:15
@ 功能: 获取分组App
*/
// func (a *AppGroupInfo) GetGroupApp() {
func GetGroupAppListIng(uuId, powerType, appType, powerId 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
appCont.IsTrue, appCont.OperationButton, _ = AppCallBackShow(v.SignCode, powerType, appType, powerId) //是否选中
if len(appCont.OperationButton) < 1 {
appCont.OperationButton = []string{}
}
if len(appCont.AppMenuTree) < 1 {
appCont.AppMenuTree = []AppMenuTreeInit{}
}
appAry = append(appAry, appCont)
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-24 15:39:54
@ 功能: 获取app菜单
*/
func (a *ApiMethod) GetAppMenuList(c *gin.Context) {
var requestData GetGroupAppList
c.ShouldBindJSON(&requestData)
if requestData.PowerType == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.RoleId == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.AppId == "" {
publicmethod.Result(1, requestData, c, "未知配权App!不可进行配权")
return
}
var menuList []modelAppPlatform.Appmenus
err := overall.CONSTANT_DB_AppPlatform.Where("`state` = 1 AND `isLock` = 2 AND `appkey` = ?", requestData.AppId).Find(&menuList).Error
if err != nil {
return
}
sort.Slice(menuList, func(i, j int) bool {
return menuList[i].EditTime < menuList[j].EditTime
})
sort.Slice(menuList, func(i, j int) bool {
return menuList[i].Sort < menuList[j].Sort
})
key, _ := strconv.ParseInt(requestData.AppId, 10, 64)
// list := AppTreeMenusnOne(key, menuList)
var authId []int64
switch requestData.PowerType {
case "role":
var authPower modelssystempermission.AuthPower
authPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.RoleId, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if authPower.Id != 0 {
authId = append(authId, authPower.Id)
}
case "org":
var authPower modelssystempermission.AuthPower
authPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.RoleId, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if authPower.Id != 0 {
authId = append(authId, authPower.Id)
} else {
orgIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
var allFirstOrgId publicmethod.GetOrgAllParent
allFirstOrgId.GetOrgFirst(orgIdInt)
if len(allFirstOrgId.Id) > 0 {
for _, v := range allFirstOrgId.Id {
if v != 0 {
var authPowerIng modelssystempermission.AuthPower
authPowerIng.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": v, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if authPower.Id != 0 {
authId = append(authId, authPowerIng.Id)
break
}
}
}
}
}
case "job":
var authPower modelssystempermission.AuthPower
authPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.RoleId, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if authPower.Id != 0 {
authId = append(authId, authPower.Id)
}
case "person":
var authPower modelssystempermission.AuthPower
authPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.RoleId, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if authPower.Id != 0 {
authId = append(authId, authPower.Id)
} else {
appType := "app"
appId, _ := strconv.ParseInt(requestData.AppId, 10, 64)
var authPower GainAppPowerTop
//角色
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "role", appType, requestData.RoleId)
//行政组织
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "org", appType, requestData.RoleId)
syncSeting.Wait()
//岗位
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "job", appType, requestData.RoleId)
syncSeting.Wait()
if len(authPower.List) > 0 {
for _, v := range authPower.List {
if v.IsTrue == 1 {
authId = append(authId, v.Id)
}
}
}
}
default:
}
menuTree := AppTreeMenus(key, authId, menuList)
publicmethod.Result(0, menuTree, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-04-23 13:42:51
@ 功能: App菜单树处理
*/
func AppTreeMenusnOne(parentId 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.FormPower = []string{}
menuCont.ListPower = []string{}
menuCont.PagePower = []string{}
menuCont.VisibleRange.Types = 1
menuCont.VisibleRange.Attribute = []int64{}
menuCont.Children = AppTreeMenusnOne(v.Id, menuList)
menusTree = append(menusTree, menuCont)
}
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-26 15:54:30
@ 功能: 分组授权
*/
func (a *ApiMethod) AppGroupPowerConfig(c *gin.Context) {
var requestData ConfigSetupGroup
c.ShouldBindJSON(&requestData)
if requestData.PowerType == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.PowerId == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
powerInfo, jsonErr := json.Marshal(requestData.GroupButPower)
var groupInfo modelssystempermission.AuthGroupPower
groupInfo.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.PowerId})
if groupInfo.Id != 0 {
saveData := publicmethod.MapOut[string]()
if jsonErr == nil {
saveData["powerInfo"] = string(powerInfo)
} else {
saveData["powerInfo"] = "[]"
}
saveData["`time`"] = time.Now().Unix()
var saveInfo modelssystempermission.AuthGroupPower
saveInfo.EiteCont(map[string]interface{}{"`id`": groupInfo.Id}, saveData)
} else {
uuid := publicmethod.GetUUid(1)
powerId := publicmethod.TypeToInterface(requestData.PowerId)
var saveGroupPower modelssystempermission.AuthGroupPower
saveGroupPower.Id = uuid
saveGroupPower.AppType = "app"
saveGroupPower.OrgPowerType = requestData.PowerType
saveGroupPower.OrgOrUserKey, _ = strconv.ParseInt(powerId, 10, 64)
saveGroupPower.Time = time.Now().Unix()
saveGroupPower.PowerInfo = string(powerInfo)
saveGroupPower.GroupStatus = "[]"
overall.CONSTANT_DB_System_Permission.Create(&saveGroupPower)
}
publicmethod.Result(0, groupInfo, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-27 08:13:42
@ 功能: 写入App及相关菜单权限
*/
func (a *ApiMethod) AppPowerConfig(c *gin.Context) {
var requestData AppMenuPower
c.ShouldBindJSON(&requestData)
if requestData.PowerType == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.PowerId == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
if requestData.AppId == "" {
publicmethod.Result(1, requestData, c, "未知配权应用!不可进行配权")
return
}
appPowerJson, _ := json.Marshal(requestData.MenuList)
appType := "app"
uuid := publicmethod.GetUUid(1)
var appPowerInfo modelssystempermission.AuthPower
appPowerInfo.GetCont(map[string]interface{}{"`appType`": appType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": requestData.PowerId, "`appKey`": requestData.AppId}, "`id`", "`isTrue`", "`appButPower`")
if appPowerInfo.Id == 0 { //新增
var newAppPowerInfo modelssystempermission.AuthPower
newAppPowerInfo.Id = uuid
newAppPowerInfo.OrgPowerType = requestData.PowerType
newAppPowerInfo.OrgOrUserKey, _ = strconv.ParseInt(requestData.PowerId, 10, 64)
newAppPowerInfo.AppType = appType
newAppPowerInfo.AppKey, _ = strconv.ParseInt(requestData.AppId, 10, 64)
newAppPowerInfo.Time = time.Now().Unix()
if requestData.AppIsTrue {
newAppPowerInfo.IsTrue = 1 //1:有;非1:无)
} else {
newAppPowerInfo.IsTrue = 0
}
newAppPowerInfo.PowerInfo = string(appPowerJson)
operAtionBut, _ := json.Marshal(requestData.AppPower)
newAppPowerInfo.AppButPower = string(operAtionBut)
overall.CONSTANT_DB_System_Permission.Create(&newAppPowerInfo)
var oldPower modelssystempermission.PowerInfo
oldPower.DelCont(map[string]interface{}{"`authId`": uuid})
var menuPowList AppMenuAry
menuPowList.List = []AppMenuInfo{}
menuPowList.AppMenuTreeSubNew(requestData.MenuList, uuid)
} else { //编辑
uuid = appPowerInfo.Id
saveData := publicmethod.MapOut[string]()
saveData["powerInfo"] = string(appPowerJson)
if requestData.AppIsTrue {
saveData["isTrue"] = 1
} else {
saveData["isTrue"] = 0
}
operAtionBut, _ := json.Marshal(requestData.AppPower)
saveData["appButPower"] = string(operAtionBut)
saveData["time"] = time.Now().Unix()
var saveAppPowerInfo modelssystempermission.AuthPower
saveAppPowerInfo.EiteCont(map[string]interface{}{"`id`": appPowerInfo.Id}, saveData)
var oldPower modelssystempermission.PowerInfo
oldPower.DelCont(map[string]interface{}{"`authId`": appPowerInfo.Id})
var menuPowList AppMenuAry
menuPowList.List = []AppMenuInfo{}
menuPowList.AppMenuTreeSubNew(requestData.MenuList, appPowerInfo.Id)
}
AppGroupJudje(appType, requestData.PowerType, requestData.PowerId, requestData.GroupList)
publicmethod.Result(0, requestData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-10 11:42:57
@ 功能: 处理App分组
*/
func AppGroupJudje(appType, powerType, powerId string, groupList []AppInfoPower) {
var groupIdAry []string
for _, v := range groupList {
if v.IsTrue {
groupIdAry = append(groupIdAry, v.Id)
}
}
groupIdAryJson, _ := json.Marshal(groupIdAry)
var authGroupInfo modelssystempermission.AuthGroupPower
authGroupInfo.GetCont(map[string]interface{}{"`appType`": appType, "`orgPowerType`": powerType, "`orgOrUserKey`": powerId})
if authGroupInfo.Id != 0 {
saveData := publicmethod.MapOut[string]()
saveData["groupStatus"] = string(groupIdAryJson)
saveData["`time`"] = time.Now().Unix()
var newAuthGroupInfo modelssystempermission.AuthGroupPower
newAuthGroupInfo.EiteCont(map[string]interface{}{"`id`": authGroupInfo.Id}, saveData)
} else {
powerIdInt, _ := strconv.ParseInt(powerId, 10, 64)
var addInfo modelssystempermission.AuthGroupPower
addInfo.Id = publicmethod.GetUUid(1)
addInfo.AppType = appType
addInfo.OrgPowerType = powerType
addInfo.OrgOrUserKey = powerIdInt
addInfo.Time = time.Now().Unix()
addInfo.PowerInfo = "[]"
addInfo.GroupStatus = string(groupIdAryJson)
overall.CONSTANT_DB_System_Permission.Create(&addInfo)
}
}

136
api/version1/grantpowers/postpower.go

@ -2,6 +2,7 @@ package grantpowers
import (
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
"appPlatform/models/modelsschool"
"appPlatform/models/modelsstorage"
"appPlatform/models/modelssystempermission"
@ -657,7 +658,7 @@ func (a *ApiMethod) AppInitAuthorization(c *gin.Context) {
requestData.PowerType = "org"
}
if requestData.AppType == "" {
requestData.AppType = "system"
requestData.AppType = "app"
}
if requestData.RoleId == "" {
requestData.RoleId = "0"
@ -727,7 +728,10 @@ func GetGroupApp(uuId int64, powerType, appType, powerId, systemId string) (appA
appCont.ParentId = strconv.FormatInt(v.Groupid, 10) //上级
appCont.IsPick = false
var authId []int64
// if v.SignCode == 339779471756234752 {
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)
}
@ -753,30 +757,62 @@ func AppCallBackShow(appId int64, powerType, appType, powerId string) (isTrue bo
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 {
var authPower GainAppPowerTop
//角色
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "role", appType, powerId)
//行政组织
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "org", appType, powerId)
syncSeting.Wait()
//岗位
syncSeting.Add(1)
go authPower.HaveAppAuthPower(appId, "job", appType, powerId)
syncSeting.Wait()
if len(authPower.List) > 0 {
for _, v := range authPower.List {
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)
var butPowerAry []string
json.Unmarshal([]byte(v.AppButPower), &butPowerAry)
if len(butPowerAry) > 0 {
butPower = publicmethod.MergeStruct[string](butPowerAry, butPower)
}
}
}
}
// 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
}
@ -791,6 +827,67 @@ func AppCallBackShow(appId int64, powerType, appType, powerId string) (isTrue bo
return
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-04 11:36:50
@ 功能: 获取App权限列表
*/
func (g *GainAppPowerTop) HaveAppAuthPower(appId int64, powerType, appType, powerId string) {
defer syncSeting.Done()
//Step 1: 获取人员相关权限
var userCont modelshr.PersonArchives
userCont.GetCont(map[string]interface{}{"`key`": powerId})
gormDb := overall.CONSTANT_DB_System_Permission.Where("`appType` = ? AND `appKey` = ?", appType, appId)
switch powerType {
case "role":
//Step 2: 获取相关角色
var SystemRole []int64
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("`state` = 1 AND `types` = 1").Where("FIND_IN_SET(?, `roleuser`)", userCont.Key).Find(&SystemRole)
if len(SystemRole) > 0 {
var authList []modelssystempermission.AuthPower
gormDb.Where("`orgOrUserKey` IN ? AND `orgPowerType` = ?", SystemRole, "role").Find(&authList)
if len(authList) > 0 {
g.List = append(g.List, authList...)
}
}
case "org":
if userCont.AdminOrg != 0 {
var authList []modelssystempermission.AuthPower
gormDb.Where("`orgOrUserKey` IN ? AND `orgPowerType` = ?", userCont.AdminOrg, "org").Find(&authList)
if len(authList) > 0 {
g.List = append(g.List, authList...)
} else {
var allFirstOrgId publicmethod.GetOrgAllParent
allFirstOrgId.GetOrgFirst(userCont.AdminOrg)
if len(allFirstOrgId.Id) > 0 {
for _, v := range allFirstOrgId.Id {
if v != 0 {
var authOrgList []modelssystempermission.AuthPower
gormDb.Where("`orgOrUserKey` IN ? AND `orgPowerType` = ?", v, "org").Find(&authOrgList)
if len(authOrgList) > 0 {
g.List = append(g.List, authList...)
break
}
}
}
}
}
}
case "job":
if userCont.Position != 0 {
var authList []modelssystempermission.AuthPower
gormDb.Where("`orgOrUserKey` = ? AND `orgPowerType` = ?", userCont.Position).Find(&authList)
if len(authList) > 0 {
g.List = append(g.List, authList...)
}
}
}
}
/*
*
@ 作者: 秦东
@ -852,8 +949,9 @@ func AppTreeMenus(parentId int64, authId []int64, menuList []modelAppPlatform.Ap
*/
func AppMenuCallBackShow(menuId int64, authId []int64) (isTrue bool, pagePower, ListPower, FormPower []string, types int64, userPower []int64) {
isTrue = false
types = 1
var menuPower []modelssystempermission.PowerInfo
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where(" `authId` IN ? AND `appType` = ? AND `itemId` = ? ", authId, menuId).Find(&menuPower)
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where(" `authId` IN ? AND `itemId` = ? ", authId, menuId).Find(&menuPower)
for _, v := range menuPower {
if v.IsPick == 1 {
isTrue = true
@ -917,12 +1015,14 @@ func (a *ApiMethod) TabsAuthorizationMode(c *gin.Context) {
}
groupIsShow, _ := json.Marshal(groupIdAry)
groupBurStr, _ := json.Marshal(requestData.GroupPower)
//写入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["powerInfo"] = string(groupBurStr)
saveData["time"] = time.Now().Unix()
var saveInfo modelssystempermission.AuthGroupPower
saveInfo.EiteCont(map[string]interface{}{"`id`": appGroupPower.Id}, saveData)
@ -934,7 +1034,7 @@ func (a *ApiMethod) TabsAuthorizationMode(c *gin.Context) {
saveGroupPower.OrgPowerType = requestData.PowerType
saveGroupPower.OrgOrUserKey, _ = strconv.ParseInt(requestData.RoleId, 10, 64)
saveGroupPower.Time = time.Now().Unix()
saveGroupPower.PowerInfo = "['xz','dl','bj','xzapp']"
saveGroupPower.PowerInfo = string(groupBurStr)
saveGroupPower.GroupStatus = string(groupIsShow)
overall.CONSTANT_DB_System_Permission.Create(&saveGroupPower)
}

65
api/version1/grantpowers/type.go

@ -1,6 +1,7 @@
package grantpowers
import (
"appPlatform/models/modelssystempermission"
"appPlatform/overall/publicmethod"
"sync"
@ -208,21 +209,25 @@ type AppInfoPower struct {
// 应用菜单树
type AppMenuTreeInit struct {
PowerContInit
AppKey string `json:"appKey"`
PagePower []string `json:"pagePower"`
FormPower []string `json:"formPower"`
ListPower []string `json:"listPower"`
VisibleRange DatePowerInfo `json:"visibleRange"`
MenuType int `json:"menuType"`
Children []AppMenuTreeInit `json:"children"`
AppKey string `json:"appKey"`
PagePower []string `json:"pagePower"`
PagePowerIsAll bool `json:"pagePowerIsAll"`
FormPower []string `json:"formPower"`
FormPowerIsAll bool `json:"formPowerIsAll"`
ListPower []string `json:"listPower"`
ListPowerIsAll bool `json:"listPowerIsAll"`
VisibleRange DatePowerInfo `json:"visibleRange"`
MenuType int `json:"menuType"`
Children []AppMenuTreeInit `json:"children"`
}
// 提交授权
type SaveAppPower struct {
AppType string `json:"appType"`
PowerType string `json:"powerType"`
RoleId string `json:"roleId"`
ListPower []AppGroupInfo `json:"listPower"`
AppType string `json:"appType"`
PowerType string `json:"powerType"`
RoleId string `json:"roleId"`
ListPower []AppGroupInfo `json:"listPower"`
GroupPower []string `json:"groupPower"`
}
// 自定义App菜单列表
@ -239,3 +244,41 @@ type AppMenuInfo struct {
type AppMenuAry struct {
List []AppMenuInfo `json:"list"`
}
type AppConfig struct {
PowerType string `json:"powerType"`
PowerId interface{} `json:"powerId"`
}
type GetGroupAppList struct {
AppType string `json:"appType"`
PowerType string `json:"powerType"`
RoleId string `json:"roleId"`
Group string `json:"group"`
AppId string `json:"appId"`
}
type ConfigSetupGroup struct {
AppConfig
GroupButPower []string `json:"groupButPower"`
}
type AppMenuPower struct {
PowerType string `json:"powerType"`
PowerId string `json:"powerId"`
AppId string `json:"appId"`
AppPower []string `json:"appPower"`
AppIsTrue bool `json:"appIsTrue"`
MenuList []AppMenuTreeInit `json:"menuList"`
GroupList []AppInfoPower `json:"groupList"`
}
/*
*
@ 作者: 秦东
@ 时间: 2026-01-04 11:31:23
@ 功能: 获取App层面权限
*/
type GainAppPowerTop struct {
List []modelssystempermission.AuthPower
}

3
api/version1/humanResources/org.go

@ -39,7 +39,8 @@ func (a *ApiMethod) AuthorizeOrgTree(c *gin.Context) {
fmt.Printf("权限-----22222222222222222222222222222222222222222222222222222222222222222222222---->%v\n\n\n", gotmDb)
//获取权限
myPower := publicmethod.GetMyMenuPower(myContInfo.Key, requestData.MenuId)
fmt.Printf("权限--------->%v------>%v\n\n\n", myPower.Scope, myPower)
myPowerJson, _ := json.Marshal(myPower)
fmt.Printf("权限--------->%v------>%v\n\n\n", myPower.Scope, string(myPowerJson))
var fisrtId int64
switch myPower.Scope { //可见范围(1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有)
case 2:

8
api/version1/menus/menus.go

@ -54,13 +54,13 @@ func (a *ApiMethod) GetMenusThree(c *gin.Context) {
// sort.Slice(menusList, func(i, j int) bool {
// return menusList[i].Sort > menusList[j].Sort
// })
powerInfo := publicmethod.GetSystemPowerInfo(myContInfo.Key)
// powerInfo := publicmethod.GetSystemPowerInfo(myContInfo.Key)
var havePowerMenu []modelAppPlatform.Menus
for _, v := range menusList {
if publicmethod.IsInTrue[int64](int64(v.Id), powerInfo.MenuIdAry) {
havePowerMenu = append(havePowerMenu, v)
}
// if publicmethod.IsInTrue[int64](int64(v.Id), powerInfo.MenuIdAry) {
havePowerMenu = append(havePowerMenu, v)
// }
}
routerThree := publicmethod.GetMenuRouterThree(0, havePowerMenu)

60
api/version1/setupRoule/authorization.go

@ -139,6 +139,32 @@ func (a *AppSystemInfo) EditAuthGroupPower(uuid int64) {
saveGroupPower.EiteCont(map[string]interface{}{"`id`": uuid}, saveData)
}
}
func (a *AppSystemInfo) EditAuthGroupPowerEs(uuid int64, powerAry []string) {
powerSte, _ := json.Marshal(powerAry)
var groupPower modelssystempermission.AuthGroupPower
err := groupPower.GetCont(map[string]interface{}{"`id`": uuid})
// fmt.Printf("编辑自定义应用分组授权--->%v--->%v\n\n", err, groupPower.Time)
if err != nil || groupPower.Time == 0 {
oukId, _ := strconv.ParseInt(a.RoleId, 10, 64)
var saveGroupPower modelssystempermission.AuthGroupPower
saveGroupPower.Id = uuid
saveGroupPower.AppType = a.AppSystem
saveGroupPower.OrgPowerType = a.PowerType
saveGroupPower.OrgOrUserKey = oukId
saveGroupPower.Time = time.Now().Unix()
saveGroupPower.PowerInfo = string(powerSte)
overall.CONSTANT_DB_System_Permission.Create(&saveGroupPower)
} else {
saveData := publicmethod.MapOut[string]()
saveData["`appType`"] = a.AppSystem
saveData["`orgPowerType`"] = a.PowerType
saveData["`orgOrUserKey`"] = a.RoleId
saveData["`time`"] = time.Now().Unix()
saveData["`powerInfo`"] = string(powerSte)
var saveGroupPower modelssystempermission.AuthGroupPower
saveGroupPower.EiteCont(map[string]interface{}{"`id`": uuid}, saveData)
}
}
/*
*
@ -150,6 +176,7 @@ func (a *AppSystemInfo) SplitPermissions(uuid int64) error {
var oldPower modelssystempermission.PowerInfo
err := oldPower.DelCont(map[string]interface{}{"`authId`": uuid})
var insterAry []modelssystempermission.PowerInfo
switch a.AppSystem {
case "app":
@ -187,6 +214,7 @@ func (a *AppSystemInfo) SplitPermissions(uuid int64) error {
insterAry = append(insterAry, saveInfo)
}
case "system":
var appStsMap []AppPowerTree
for _, v := range a.SystemPower {
isPick := 0
if v.IsTrue {
@ -209,14 +237,45 @@ func (a *AppSystemInfo) SplitPermissions(uuid int64) error {
saveInfo.ButPower = jieguo //按钮权限
saveInfo.Time = time.Now().Unix() //编辑时间
insterAry = append(insterAry, saveInfo)
appStsMap = append(appStsMap, v)
if len(v.Children) > 0 {
var childAry SystemTreePower
childAry.WriteSystemInfo(uuid, v.Children)
if len(childAry.WriteInfo) > 0 {
insterAry = append(insterAry, childAry.WriteInfo...)
}
if len(childAry.AppMenuMap) > 0 {
appStsMap = append(appStsMap, childAry.AppMenuMap...)
}
}
}
var appGroupPower []string
for _, v := range appStsMap {
if v.Name == "极刻零码" {
for _, bv := range v.ButtenPower {
switch bv.Name {
case "新增分组":
appGroupPower = append(appGroupPower, "xz")
case "删除分组":
appGroupPower = append(appGroupPower, "dl")
case "编辑分组":
appGroupPower = append(appGroupPower, "bj")
case "新增App":
appGroupPower = append(appGroupPower, "xz")
default:
}
}
}
}
var groupPower modelssystempermission.AuthGroupPower
groupPower.GetCont(map[string]interface{}{"`appType`": "app", "`orgPowerType`": a.PowerType, "`orgOrUserKey`": a.RoleId})
if groupPower.Id != 0 {
a.EditAuthGroupPowerEs(groupPower.Id, appGroupPower)
} else {
a.EditAuthGroupPowerEs(uuid, appGroupPower)
}
default:
}
if len(insterAry) > 0 {
@ -248,6 +307,7 @@ func (s *SystemTreePower) WriteSystemInfo(uuid int64, list []AppPowerTree) {
saveInfo.ButPower = jieguo //按钮权限
saveInfo.Time = time.Now().Unix() //编辑时间
s.WriteInfo = append(s.WriteInfo, saveInfo)
s.AppMenuMap = append(s.AppMenuMap, v)
if len(v.Children) > 0 {
s.WriteSystemInfo(uuid, v.Children)
}

3
api/version1/setupRoule/entry.go

@ -137,7 +137,8 @@ type DatePowerInfo struct {
// 权限树写入
type SystemTreePower struct {
WriteInfo []modelssystempermission.PowerInfo
WriteInfo []modelssystempermission.PowerInfo
AppMenuMap []AppPowerTree
}
// 获取角色所有人

16
api/version1/setupRoule/power.go

@ -28,6 +28,7 @@ func (a *ApiMethod) AppPowerUnit(c *gin.Context) {
requestData.RoleId = "0"
}
powerInfo, _ := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppSystem, requestData.RoleId, requestData.AppId)
var appPowerTrue []AppPowerTree
switch requestData.AppSystem {
default:
@ -44,7 +45,7 @@ func (a *ApiMethod) AppPowerUnit(c *gin.Context) {
*/
func AppMenuPower(powerType, unitId string, powerInfo publicmethod.SendSystemPower) []AppPowerTree {
var menuList []AppPowerInfo
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Menus{}).Where("`visible` = 1").Find(&menuList)
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Menus{}).Where("`visible` = 1 OR `visible` = 2").Find(&menuList)
sort.Slice(menuList, func(i, j int) bool {
return menuList[i].Sort < menuList[j].Sort
@ -95,6 +96,8 @@ func MenuButList(noButMenu, ButMenu []AppPowerInfo) (menuButList []AppMenuBut) {
menuButInfo.ParentId = v.ParentId //父菜单ID
menuButInfo.IsTrue = v.IsTrue
menuButInfo.AppPowerList = []int64{1}
menuButInfo.Visible = 1
menuButInfo.VisibleRange.Types = 1
for _, bv := range ButMenu {
if bv.ParentId == v.Id {
// var butInfo AppPowerInfo
@ -149,8 +152,15 @@ func MenuPower(menuInfo []AppMenuBut, powerInfo publicmethod.SendSystemPower) (m
for _, pv := range powerInfo.PowerList {
if pv.ItemId == int64(v.Id) {
v.IsTrue = pv.IsPick
v.Visible = pv.VisibleRange
v.VisibleRange.Types = pv.VisibleRange
v.Visible = 1
if pv.VisibleRange > 1 {
v.Visible = pv.VisibleRange
}
v.VisibleRange.Types = 1
if pv.VisibleRange > 1 {
v.VisibleRange.Types = pv.VisibleRange
}
if len(pv.VisibleOrg) > 0 {
// var visStr []string
// for _, visv := range pv.VisibleOrg {

21
api/version1/user/type.go

@ -127,19 +127,20 @@ type SendOrgAndManInfo struct {
// 输出权限列表
type SendAllPower struct {
SystemPower []SystemInfoPower `json:"systemPower"`
MenuIdAry []int64 `json:"menuIdAry"`
MenuButIdAry []string `json:"menuButIdAry"`
AppSystemPower []AppMyPower `json:"appSystemPower"`
AppKeyAry []string `json:"appKeyAry"`
AppGroupPower []string `json:"appGroupPower"` //自定义App分组权限
AppGroupMenu []string `json:"appGroupMenu"`
SystemPower []SystemInfoPower `json:"systemPower"` //系统权限
MenuIdAry []int64 `json:"menuIdAry"` //菜单
MenuButIdAry []string `json:"menuButIdAry"` //菜单按钮
AppSystemPower []AppMyPower `json:"appSystemPower"` //自定义App权限
AppKeyAry []string `json:"appKeyAry"` //自定义App识别码
AppGroupPower []string `json:"appGroupPower"` //自定义App分组权限
AppGroupMenu []string `json:"appGroupMenu"` //自定义分组菜单
Level int64 `json:"level"` //等级
}
type SystemInfoPower struct {
AppId string `json:"AppId"`
publicmethod.PublicName
IsPick bool `json:"isPick`
AppId string `json:"AppId"` //菜单ID
publicmethod.PublicName //菜单名称
IsPick bool `json:"isPick` //是否授权
OutPowerInfo
}

88
api/version1/workWechat/wechat.go

@ -152,7 +152,7 @@ func (a *ApiMethod) LookOnePeopleArchives(c *gin.Context) {
}
var surverManInfo modelshr.ManCont
err = surverManInfo.GetCont(map[string]interface{}{"`number`": requestData.SurveyMan}, "`emp_type`", "`company`", "`maindeparment`", "`admin_org`", "`position`", "`position`", "`role`")
err = surverManInfo.GetCont(map[string]interface{}{"`number`": requestData.SurveyMan}, "`emp_type`", "`company`", "`maindeparment`", "`admin_org`", "`position`", "`position`", "`role`", "`key`")
if err != nil {
publicmethod.Result(0, sendData, c)
return
@ -166,42 +166,86 @@ func (a *ApiMethod) LookOnePeopleArchives(c *gin.Context) {
var orgList []string
sendData.Purview, _, orgList, sendData.Level = user.GetUserPower("appsystem", surverManInfo.Position, roleList)
// fmt.Printf("人员信息--->Purview:%v--->orgList:%v--->Level:%v\n", sendData.Purview, orgList, sendData.Level)
myPower := publicmethod.GetMyMenuPower(surverManInfo.Key, "135")
if publicmethod.IsInTrue[string]("210700510225772544", sendData.Purview) {
fmt.Printf("人员信息--->Purview:%v--->orgList:%v--->Level:%v\n", sendData.Purview, orgList, sendData.Level)
myPowerJson, _ := json.Marshal(myPower)
fmt.Printf("权限--------->%v------>%v\n\n\n", myPower.Scope, string(myPowerJson))
// if publicmethod.IsInTrue[string]("210700510225772544", sendData.Purview) {
if myPower.IsPick {
//获取被查看人行政组织
var lookManInfo modelshr.PersonArchives
lookManInfo.GetCont(map[string]interface{}{"`number`": requestData.UnSurveyMan}, "`company`", "`maindeparment`", "`admin_org`")
switch sendData.Level {
lookManInfo.GetCont(map[string]interface{}{"`number`": requestData.UnSurveyMan}, "`company`", "`maindeparment`", "`admin_org`", "`key`", "`position`")
// switch sendData.Level {
switch myPower.Scope {
case 1:
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(surverManInfo.AdminOrg)
sunOrg.Id = append(sunOrg.Id, surverManInfo.AdminOrg)
if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
if surverManInfo.Key == lookManInfo.Key {
sendData.IsOk = 1
} else {
sendData.IsOk = 2
}
// var sunOrg publicmethod.GetOrgAllParent
// sunOrg.GetOrgSun(surverManInfo.AdminOrg)
// sunOrg.Id = append(sunOrg.Id, surverManInfo.AdminOrg)
// if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
// sendData.IsOk = 1
// }
case 2:
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(surverManInfo.MainDeparment)
sunOrg.Id = append(sunOrg.Id, surverManInfo.MainDeparment)
if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
if surverManInfo.Position == lookManInfo.Position {
sendData.IsOk = 1
} else {
sendData.IsOk = 2
}
// var sunOrg publicmethod.GetOrgAllParent
// sunOrg.GetOrgSun(surverManInfo.MainDeparment)
// sunOrg.Id = append(sunOrg.Id, surverManInfo.MainDeparment)
// if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
// sendData.IsOk = 1
// }
case 3:
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(surverManInfo.Company)
sunOrg.Id = append(sunOrg.Id, surverManInfo.Company)
if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
sendData.IsOk = 1
var powerMan publicmethod.GetOrgAllParent
powerMan.GetOrgSun(surverManInfo.AdminOrg)
powerMan.Id = append(powerMan.Id, surverManInfo.AdminOrg)
var lookMan publicmethod.GetOrgAllParent
lookMan.GetOrgSun(lookManInfo.AdminOrg)
lookMan.Id = append(lookMan.Id, lookManInfo.AdminOrg)
for _, lv := range lookMan.Id {
if publicmethod.IsInTrue[int64](lv, powerMan.Id) {
sendData.IsOk = 1
}
}
// var sunOrg publicmethod.GetOrgAllParent
// sunOrg.GetOrgSun(surverManInfo.Company)
// sunOrg.Id = append(sunOrg.Id, surverManInfo.Company)
// if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) {
// sendData.IsOk = 1
// }
case 4:
departMent := strconv.FormatInt(lookManInfo.MainDeparment, 10)
orgId := strconv.FormatInt(lookManInfo.AdminOrg, 10)
companyId := strconv.FormatInt(lookManInfo.Company, 10)
if publicmethod.IsInTrue[string](companyId, orgList) || publicmethod.IsInTrue[string](departMent, orgList) || publicmethod.IsInTrue[string](orgId, orgList) {
if surverManInfo.Company == lookManInfo.Company {
sendData.IsOk = 1
} else {
sendData.IsOk = 2
}
// departMent := strconv.FormatInt(lookManInfo.MainDeparment, 10)
// orgId := strconv.FormatInt(lookManInfo.AdminOrg, 10)
// companyId := strconv.FormatInt(lookManInfo.Company, 10)
// if publicmethod.IsInTrue[string](companyId, orgList) || publicmethod.IsInTrue[string](departMent, orgList) || publicmethod.IsInTrue[string](orgId, orgList) {
// sendData.IsOk = 1
// }
case 5:
var orgMap []int64
for _, sv := range myPower.ScopeManAry {
orgMap = append(orgMap, int64(sv))
}
if publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, orgMap) {
sendData.IsOk = 1
} else {
sendData.IsOk = 2
}
case 6:
sendData.IsOk = 1
default:
sendData.IsOk = 2

2
apirouter/authenticationroute/signcoderoute.go

@ -31,5 +31,7 @@ func (a *RoleApiRouter) RouterGroup(router *gin.RouterGroup) {
apiRouter.POST("editRoleCont", methodBinding.EditRoleCont) //编辑角色组
apiRouter.POST("editRoleStatus", methodBinding.EditRoleStatus) //修改角色状态
apiRouter.POST("getOrgPostTree", methodBinding.GetOrgPostTree) //获取行政组织加岗位树
apiRouter.POST("verifyInformationRolePersonnel", methodBinding.VerifyInformationRolePersonnel) //校队角色人员信息
}
}

7
apirouter/v1/grantsystempower/pc.go

@ -25,5 +25,12 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) {
apiRouter.POST("appInitAuthorization", methodBinding.AppInitAuthorization) //初始化应用授权选项
apiRouter.POST("tabsAuthorizationMode", methodBinding.TabsAuthorizationMode) //选项卡App授权模式
apiRouter.POST("getAppGroupo", methodBinding.GetAppGroupo) //初始化v选项卡App双轴
apiRouter.POST("getGroupAppList", methodBinding.GetGroupAppList) //根据分组获取App列表
apiRouter.POST("getAppMenuList", methodBinding.GetAppMenuList) //获取app菜单
apiRouter.POST("appGroupPowerConfig", methodBinding.AppGroupPowerConfig) //分组授权
apiRouter.POST("appPowerConfig", methodBinding.AppPowerConfig) //写入App及相关菜单权限
}
}

4
config/configDatabase/database.yaml

@ -260,8 +260,8 @@ storage:
#应用平台数据库
servermaster:
url_path: '36.133.126.182' #数据库地址
port: 3306 #数据库端口
url_path: '36.133.123.69' #数据库地址
port: 13366 #数据库端口
charset: 'utf8mb4' #数据库编码方式
parseTime: 'True' #是否自动转换时间
loc: 'Local' #时区

16
overall/publicmethod/getUserPower.go

@ -221,7 +221,7 @@ func (g *GainUserPower) GetUserPower() (powerInfo SendUserPower) {
#
*/
func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont, isOdeb string, appFormPower AppMyPowerTable) *gorm.DB {
func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont, isOdeb string, appFormPower AppMyPowerTable, timeSet PowerTimeSql) *gorm.DB {
// powerInfo := g.GetUserPower()
// // js, _ := json.Marshal(powerInfo)
// fmt.Printf("\n\n\n等级-----%v--- ---->%v\n\n\n", isOdeb, powerInfo)
@ -275,7 +275,12 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
case 6:
default:
}
gormDb = gormDb.Or("f.`creater` = ?", userCont.Key)
if timeSet.IsTime {
gormDb = gormDb.Or("f.`creater` = ? AND ? BETWEEN ? AND ? ", userCont.Key, timeSet.TimeWord, timeSet.StartTime, timeSet.EndTime)
} else {
gormDb = gormDb.Or("f.`creater` = ?", userCont.Key)
}
return gormDb
}
@ -291,13 +296,16 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo
powerInfo.PowerId = powerId
powerInfo.SystemId = systemId
powerInfo.SystemIsPick = false
fmt.Printf("%v--------->%v--------->%v\n\n", powerType, systemTyep, powerId)
if powerType == "" || systemTyep == "" || powerId == "" {
return
}
if systemId != "system" && systemId == "" {
fmt.Printf("%v--------->%v--------->%v\n\n", systemId, systemId, systemId)
if systemTyep != "system" && systemId == "" {
return
}
fmt.Printf("%v-----1---->%v--------->%v\n\n", systemId, systemId, systemId)
var masterPower modelssystempermission.AuthPower
gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = ? AND `orgOrUserKey` = ? AND `appType` = ?", powerType, powerId, systemTyep)
switch systemTyep {

2
overall/publicmethod/technique.go

@ -2556,7 +2556,7 @@ func GetMenuRouterThree(parentId int, threeData []modelAppPlatform.Menus) []Menu
if v.Types == 5 {
// node.Path = fmt.Sprintf("%v?appid=%v&tableid=%v", v.Path, v.AppId, v.TableId)
}
node.AppId = v.AppId
node.AppId = int64(v.Id)
node.TableId = v.TableId
node.Component = v.Component //组件路径
node.Redirect = v.Redirect //跳转链接

8
overall/publicmethod/type.go

@ -464,3 +464,11 @@ type SendAppTabelPower struct {
FormPower []AppMyPowerTable `json:"formPower"`
ButPower []string `json:"butPower"`
}
// 时间参数
type PowerTimeSql struct {
IsTime bool
TimeWord interface{}
StartTime interface{}
EndTime interface{}
}

Loading…
Cancel
Save