package publicmethod import ( "appPlatform/models/modelshr" "appPlatform/models/modelssystempermission" "appPlatform/overall" "encoding/json" "fmt" "strconv" "strings" "gorm.io/gorm" ) /* * @ 作者: 秦东 @ 时间: 2025-05-21 08:44:35 @ 功能: 获取用户权限 @ 参数 # @ 返回值 # @ 方法原型 # */ func (g *GainUserPower) GetUserPower() (powerInfo SendUserPower) { //正常系统权限配置 orgLook := []int64{} if g.RoleId != "" { roleAry := strings.Split(g.RoleId, ",") if len(roleAry) > 0 { var rolePowerList []modelssystempermission.RoleEmpower overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.RoleEmpower{}).Where("`state` = 1 AND `system` = ? AND `role_id` IN ?", g.SystemName, roleAry).Find(&rolePowerList) for _, v := range rolePowerList { fmt.Printf("Level------------->%v\n\n", v.Level) if v.Level >= powerInfo.System.Level { powerInfo.System.Level = v.Level } if v.PointId != "" { pointIdAry := strings.Split(v.PointId, ",") for _, pv := range pointIdAry { if !IsInTrue[string](pv, powerInfo.System.PointId) { powerInfo.System.PointId = append(powerInfo.System.PointId, pv) } } } if v.Operation != "" { operationAry := strings.Split(v.Operation, ",") for _, ov := range operationAry { if !IsInTrue[string](ov, powerInfo.System.Operation) { powerInfo.System.Operation = append(powerInfo.System.Operation, ov) } } } if v.Organization != "" { orgtionAry := strings.Split(v.Organization, ",") for _, pv := range orgtionAry { pvInt, _ := strconv.ParseInt(pv, 10, 64) if !IsInTrue[int64](pvInt, orgLook) { orgLook = append(orgLook, pvInt) } } } } } } if g.PostId != 0 && g.OrgId != 0 { var postPower modelssystempermission.Empower postPower.GetCont(map[string]interface{}{"`state`": 1, "`ordid`": g.OrgId, "`post_id`": g.PostId, "`system`": g.SystemName}) if postPower.Level >= powerInfo.System.Level { powerInfo.System.Level = postPower.Level } if postPower.PointId != "" { pointIdAry := strings.Split(postPower.PointId, ",") for _, pv := range pointIdAry { if !IsInTrue[string](pv, powerInfo.System.PointId) { powerInfo.System.PointId = append(powerInfo.System.PointId, pv) } } } if postPower.Operation != "" { operationAry := strings.Split(postPower.Operation, ",") for _, ov := range operationAry { if !IsInTrue[string](ov, powerInfo.System.Operation) { powerInfo.System.Operation = append(powerInfo.System.Operation, ov) } } } if postPower.Organization != "" { orgtionAry := strings.Split(postPower.Organization, ",") for _, pv := range orgtionAry { pvInt, _ := strconv.ParseInt(pv, 10, 64) if !IsInTrue[int64](pvInt, orgLook) { orgLook = append(orgLook, pvInt) } } } } _, companyId, departmentId, _, workShopId := GetOrgStructure(g.OrgId) switch powerInfo.System.Level { case 1: powerInfo.System.OrgList = []int64{} var sunOrg GetOrgAllParent sunOrg.GetOrgSun(workShopId) sunOrg.Id = append(sunOrg.Id, workShopId) powerInfo.System.OrgList = append(powerInfo.System.OrgList, sunOrg.Id...) case 2: powerInfo.System.OrgList = []int64{} var sunOrgDepart GetOrgAllParent sunOrgDepart.GetOrgSun(departmentId) sunOrgDepart.Id = append(sunOrgDepart.Id, departmentId) powerInfo.System.OrgList = append(powerInfo.System.OrgList, sunOrgDepart.Id...) case 3: powerInfo.System.OrgList = []int64{} var sunOrgCompan GetOrgAllParent sunOrgCompan.GetOrgSun(companyId) sunOrgCompan.Id = append(sunOrgCompan.Id, companyId) powerInfo.System.OrgList = append(powerInfo.System.OrgList, sunOrgCompan.Id...) case 4: powerInfo.System.OrgList = orgLook case 5: powerInfo.System.OrgList = []int64{} default: } //低代码权限系统配置 if g.RoleId != "" { orgLookApp := []int64{} roleAry := strings.Split(g.RoleId, ",") if len(roleAry) > 0 { var tablePower []modelssystempermission.CustomTableAuthorize overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.CustomTableAuthorize{}).Where("`app_sign_code` = ? AND `table_sign_code` = ? AND `role_id` IN ?", g.AppKey, g.TableId, roleAry).Find(&tablePower) for _, v := range tablePower { if v.PowerLerver >= powerInfo.System.Level { powerInfo.AppSystem.Level = v.PowerLerver } if v.TablePower != "" { tableAry := strings.Split(v.TablePower, ",") for _, tv := range tableAry { if !IsInTrue[string](tv, powerInfo.AppSystem.PointId) { powerInfo.AppSystem.PointId = append(powerInfo.AppSystem.PointId, tv) } } } if v.ListPower != "" { listAry := strings.Split(v.ListPower, ",") for _, lv := range listAry { if !IsInTrue[string](lv, powerInfo.AppSystem.Operation) { powerInfo.AppSystem.Operation = append(powerInfo.AppSystem.Operation, lv) } } } if v.Organization != "" { orgtionAry := strings.Split(v.Organization, ",") for _, pv := range orgtionAry { pvInt, _ := strconv.ParseInt(pv, 10, 64) if !IsInTrue[int64](pvInt, orgLookApp) { orgLookApp = append(orgLookApp, pvInt) } } } } switch powerInfo.AppSystem.Level { case 2: powerInfo.AppSystem.OrgList = []int64{} var sunOrg GetOrgAllParent sunOrg.GetOrgSun(workShopId) sunOrg.Id = append(sunOrg.Id, workShopId) powerInfo.AppSystem.OrgList = append(powerInfo.AppSystem.OrgList, sunOrg.Id...) case 3: powerInfo.AppSystem.OrgList = []int64{} var sunOrgDepart GetOrgAllParent sunOrgDepart.GetOrgSun(departmentId) sunOrgDepart.Id = append(sunOrgDepart.Id, departmentId) powerInfo.AppSystem.OrgList = append(powerInfo.AppSystem.OrgList, sunOrgDepart.Id...) case 4: powerInfo.AppSystem.OrgList = []int64{} var sunOrgCompan GetOrgAllParent sunOrgCompan.GetOrgSun(companyId) sunOrgCompan.Id = append(sunOrgCompan.Id, companyId) powerInfo.AppSystem.OrgList = append(powerInfo.AppSystem.OrgList, sunOrgCompan.Id...) case 5: powerInfo.AppSystem.OrgList = orgLookApp case 6: powerInfo.AppSystem.OrgList = []int64{} default: } } } fmt.Printf("powerInfo.System.Level------------->%v\n\n", powerInfo.System.Level) return } /* * @ 作者: 秦东 @ 时间: 2025-05-22 13:53:17 @ 功能: 权限结构查询语句 @ 参数 授权范围等级(1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有) # @ 返回值 # @ 方法原型 # */ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont, isOdeb string) *gorm.DB { powerInfo := g.GetUserPower() // js, _ := json.Marshal(powerInfo) fmt.Printf("\n\n\n等级-----%v--- ---->%v\n\n\n", isOdeb, powerInfo) if isOdeb == "yes" { switch powerInfo.AppSystem.Level { case 2, 3, 4, 5: if len(powerInfo.AppSystem.OrgList) > 0 { gormDb = gormDb.Where("`createrOrg` IN ?", powerInfo.AppSystem.OrgList) } else { gormDb = gormDb.Where("`creater` = ?", userCont.Key) } case 6: default: gormDb = gormDb.Where("`creater` = ?", userCont.Key) } } else { switch powerInfo.AppSystem.Level { case 2, 3, 4, 5: if len(powerInfo.AppSystem.OrgList) > 0 { gormDb = gormDb.Where("f.`createrOrg` IN ?", powerInfo.AppSystem.OrgList) } else { gormDb = gormDb.Where("f.`creater` = ?", userCont.Key) } fmt.Printf("语句7===》%v\n", powerInfo.AppSystem) case 6: fmt.Printf("语句8===》%v\n", powerInfo.AppSystem) default: fmt.Printf("语句9===》%v\n", powerInfo.AppSystem) // gormDb = gormDb.Where("f.`creater` = ?", userCont.Key) } } return gormDb } /* * @ 作者: 秦东 @ 时间: 2025-11-21 09:38:23 @ 功能: 根据系统参数获取权限 */ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo SendSystemPower) { powerInfo.PowerType = powerType powerInfo.SystemTyep = systemTyep powerInfo.PowerId = powerId powerInfo.SystemId = systemId powerInfo.SystemIsPick = false if powerType == "" || systemTyep == "" || powerId == "" { return } if systemId != "system" && systemId == "" { return } var masterPower modelssystempermission.AuthPower gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = ? AND `orgOrUserKey` = ? AND `appType` = ?", powerType, powerId, 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 { 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 { powerInfo.SystemIsPick = true } var poserList []modelssystempermission.PowerInfo overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPower.Id).Find(&poserList) if len(poserList) > 0 { for _, v := range poserList { 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" { // 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) } } 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 } /* * @ 作者: 秦东 @ 时间: 2025-11-21 16:34:31 @ 功能: 自定义应用权限 */ func GetSystemAppPower(powerType, systemTyep, powerId string) (powerAry []SendSystemAppPower) { // powerInfo.PowerType = powerType // powerInfo.SystemTyep = systemTyep // powerInfo.PowerId = powerId // powerInfo.SystemId = systemId // powerInfo.SystemIsPick = false if powerType == "" || systemTyep == "" || powerId == "" { return } 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 || 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 { 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) } 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 overall.CONSTANT_DB_HR.Model(&modelshr.OrgContType{}).Where("`state` = 1 AND `id` IN ?", orgAry).Find(&orgLevel) if len(orgLevel) > 0 { var OrgIdLevelInfo OrgIdLevel OrgIdLevelInfo.Level = 6 OrgIdLevelInfo.Id = 0 for _, v := range orgLevel { if v.Level <= OrgIdLevelInfo.Level { OrgIdLevelInfo.Id = v.Superior } } orgId = OrgIdLevelInfo.Id } else { orgId = 0 } return }