diff --git a/api/version1/grantpowers/postpower.go b/api/version1/grantpowers/postpower.go index 3cc483f..6aba0ae 100644 --- a/api/version1/grantpowers/postpower.go +++ b/api/version1/grantpowers/postpower.go @@ -253,7 +253,7 @@ func (a *ApiMethod) GainAppList(c *gin.Context) { 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{} @@ -582,7 +582,9 @@ func CallBackTablePower(tableInfo modelAppPlatform.CustomerForm, powerList []pub sendInfo.DatePower.Types = int64(v.VisibleRange) var attId []int64 for _, iv := range v.VisibleOrg { - attId = append(attId, int64(iv)) + // ivInt, _ := strconv.ParseInt(iv, 10, 64) + // attId = append(attId, ivInt) + attId = append(attId, iv) } sendInfo.DatePower.Attribute = attId isOk = true diff --git a/api/version1/humanResources/enter.go b/api/version1/humanResources/enter.go index 4f60bce..41a1aec 100644 --- a/api/version1/humanResources/enter.go +++ b/api/version1/humanResources/enter.go @@ -74,3 +74,15 @@ type PeopleInfo struct { MarriageStatus string `json:"marriageStatus"` //婚姻状况 } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-04 14:17:58 +@ 功能: 修改密码 +*/ +type SaveMyPwd struct { + OldPassword string `json:"oldPassword"` + NewPassword string `json:"newPassword"` + ConfirmPassword string `json:"confirmPassword"` +} diff --git a/api/version1/humanResources/peopel.go b/api/version1/humanResources/peopel.go index ece85c1..4f7446b 100644 --- a/api/version1/humanResources/peopel.go +++ b/api/version1/humanResources/peopel.go @@ -7,6 +7,7 @@ import ( "encoding/json" "strconv" "strings" + "time" "github.com/gin-gonic/gin" ) @@ -282,3 +283,51 @@ func (a *ApiMethod) AddNewPeople(c *gin.Context) { publicmethod.Result(104, err, c) } } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-04 14:21:21 +@ 功能: 编辑自己登陆密码 +*/ +func (a *ApiMethod) EditMyPwd(c *gin.Context) { + var requestData SaveMyPwd + err := c.ShouldBindJSON(&requestData) + if err != nil { + publicmethod.Result(100, err, c) + return + } + if requestData.OldPassword == "" || requestData.NewPassword == "" || requestData.ConfirmPassword == "" { + publicmethod.Result(1, requestData, c, "您输入的数据不符合要求!") + return + } + if requestData.NewPassword != requestData.ConfirmPassword { + publicmethod.Result(2, err, c, "您输入的数据不符合要求!") + return + } + //获取当前操作人 + context, _ := c.Get(overall.MyContJwt) + var myContInfo modelshr.ManCont + jsonCont, _ := json.Marshal(context) + json.Unmarshal(jsonCont, &myContInfo) + var oldPwd publicmethod.Md5Encryption + oldPwd.Md5EncryptionInit(requestData.OldPassword) + oldPwdMd5 := oldPwd.Md5EncryptionAlgorithm() + if oldPwdMd5 != myContInfo.Password { + publicmethod.Result(3, err, c, "您输入的数据不符合要求!") + return + } + var newPwd publicmethod.Md5Encryption + newPwd.Md5EncryptionInit(requestData.ConfirmPassword) + + saveData := publicmethod.MapOut[string]() + saveData["`password`"] = newPwd.Md5EncryptionAlgorithm() + saveData["`eite_time`"] = time.Now().Unix() + var myInfo modelshr.PersonArchives + err = myInfo.EiteCont(map[string]interface{}{"`key`": myContInfo.Key}, saveData) + if err != nil { + publicmethod.Result(104, err, c, "") + return + } + publicmethod.Result(0, err, c) +} diff --git a/api/version1/setupRoule/entry.go b/api/version1/setupRoule/entry.go index 2e24c56..8f55cd4 100644 --- a/api/version1/setupRoule/entry.go +++ b/api/version1/setupRoule/entry.go @@ -66,8 +66,8 @@ type AppPowerTree struct { } type VisibleRangeInfo struct { - Types int `json:"typrs"` //1、行政组织;2、岗位;3:人员 - Val []int `json:"val"` + Types int `json:"typrs"` //1、行政组织;2、岗位;3:人员 + Val []int64 `json:"val"` } // 输出获取首层子行政组织和本组织下的人员 diff --git a/api/version1/setupRoule/power.go b/api/version1/setupRoule/power.go index d6f1142..4fa13c5 100644 --- a/api/version1/setupRoule/power.go +++ b/api/version1/setupRoule/power.go @@ -5,6 +5,7 @@ import ( "appPlatform/overall" "appPlatform/overall/publicmethod" "sort" + "strconv" "github.com/gin-gonic/gin" ) @@ -21,7 +22,7 @@ func (a *ApiMethod) AppPowerUnit(c *gin.Context) { requestData.PowerType = "org" } if requestData.AppSystem == "" { - requestData.AppSystem = "appsystem" + requestData.AppSystem = "system" } if requestData.RoleId == "" { requestData.RoleId = "0" @@ -44,6 +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) + sort.Slice(menuList, func(i, j int) bool { return menuList[i].Sort < menuList[j].Sort }) @@ -68,7 +70,8 @@ func AppMenuPower(powerType, unitId string, powerInfo publicmethod.SendSystemPow */ func JuadgeBut(menuInfo []AppPowerInfo, powerInfo publicmethod.ItemInfo) (butPower []AppPowerInfo) { for _, v := range menuInfo { - if publicmethod.IsInTrue[int](v.Id, powerInfo.ButPower) { + idStr := strconv.Itoa(v.Id) + if publicmethod.IsInTrue[string](idStr, powerInfo.ButPower) { v.IsTrue = true } else { v.IsTrue = false @@ -82,6 +85,7 @@ func JuadgeBut(menuInfo []AppPowerInfo, powerInfo publicmethod.ItemInfo) (butPow func MenuButList(noButMenu, ButMenu []AppPowerInfo) (menuButList []AppMenuBut) { // var but []int64 for _, v := range noButMenu { + // fmt.Printf("v.Perm --> %v-->\n\n\n\n", v.Perm) var menuButInfo AppMenuBut menuButInfo.Id = v.Id menuButInfo.Name = v.Name //菜单名称 @@ -147,7 +151,13 @@ func MenuPower(menuInfo []AppMenuBut, powerInfo publicmethod.SendSystemPower) (m v.IsTrue = pv.IsPick v.Visible = pv.VisibleRange v.VisibleRange.Types = pv.VisibleRange - v.VisibleRange.Val = pv.VisibleOrg + if len(pv.VisibleOrg) > 0 { + // var visStr []string + // for _, visv := range pv.VisibleOrg { + // visStr = append(visStr, strconv.FormatInt(visv, 10)) + // } + v.VisibleRange.Val = pv.VisibleOrg + } v.ButtenPower = JuadgeBut(v.ButtenPower, pv) } } diff --git a/apirouter/hrRoute/hrrouter.go b/apirouter/hrRoute/hrrouter.go index 74f0e9b..fb88ab1 100644 --- a/apirouter/hrRoute/hrrouter.go +++ b/apirouter/hrRoute/hrrouter.go @@ -16,5 +16,6 @@ func (p *ApiRouter) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("authorizeOrgTree", apiHandle.AuthorizeOrgTree) //行政组织树 apiRouter.POST("authorizePeopleList", apiHandle.AuthorizePeopleList) //根据权限获取数据 apiRouter.POST("addNewPeople", apiHandle.AddNewPeople) //新增人员 + apiRouter.POST("editMyPwd", apiHandle.EditMyPwd) //编辑自己登陆密码 } } diff --git a/overall/publicmethod/getUserPower.go b/overall/publicmethod/getUserPower.go index aed5c4c..44b8225 100644 --- a/overall/publicmethod/getUserPower.go +++ b/overall/publicmethod/getUserPower.go @@ -4,6 +4,7 @@ import ( "appPlatform/models/modelshr" "appPlatform/models/modelssystempermission" "appPlatform/overall" + "encoding/json" "fmt" "strconv" @@ -287,6 +288,15 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo } err := gormDb.First(&masterPower).Error if err != nil { + if powerType == "person" { + var userInfo modelshr.PersonArchives + userInfo.GetCont(map[string]interface{}{"`key`": powerId}, "`id`", "`company`", "`maindeparment`", "`admin_org`", "`position`") + var roleId []int64 + overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("FIND_IN_SET(?, `roleuser`)", powerId).Find(&roleId) + powerInfo.SystemIsPick, powerInfo.PowerList = PersonalAuthorization(systemTyep, systemId, roleId, userInfo) + } + + fmt.Printf("没有个人授权--->%v\n\n\n", masterPower) return } if masterPower.IsTrue == 1 { @@ -313,7 +323,14 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo } itemContent.VisibleRange = v.VisibleRange if v.VisibleOrg != "" && v.VisibleOrg != "null" { - json.Unmarshal([]byte(v.VisibleOrg), &itemContent.VisibleOrg) + // var visStrAry []string + // err := json.Unmarshal([]byte(v.VisibleOrg), &visStrAry) + // for _, arv := range visStrAry { + // intVal, _ := strconv.ParseInt(arv, 10, 64) + // itemContent.VisibleOrg = append(itemContent.VisibleOrg, intVal) + // } + err := json.Unmarshal([]byte(v.VisibleOrg), &itemContent.VisibleOrg) + fmt.Printf("装欢---》%v\n\n", err) } powerInfo.PowerList = append(powerInfo.PowerList, itemContent) } @@ -321,6 +338,245 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo return } +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-05 09:19:08 +@ 功能: 当个人没有设定自定义权限的时候返回其所在其他维度的赋权情况 +*/ +func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo modelshr.PersonArchives) (isTrue bool, PowerList []ItemInfo) { + //获取角色相关授权 + var masterPower []modelssystempermission.AuthPower + gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?", roleId, systemTyep) + switch systemTyep { + case "app": + gormDb = gormDb.Where("`appKey` = ?", systemId) + case "system": + gormDb = gormDb.Where("`appKey` = 0") + default: + } + err := gormDb.Find(&masterPower).Error + if err == nil && len(masterPower) > 0 { + var autId []int64 + for _, v := range masterPower { + if v.IsTrue == 1 { + isTrue = true + } + autId = append(autId, v.Id) + } + + if len(autId) > 0 { + var poserListAry []modelssystempermission.PowerInfo + overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` IN ?", autId).Find(&poserListAry) + PowerList = append(PowerList, mergePowerAry(poserListAry, PowerList)...) + } + } + //根据岗位 + if userInfo.Position != 0 { + var masterPowerPost modelssystempermission.AuthPower + gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPowerPost).Where("`orgPowerType` = 'job' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Position, systemTyep) + switch systemTyep { + case "app": + gormDb = gormDb.Where("`appKey` = ?", systemId) + case "system": + gormDb = gormDb.Where("`appKey` = 0") + default: + } + err = gormDb.First(&masterPowerPost).Error + if err == nil { + if !isTrue { + if masterPowerPost.IsTrue == 1 { + isTrue = true + } + } + var poserListPost []modelssystempermission.PowerInfo + overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPowerPost.Id).Find(&poserListPost) + PowerList = append(PowerList, mergePowerAry(poserListPost, PowerList)...) + } + } + //根据行政组织 + if userInfo.AdminOrg != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.AdminOrg) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } else if userInfo.MainDeparment != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } else if userInfo.Company != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } + } + } else if userInfo.Company != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } + } + } else if userInfo.MainDeparment != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } else if userInfo.Company != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } + } + } else if userInfo.Company != 0 { + adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) + isTrue = isTrues + if len(adOrgList) > 0 { + PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) + } + } + return +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-05 11:04:26 +@ 功能: 根据行政组织获取授权 +*/ +func OrgGetPower(systemTyep, systemId string, orgId int64) (PowerList []modelssystempermission.PowerInfo, isTrue bool) { + var masterPower modelssystempermission.AuthPower + gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", orgId, systemTyep) + switch systemTyep { + case "app": + gormDb = gormDb.Where("`appKey` = ?", systemId) + case "system": + gormDb = gormDb.Where("`appKey` = 0") + default: + } + err := gormDb.First(&masterPower).Error + if err != nil { + return + } + if masterPower.IsTrue == 1 { + isTrue = true + } + overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPower.Id).Find(&PowerList) + return +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-05 10:39:53 +@ 功能: 合并两个权限组 +*/ +func mergePowerAry(poserListAry []modelssystempermission.PowerInfo, PowerList []ItemInfo) []ItemInfo { + for _, v := range poserListAry { + if len(PowerList) > 0 { + isWrite := true + for pi, pv := range PowerList { + if pv.ItemId == v.ItemId { + if v.IsPick == 1 { + PowerList[pi].IsPick = true + } + if v.TablePower != "" && v.TablePower != "null" { + if len(pv.TablePower) > 0 { + var tpAry []string + json.Unmarshal([]byte(v.TablePower), &tpAry) + PowerList[pi].TablePower = MergeStruct[string](pv.TablePower, tpAry) + } else { + json.Unmarshal([]byte(v.TablePower), &PowerList[pi].TablePower) + } + // json.Unmarshal([]byte(v.TablePower), &itemContent.TablePower) + } + if v.ListPower != "" && v.ListPower != "null" { + if len(pv.ListPower) > 0 { + var tpListAry []string + json.Unmarshal([]byte(v.ListPower), &tpListAry) + PowerList[pi].ListPower = MergeStruct[string](pv.ListPower, tpListAry) + } else { + json.Unmarshal([]byte(v.ListPower), &PowerList[pi].ListPower) + } + // json.Unmarshal([]byte(v.ListPower), &itemContent.ListPower) + } + if v.ButPower != "" && v.ButPower != "null" { + if len(pv.ButPower) > 0 { + var butistAry []string + json.Unmarshal([]byte(v.ButPower), &butistAry) + PowerList[pi].ButPower = MergeStruct[string](pv.ButPower, butistAry) + } else { + json.Unmarshal([]byte(v.ButPower), &PowerList[pi].ButPower) + } + // json.Unmarshal([]byte(v.ButPower), &itemContent.ButPower) + } + if v.VisibleRange >= pv.VisibleRange { + PowerList[pi].VisibleRange = v.VisibleRange + } + if v.VisibleOrg != "" && v.VisibleOrg != "null" { + if len(pv.VisibleOrg) > 0 { + var visistAry []int64 + json.Unmarshal([]byte(v.VisibleOrg), &visistAry) + PowerList[pi].VisibleOrg = MergeStruct[int64](pv.VisibleOrg, visistAry) + } else { + json.Unmarshal([]byte(v.VisibleOrg), &PowerList[pi].VisibleOrg) + } + // json.Unmarshal([]byte(v.VisibleOrg), &itemContent.VisibleOrg) + } + isWrite = false + } + } + if isWrite { + var itemContent ItemInfo + itemContent.ItemId = v.ItemId + itemContent.IsPick = false + if v.IsPick == 1 { + itemContent.IsPick = true + } + if v.TablePower != "" && v.TablePower != "null" { + json.Unmarshal([]byte(v.TablePower), &itemContent.TablePower) + } + if v.ListPower != "" && v.ListPower != "null" { + json.Unmarshal([]byte(v.ListPower), &itemContent.ListPower) + } + if v.ButPower != "" && v.ButPower != "null" { + json.Unmarshal([]byte(v.ButPower), &itemContent.ButPower) + } + itemContent.VisibleRange = v.VisibleRange + if v.VisibleOrg != "" && v.VisibleOrg != "null" { + json.Unmarshal([]byte(v.VisibleOrg), &itemContent.VisibleOrg) + } + PowerList = append(PowerList, itemContent) + } + } else { + var itemContent ItemInfo + itemContent.ItemId = v.ItemId + itemContent.IsPick = false + if v.IsPick == 1 { + itemContent.IsPick = true + } + if v.TablePower != "" && v.TablePower != "null" { + json.Unmarshal([]byte(v.TablePower), &itemContent.TablePower) + } + if v.ListPower != "" && v.ListPower != "null" { + json.Unmarshal([]byte(v.ListPower), &itemContent.ListPower) + } + if v.ButPower != "" && v.ButPower != "null" { + json.Unmarshal([]byte(v.ButPower), &itemContent.ButPower) + } + itemContent.VisibleRange = v.VisibleRange + if v.VisibleOrg != "" && v.VisibleOrg != "null" { + json.Unmarshal([]byte(v.VisibleOrg), &itemContent.VisibleOrg) + } + PowerList = append(PowerList, itemContent) + } + } + return PowerList +} + /* * @ 作者: 秦东 @@ -338,7 +594,31 @@ func GetSystemAppPower(powerType, systemTyep, powerId string) (powerAry []SendSy } var masterPower []modelssystempermission.AuthPower err := overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = ? AND `orgOrUserKey` = ? AND `appType` = ?", powerType, powerId, systemTyep).Find(&masterPower).Error - if err != nil { + if err != nil || len(masterPower) <= 0 { + if powerType == "person" { + var userInfo modelshr.PersonArchives + userInfo.GetCont(map[string]interface{}{"`key`": powerId}, "`id`", "`company`", "`maindeparment`", "`admin_org`", "`position`") + var roleId []int64 + overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("FIND_IN_SET(?, `roleuser`)", powerId).Find(&roleId) + // PersonalAuthorizationApp(systemTyep, powerId, roleId, userInfo) + // powerAry = append(powerAry, ) + powerAryList := PersonalAuthorizationApp(systemTyep, powerId, roleId, userInfo) + if len(powerAryList) > 0 { + for _, v := range powerAryList { + var powerInfo SendSystemAppPower + powerInfo.PowerType = powerType + powerInfo.SystemTyep = systemTyep + powerInfo.PowerId = powerId + powerInfo.SystemId = v.AppKey + powerInfo.SystemIsPick = false + if v.IsTrue == 1 { + powerInfo.SystemIsPick = true + } + powerAry = append(powerAry, powerInfo) + } + } + } + fmt.Printf("没有个人App收取那\n%v\n\n", masterPower) return } for _, v := range masterPower { @@ -356,6 +636,115 @@ func GetSystemAppPower(powerType, systemTyep, powerId string) (powerAry []SendSy return } +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-05 13:22:27 +@ 功能: 获取自定义表单项目权限 +*/ +func PersonalAuthorizationApp(systemTyep, powerId string, roleId []int64, userInfo modelshr.PersonArchives) (powerAry []modelssystempermission.AuthPower) { + var masterPower []modelssystempermission.AuthPower + //根据角色 + if len(roleId) > 0 { + var masterPowerRole []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?", roleId, systemTyep).Find(&masterPowerRole) + masterPower = append(masterPower, HeBingTable(masterPowerRole, masterPower)...) + } + + //根据岗位 + if userInfo.Position != 0 { + var masterPowerPost []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'job' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Position, systemTyep).Find(&masterPowerPost) + masterPower = append(masterPower, HeBingTable(masterPowerPost, masterPower)...) + } + + //根据行政组织 + if userInfo.AdminOrg != 0 { + var masterPowerOrg []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.AdminOrg, systemTyep).Find(&masterPowerOrg) + orgAdminAry := HeBingTable(masterPowerOrg, masterPower) + if len(orgAdminAry) > 0 { + masterPower = append(masterPower, orgAdminAry...) + } else if userInfo.MainDeparment != 0 { + var masterPowerMain []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.MainDeparment, systemTyep).Find(&masterPowerMain) + orgMainAry := HeBingTable(masterPowerMain, masterPower) + if len(orgMainAry) > 0 { + masterPower = append(masterPower, orgMainAry...) + } else if userInfo.Company != 0 { + var masterPowerCom []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Company, systemTyep).Find(&masterPowerCom) + orgAry := HeBingTable(masterPowerCom, masterPower) + if len(orgAry) > 0 { + masterPower = append(masterPower, orgAry...) + } + } + } else if userInfo.Company != 0 { + var masterPowerCom []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Company, systemTyep).Find(&masterPowerCom) + orgAry := HeBingTable(masterPowerCom, masterPower) + if len(orgAry) > 0 { + masterPower = append(masterPower, orgAry...) + } + } + + } else if userInfo.MainDeparment != 0 { + var masterPowerMain []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.MainDeparment, systemTyep).Find(&masterPowerMain) + orgMainAry := HeBingTable(masterPowerMain, masterPower) + if len(orgMainAry) > 0 { + masterPower = append(masterPower, orgMainAry...) + } else if userInfo.Company != 0 { + var masterPowerCom []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Company, systemTyep).Find(&masterPowerCom) + orgAry := HeBingTable(masterPowerCom, masterPower) + if len(orgAry) > 0 { + masterPower = append(masterPower, orgAry...) + } + } + } else if userInfo.Company != 0 { + var masterPowerCom []modelssystempermission.AuthPower + overall.CONSTANT_DB_System_Permission.Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", userInfo.Company, systemTyep).Find(&masterPowerCom) + orgAry := HeBingTable(masterPowerCom, masterPower) + if len(orgAry) > 0 { + masterPower = append(masterPower, orgAry...) + } + } + if len(masterPower) > 0 { + powerAry = HeBingTable(masterPower, powerAry) + } + return +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-12-05 13:33:09 +@ 功能: 合并自定义表单数据 +*/ +func HeBingTable(masterPowerOld, masterPower []modelssystempermission.AuthPower) []modelssystempermission.AuthPower { + for _, v := range masterPowerOld { + if len(masterPower) > 0 { + isWrite := true + for mi, mv := range masterPower { + if mv.AppKey == v.AppKey { + isWrite = false + if v.IsTrue == 1 { + masterPower[mi].IsTrue = v.IsTrue + masterPower[mi].PowerInfo = v.PowerInfo + } + } + } + if isWrite { + masterPower = append(masterPower, v) + } + } else { + masterPower = append(masterPower, v) + } + } + return masterPower +} + // 获取综合行政组织上级 func GetFristOrgId(orgAry []int64) (orgId int64) { var orgLevel []modelshr.OrgContType diff --git a/overall/publicmethod/type.go b/overall/publicmethod/type.go index dd19a36..55b1252 100644 --- a/overall/publicmethod/type.go +++ b/overall/publicmethod/type.go @@ -390,9 +390,27 @@ type ItemInfo struct { IsPick bool `json:"isPick"` TablePower []string `json:"tablePower"` ListPower []string `json:"listPower"` - ButPower []int `json:"ButPower"` + ButPower []string `json:"ButPower"` VisibleRange int `json:"visibleRange"` - VisibleOrg []int `json:"visibleOrg"` + VisibleOrg []int64 `json:"visibleOrg"` +} + +type SendSystemPoweres struct { + PowerType string `json:"powerType"` + SystemTyep string `json:"systemTyep"` + PowerId string `json:"powerId"` + SystemId string `json:"systemId"` + SystemIsPick bool `json:"systemIsPick"` + PowerList []ItemInfoes `json:"powerList"` +} +type ItemInfoes struct { + ItemId int64 `json:"itemId"` + IsPick bool `json:"isPick"` + TablePower []string `json:"tablePower"` + ListPower []string `json:"listPower"` + ButPower []string `json:"ButPower"` + VisibleRange int `json:"visibleRange"` + VisibleOrg []int64 `json:"visibleOrg"` } type SendSystemAppPower struct { PowerType string `json:"powerType"`