Browse Source

新权限设计完毕

master
herenshan112 6 days ago
parent
commit
dbe96506c4
  1. 103
      api/version1/customerApp/appControll.go
  2. 4
      api/version1/customerform/form.go
  3. 4
      api/version1/customerform/formTable.go
  4. 6
      api/version1/customerform/formTableList.go
  5. 6
      api/version1/dataCenter/runDataBase.go
  6. 103
      api/version1/grantpowers/myAppPower.go
  7. 46
      api/version1/grantpowers/postpower.go
  8. 15
      api/version1/grantpowers/type.go
  9. 2
      api/version1/setupRoule/power.go
  10. 8
      api/version1/taskplatform/taskflowing/editformflow.go
  11. 23
      api/version1/taskplatform/taskmanagement/formcontrol.go
  12. 2
      api/version1/taskplatform/taskmanagement/importFormFile.go
  13. 104
      api/version1/user/setPower.go
  14. 10
      api/version1/user/type.go
  15. 1
      apirouter/v1/grantsystempower/pc.go
  16. 1
      models/customerForm/taskrecord.go
  17. 2
      models/modelssystempermission/authpowerlist.go
  18. 79
      overall/publicmethod/getUserPower.go
  19. 24
      overall/publicmethod/powerRedis.go
  20. 2
      overall/publicmethod/type.go

103
api/version1/customerApp/appControll.go

@ -310,15 +310,18 @@ func (a *ApiMethod) GainAppEditPsge(c *gin.Context) {
sendInfo["describe"] = appCont.Describe sendInfo["describe"] = appCont.Describe
sendInfo["MyContJwtPower"], sendInfo["MyContJwtPowerErr"] = c.Get(overall.MyContJwtPower) sendInfo["MyContJwtPower"], sendInfo["MyContJwtPowerErr"] = c.Get(overall.MyContJwtPower)
sendInfo["myPower"] = myPower sendInfo["myPower"] = myPower
if appCont.ListJson != "" { // if appCont.ListJson != "" {
var menuTerr []AppMenuTree // var menuTerr []AppMenuTree
json.Unmarshal([]byte(appCont.ListJson), &menuTerr) // json.Unmarshal([]byte(appCont.ListJson), &menuTerr)
sendInfo["menuTree"] = menuTerr // sendInfo["menuTree"] = menuTerr
} else { // } else {
// syncSeting.Add(1)
// sendInfo["menuTree"] = GainAppMenuTree(appCont.SignCode)
// syncSeting.Wait()
// }
syncSeting.Add(1) syncSeting.Add(1)
sendInfo["menuTree"] = GainAppMenuTree(appCont.SignCode) sendInfo["menuTree"] = GainAppMenuTree(appCont.SignCode, myPower)
syncSeting.Wait() syncSeting.Wait()
}
publicmethod.Result(0, sendInfo, c) publicmethod.Result(0, sendInfo, c)
} }
@ -339,7 +342,7 @@ func (a *ApiMethod) GainAppEditPsge(c *gin.Context) {
# #
*/ */
func GainAppMenuTree(key int64) (menusTree []AppMenuTree) { func GainAppMenuTree(key int64, menuPower publicmethod.SendAppTabelPower) (menusTree []AppMenuTree) {
defer syncSeting.Done() defer syncSeting.Done()
if key == 0 { if key == 0 {
return return
@ -356,6 +359,19 @@ func GainAppMenuTree(key int64) (menusTree []AppMenuTree) {
sort.Slice(menuList, func(i, j int) bool { sort.Slice(menuList, func(i, j int) bool {
return menuList[i].Sort < menuList[j].Sort return menuList[i].Sort < menuList[j].Sort
}) })
var treeList []modelAppPlatform.Appmenus
for _, v := range menuList {
if v.IsLock == 1 {
treeList = append(treeList, v)
} else {
muiStr := strconv.FormatInt(v.Id, 10)
if publicmethod.IsInTrue[string](muiStr, menuPower.FormTrue) {
treeList = append(treeList, v)
}
}
}
menusTree = AppTreeMenus(key, menuList) menusTree = AppTreeMenus(key, menuList)
return return
} }
@ -511,9 +527,12 @@ func (a *ApiMethod) SaveAppMenu(c *gin.Context) {
publicmethod.Result(104, err, c) publicmethod.Result(104, err, c)
return return
} }
menuUUidStr := strconv.FormatInt(menuUUid, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, menuUUidStr)
var newAppMenu []AppMenuTree var newAppMenu []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenu = GainAppMenuTree(appKeyId) newAppMenu = GainAppMenuTree(appKeyId, myPower)
syncSeting.Wait() syncSeting.Wait()
saveData := publicmethod.MapOut[string]() saveData := publicmethod.MapOut[string]()
menuTreeJson, _ := json.Marshal(newAppMenu) menuTreeJson, _ := json.Marshal(newAppMenu)
@ -563,8 +582,13 @@ func (a *ApiMethod) GainAllAppMenu(c *gin.Context) {
if appCont.ListJson != "" { if appCont.ListJson != "" {
json.Unmarshal([]byte(appCont.ListJson), &menuTreeMap) json.Unmarshal([]byte(appCont.ListJson), &menuTreeMap)
} else { } else {
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, requestData.Id)
syncSeting.Add(1) syncSeting.Add(1)
menuTreeMap = GainAppMenuTree(appCont.SignCode) menuTreeMap = GainAppMenuTree(appCont.SignCode, myPower)
syncSeting.Wait() syncSeting.Wait()
} }
@ -686,9 +710,16 @@ func (a *ApiMethod) EditAppMenuLable(c *gin.Context) {
EditAppMenuFormName(oldMenuInfo.Id, requestData.Label) EditAppMenuFormName(oldMenuInfo.Id, requestData.Label)
} }
} }
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
appSig := strconv.FormatInt(oldMenuInfo.Appkey, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, appSig)
syncSeting.Add(1)
var newAppMenuJson []AppMenuTree var newAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey) newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJson, _ := json.Marshal(newAppMenuJson) menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm["listjson"] = string(menuTreeJson) editForm["listjson"] = string(menuTreeJson)
@ -776,9 +807,16 @@ func (a *ApiMethod) AppMenuShowOrHide(c *gin.Context) {
editForm := publicmethod.MapOut[string]() editForm := publicmethod.MapOut[string]()
var cusForm modelAppPlatform.CustomerForm var cusForm modelAppPlatform.CustomerForm
err = cusForm.GetCont(map[string]interface{}{"`signCode`": oldMenuInfo.Appkey}, "`listjson`") err = cusForm.GetCont(map[string]interface{}{"`signCode`": oldMenuInfo.Appkey}, "`listjson`")
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
appSig := strconv.FormatInt(oldMenuInfo.Appkey, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, appSig)
var newAppMenuJson []AppMenuTree var newAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey) newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJson, _ := json.Marshal(newAppMenuJson) menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm["listjson"] = string(menuTreeJson) editForm["listjson"] = string(menuTreeJson)
@ -835,9 +873,16 @@ func (a *ApiMethod) DelAppMenu(c *gin.Context) {
editForm := publicmethod.MapOut[string]() editForm := publicmethod.MapOut[string]()
var cusForm modelAppPlatform.CustomerForm var cusForm modelAppPlatform.CustomerForm
err = cusForm.GetCont(map[string]interface{}{"`signCode`": oldMenuInfo.Appkey}, "`listjson`") err = cusForm.GetCont(map[string]interface{}{"`signCode`": oldMenuInfo.Appkey}, "`listjson`")
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
appSig := strconv.FormatInt(oldMenuInfo.Appkey, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, appSig)
var newAppMenuJson []AppMenuTree var newAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey) newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJson, _ := json.Marshal(newAppMenuJson) menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm["listjson"] = string(menuTreeJson) editForm["listjson"] = string(menuTreeJson)
@ -1459,13 +1504,14 @@ func SaveAppFormMenu(menuId, appkey, parent, creater, cureeTime int64, class int
} }
} }
var newAppMenuJson []AppMenuTree // var newAppMenuJson []AppMenuTree
syncSeting.Add(1) // syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(appkey) // newAppMenuJson = GainAppMenuTree(appkey)
syncSeting.Wait() // syncSeting.Wait()
// menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm := publicmethod.MapOut[string]() editForm := publicmethod.MapOut[string]()
menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm["listjson"] = string(menuTreeJson) // editForm["listjson"] = string(menuTreeJson)
editForm["`edit_time`"] = cureeTime editForm["`edit_time`"] = cureeTime
var appCont modelAppPlatform.CustomerForm var appCont modelAppPlatform.CustomerForm
appCont.EiteCont(map[string]interface{}{"`signCode`": appkey}, editForm) appCont.EiteCont(map[string]interface{}{"`signCode`": appkey}, editForm)
@ -2329,10 +2375,17 @@ func (a *ApiMethod) EditAppMenusIcon(c *gin.Context) {
return return
} }
editForm := publicmethod.MapOut[string]() editForm := publicmethod.MapOut[string]()
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
appSig := strconv.FormatInt(oldMenuInfo.Appkey, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, appSig)
var cusForm modelAppPlatform.CustomerForm var cusForm modelAppPlatform.CustomerForm
var newAppMenuJson []AppMenuTree var newAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey) newAppMenuJson = GainAppMenuTree(oldMenuInfo.Appkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJson, _ := json.Marshal(newAppMenuJson) menuTreeJson, _ := json.Marshal(newAppMenuJson)
editForm["listjson"] = string(menuTreeJson) editForm["listjson"] = string(menuTreeJson)
@ -2534,10 +2587,16 @@ func (a *ApiMethod) MoveAppMenus(c *gin.Context) {
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`id` IN ?", sunAppId.Key).Updates(sunEditMenu) overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`id` IN ?", sunAppId.Key).Updates(sunEditMenu)
} }
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context) //当前操作人
appSig := strconv.FormatInt(oldAppkey, 10)
myPower := publicmethod.GetMyTableMenuPower(userCont.Key, appSig)
//目标App菜单重组 //目标App菜单重组
var newAppMenuJson []AppMenuTree var newAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
newAppMenuJson = GainAppMenuTree(newAppkey) newAppMenuJson = GainAppMenuTree(newAppkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJson, _ := json.Marshal(newAppMenuJson) menuTreeJson, _ := json.Marshal(newAppMenuJson)
sunEditMenuJson := publicmethod.MapOut[string]() sunEditMenuJson := publicmethod.MapOut[string]()
@ -2547,7 +2606,7 @@ func (a *ApiMethod) MoveAppMenus(c *gin.Context) {
if newAppkey != oldAppkey { if newAppkey != oldAppkey {
var oldAppMenuJson []AppMenuTree var oldAppMenuJson []AppMenuTree
syncSeting.Add(1) syncSeting.Add(1)
oldAppMenuJson = GainAppMenuTree(oldAppkey) oldAppMenuJson = GainAppMenuTree(oldAppkey, myPower)
syncSeting.Wait() syncSeting.Wait()
menuTreeJsonOld, _ := json.Marshal(oldAppMenuJson) menuTreeJsonOld, _ := json.Marshal(oldAppMenuJson)
sunoldEditMenuJson := publicmethod.MapOut[string]() sunoldEditMenuJson := publicmethod.MapOut[string]()

4
api/version1/customerform/form.go

@ -1542,11 +1542,11 @@ func CreateDataSourceForm(sqlDb *gorm.DB, formName, notes, engine string, isMast
if !isTrue { //当数据表不存在时进行创建 if !isTrue { //当数据表不存在时进行创建
if isMasters { if isMasters {
//创建主表 //创建主表
sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`createrOrg` bigint(20) unsigned DEFAULT '0' COMMENT '创建人行政组织',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',`flow_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '流程识别标识',`states` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用,2:禁用;3:删除)',`flowIsOpen` int(1) unsigned NOT NULL DEFAULT '2' COMMENT '是否开启工作流',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,UNIQUE KEY `masters_key` (`masters_key`) USING HASH) ENGINE=%v DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, engine, notes) sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`createrOrg` bigint(20) unsigned DEFAULT '0' COMMENT '创建人行政组织',`createrPositon` bigint(20) unsigned DEFAULT '0' COMMENT '创建人岗位',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',`flow_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '流程识别标识',`states` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用,2:禁用;3:删除)',`flowIsOpen` int(1) unsigned NOT NULL DEFAULT '2' COMMENT '是否开启工作流',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,UNIQUE KEY `masters_key` (`masters_key`) USING HASH) ENGINE=%v DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, engine, notes)
err = sqlDb.Exec(sqlCreateTable).Error err = sqlDb.Exec(sqlCreateTable).Error
} else { } else {
//创建子表 //创建子表
sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`createrOrg` bigint(20) unsigned DEFAULT '0' COMMENT '创建人行政组织',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',`states` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用,2:禁用;3:删除)',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,KEY `masters_key` (`masters_key`) USING HASH) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, notes) sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`createrOrg` bigint(20) unsigned DEFAULT '0' COMMENT '创建人行政组织',`createrPositon` bigint(20) unsigned DEFAULT '0' COMMENT '创建人岗位',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',`states` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用,2:禁用;3:删除)',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,KEY `masters_key` (`masters_key`) USING HASH) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, notes)
err = sqlDb.Exec(sqlCreateTable).Error err = sqlDb.Exec(sqlCreateTable).Error
} }
} }

4
api/version1/customerform/formTable.go

@ -347,7 +347,7 @@ func (f *FormTableSql) TableSubUnitAnalysis(tablename string, subUnitAry []Maste
var sqlAllAry []string var sqlAllAry []string
fmt.Printf("tablename--->%v===>%v\n", tablename, isMaster) fmt.Printf("tablename--->%v===>%v\n", tablename, isMaster)
oldTable := []string{"id", "masters_key", "creater", "createrOrg", "creater_time", "edit_time", "flow_id", "states", "flowIsOpen"} oldTable := []string{"id", "masters_key", "creater", "createrOrg", "creater_time", "edit_time", "flow_id", "states", "flowIsOpen", "createrPositon"}
var alreadyExists []string var alreadyExists []string
for _, v := range subUnitAry { for _, v := range subUnitAry {
@ -478,6 +478,8 @@ func newFieldOld(tablename string, oldTable, alreadyExists []string) (sql []stri
sql = append(sql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v int(1) unsigned NOT NULL DEFAULT '2' COMMENT '是否开启工作流';", tablename, v)) sql = append(sql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v int(1) unsigned NOT NULL DEFAULT '2' COMMENT '是否开启工作流';", tablename, v))
case "createrOrg": case "createrOrg":
sql = append(sql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v int(1) unsigned NOT NULL DEFAULT '2' COMMENT '创建人行政组织';", tablename, v)) sql = append(sql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v int(1) unsigned NOT NULL DEFAULT '2' COMMENT '创建人行政组织';", tablename, v))
case "createrPositon":
sql = append(sql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v int(1) unsigned NOT NULL DEFAULT '2' COMMENT '创建人岗位';", tablename, v))
default: default:
} }
} }

6
api/version1/customerform/formTableList.go

@ -60,6 +60,8 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
publicmethod.Result(1, err, c, "未知表单!无法获取字段!") publicmethod.Result(1, err, c, "未知表单!无法获取字段!")
return return
} }
// appKey := strconv.FormatInt(formInfo.Groupid, 10)
myPower := publicmethod.GetMyFormPower(userCont.Key, formInfo.Groupid, formInfo.SignCode)
//解析表单列表数据结构 //解析表单列表数据结构
var formJsonCont CustomerFormMaster var formJsonCont CustomerFormMaster
json.Unmarshal([]byte(formInfo.MastesFormJson), &formJsonCont) json.Unmarshal([]byte(formInfo.MastesFormJson), &formJsonCont)
@ -98,7 +100,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位 powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格 powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource) gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
//Step 4 获取一共有多少条数据 //Step 4 获取一共有多少条数据
var total int64 var total int64
totalErr := gormDb.Count(&total).Error totalErr := gormDb.Count(&total).Error
@ -180,7 +182,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.PostId = userCont.Position //岗位 powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.CfId //归属哪个表格 powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource) gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource, myPower)
//Step 3 获取一共有多少条数据 //Step 3 获取一共有多少条数据
var total int64 var total int64
totalErr := gormDb.Count(&total).Error totalErr := gormDb.Count(&total).Error

6
api/version1/dataCenter/runDataBase.go

@ -61,5 +61,11 @@ func (a *ApiMethod) GainDataTable(c *gin.Context) {
overall.CONSTANT_DB_CustomerForm.Exec(sql) overall.CONSTANT_DB_CustomerForm.Exec(sql)
// } // }
} }
for _, v := range tableInfo {
// if v.TableKey != "taskrecord" {
sql := fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN %v bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建人岗位';", v.TableKey, "createrPositon")
overall.CONSTANT_DB_CustomerForm.Exec(sql)
// }
}
publicmethod.Result(0, tableInfo, c) publicmethod.Result(0, tableInfo, c)
} }

103
api/version1/grantpowers/myAppPower.go

@ -0,0 +1,103 @@
package grantpowers
import (
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelssystempermission"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/json"
"strconv"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2025-12-11 11:12:02
@ 功能: 处理自定义应用授权数据
*/
func (a *ApiMethod) GainAppEmpowerPower(c *gin.Context) {
var requestData GainAppIdAndRoleNew
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Id == "" {
publicmethod.Result(1, err, c, "未知App!不可获取表单列表!")
return
}
appSignCode, _ := strconv.ParseInt(requestData.Id, 10, 64)
roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
powerInfo, formButPowerList := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id)
var appMenuList []modelAppPlatform.Appmenus
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`isLock` = 2 AND `appkey` = ?", appSignCode).Find(&appMenuList)
var sendList []CusterAppTablePower
for _, v := range appMenuList {
powerInfo, isOk := CallBackAppMenuPower(v, powerInfo.PowerList)
if isOk {
sendList = append(sendList, powerInfo)
} else {
var cfInfo modelAppPlatform.CustomerForm
cfInfo.GetCont(map[string]interface{}{"`signCode`": v.Id}, "`groupid`", "`listjson`")
formPower := GainAppTablePower(roleIdInt, cfInfo.Groupid, v.Id)
var sendInfo CusterAppTablePower
sendInfo.Id = strconv.FormatInt(v.Id, 10)
sendInfo.Name = v.Label
sendInfo.SignCode = strconv.FormatInt(v.Id, 10)
sendInfo.TablePower = formPower.TablePower
sendInfo.ListPower = formPower.ListPower
if cfInfo.ListJson != "" {
sendInfo.IstIsTrue = true
} else {
sendInfo.IstIsTrue = false
}
sendInfo.DatePower.Types = formPower.DatePower.Types
sendInfo.DatePower.Attribute = formPower.DatePower.Attribute
sendInfo.ParentId = v.Parent
sendList = append(sendList, sendInfo)
}
}
outData := publicmethod.MapOut[string]()
// outData["list"] = AppMenuTree(appSignCode, sendList)
outData["list"] = sendList
outData["groupButPower"] = []string{}
outData["formButPower"] = formButPowerList
//获取app按钮控制
var groupPower modelssystempermission.AuthGroupPower
groupPower.GetCont(map[string]interface{}{"`appType`": requestData.AppType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": roleIdInt})
if groupPower.PowerInfo != "" {
var butPower []string
json.Unmarshal([]byte(groupPower.PowerInfo), &butPower)
outData["groupButPower"] = butPower
}
publicmethod.Result(0, outData, c)
}
func AppMenuTree(parentId int64, list []CusterAppTablePower) []CusterAppTablePower {
treeList := []CusterAppTablePower{}
for _, v := range list {
if v.ParentId == parentId {
var treeInfo CusterAppTablePower
treeInfo.Id = v.Id //表单ID
treeInfo.Name = v.Name //表单名称
treeInfo.SignCode = v.SignCode //表单识别符
treeInfo.ParentId = v.ParentId //上级
treeInfo.IstIsTrue = v.IstIsTrue
treeInfo.TableIsAll = v.TableIsAll
treeInfo.TablePower = v.TablePower //表单权限
treeInfo.ListIsAll = v.ListIsAll
treeInfo.ListPower = v.ListPower //列表权限
treeInfo.DatePower = v.DatePower //数据权限
treeInfo.AppButPower = v.AppButPower //页面按钮权限
idInt, _ := strconv.ParseInt(v.Id, 10, 64)
treeInfo.Children = AppMenuTree(idInt, list)
treeList = append(treeList, treeInfo)
}
}
return treeList
}

46
api/version1/grantpowers/postpower.go

@ -527,7 +527,7 @@ func (a *ApiMethod) GainAppTableListNew(c *gin.Context) {
// } // }
roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64) roleIdInt, _ := strconv.ParseInt(requestData.RoleId, 10, 64)
powerInfo := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id) powerInfo, formButPowerList := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppType, requestData.RoleId, requestData.Id)
// var appInfo modelAppPlatform.CustomerForm // var appInfo modelAppPlatform.CustomerForm
// appInfo.GetCont(map[string]interface{}{"`signCode`":requestData.Id},"``") // appInfo.GetCont(map[string]interface{}{"`signCode`":requestData.Id},"``")
var custForm []modelAppPlatform.CustomerForm var custForm []modelAppPlatform.CustomerForm
@ -558,16 +558,17 @@ func (a *ApiMethod) GainAppTableListNew(c *gin.Context) {
} }
outData := publicmethod.MapOut[string]() outData := publicmethod.MapOut[string]()
outData["list"] = sendList outData["list"] = sendList
outData["butPower"] = []string{} outData["groupButPower"] = []string{}
outData["formButPower"] = formButPowerList
//获取app按钮控制 //获取app按钮控制
var groupPower modelssystempermission.AuthGroupPower var groupPower modelssystempermission.AuthGroupPower
groupPower.GetCont(map[string]interface{}{"`appType`": requestData.AppType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": roleIdInt}) groupPower.GetCont(map[string]interface{}{"`appType`": requestData.AppType, "`orgPowerType`": requestData.PowerType, "`orgOrUserKey`": roleIdInt})
if groupPower.PowerInfo != "" { if groupPower.PowerInfo != "" {
var butPower []string var butPower []string
json.Unmarshal([]byte(groupPower.PowerInfo), &butPower) json.Unmarshal([]byte(groupPower.PowerInfo), &butPower)
outData["butPower"] = butPower outData["groupButPower"] = butPower
} }
publicmethod.Result(0, sendList, c) publicmethod.Result(0, outData, c)
// publicmethod.Result(0, custForm, c) // publicmethod.Result(0, custForm, c)
} }
@ -604,3 +605,40 @@ func CallBackTablePower(tableInfo modelAppPlatform.CustomerForm, powerList []pub
} }
return return
} }
/*
*
@ 作者: 秦东
@ 时间: 2025-12-11 13:33:37
@ 功能: 回显自定义app菜单权限
*/
func CallBackAppMenuPower(tableInfo modelAppPlatform.Appmenus, powerList []publicmethod.ItemInfo) (sendInfo CusterAppTablePower, isOk bool) {
for _, v := range powerList {
if tableInfo.Id == v.ItemId {
sendInfo.Id = strconv.FormatInt(tableInfo.Id, 10)
sendInfo.Name = tableInfo.Label
sendInfo.ParentId = tableInfo.Parent
sendInfo.SignCode = strconv.FormatInt(tableInfo.Id, 10)
sendInfo.TablePower = v.TablePower
sendInfo.ListPower = v.ListPower
var cfInfo modelAppPlatform.CustomerForm
cfInfo.GetCont(map[string]interface{}{"`signCode`": tableInfo.Id}, "`listjson`")
if cfInfo.ListJson != "" {
sendInfo.IstIsTrue = true
} else {
sendInfo.IstIsTrue = false
}
sendInfo.ListIsAll = v.IsPick
sendInfo.DatePower.Types = int64(v.VisibleRange)
var attId []int64
for _, iv := range v.VisibleOrg {
// ivInt, _ := strconv.ParseInt(iv, 10, 64)
// attId = append(attId, ivInt)
attId = append(attId, iv)
}
sendInfo.DatePower.Attribute = attId
isOk = true
}
}
return
}

15
api/version1/grantpowers/type.go

@ -62,12 +62,15 @@ type CusterAppTablePower struct {
Id string `json:"id"` //表单ID Id string `json:"id"` //表单ID
Name string `json:"name"` //表单名称 Name string `json:"name"` //表单名称
SignCode string `json:"signCode"` //表单识别符 SignCode string `json:"signCode"` //表单识别符
ParentId int64 `json:"parentId"` //上级
IstIsTrue bool `json:"istIsTrue"` IstIsTrue bool `json:"istIsTrue"`
TableIsAll bool `json:"tableIsAll"` TableIsAll bool `json:"tableIsAll"`
TablePower []string `json:"tablePower"` //表单权限 TablePower []string `json:"tablePower"` //表单权限
ListIsAll bool `json:"listIsAll"` ListIsAll bool `json:"listIsAll"`
ListPower []string `json:"listPower"` //列表权限 ListPower []string `json:"listPower"` //列表权限
DatePower DatePowerInfo `json:"datePower"` //数据权限 DatePower DatePowerInfo `json:"datePower"` //数据权限
AppButPower []string `json:"appButPower"` //页面按钮权限
Children []CusterAppTablePower `json:"children"`
} }
type DatePowerInfo struct { type DatePowerInfo struct {
@ -75,6 +78,18 @@ type DatePowerInfo struct {
Attribute []int64 `json:"attribute"` //全选属性 Attribute []int64 `json:"attribute"` //全选属性
} }
/*
*
@ 作者: 秦东
@ 时间: 2025-12-11 13:40:50
@ 功能: 输出自定义App菜单权限
*/
type CusterAppMenuPower struct {
Id string `json:"id"` //表单ID
Name string `json:"name"` //表单名称
IstIsTrue bool `json:"istIsTrue"`
}
/* /*
* *
@ 作者: 秦东 @ 作者: 秦东

2
api/version1/setupRoule/power.go

@ -27,7 +27,7 @@ func (a *ApiMethod) AppPowerUnit(c *gin.Context) {
if requestData.RoleId == "" { if requestData.RoleId == "" {
requestData.RoleId = "0" requestData.RoleId = "0"
} }
powerInfo := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppSystem, requestData.RoleId, requestData.PowerType) powerInfo, _ := publicmethod.GetSystemPower(requestData.PowerType, requestData.AppSystem, requestData.RoleId, requestData.PowerType)
var appPowerTrue []AppPowerTree var appPowerTrue []AppPowerTree
switch requestData.AppSystem { switch requestData.AppSystem {
default: default:

8
api/version1/taskplatform/taskflowing/editformflow.go

@ -473,7 +473,7 @@ func (a *ApiMethod) EditFormLogData(c *gin.Context) {
saveData := publicmethod.MapOut[string]() saveData := publicmethod.MapOut[string]()
//组装数据表新增数据 //组装数据表新增数据
masrWriteMap := taskmanagement.MakeFormMapData(flowInfo.FlowKey, userCont.Key, userCont.AdminOrg, cureeTime, masterField, masterUnitList, 2) masrWriteMap := taskmanagement.MakeFormMapData(flowInfo.FlowKey, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, masterField, masterUnitList, 2)
masterTableJson, _ := json.Marshal(masrWriteMap) masterTableJson, _ := json.Marshal(masrWriteMap)
editFormDataLogInfo.DataCont = string(masterTableJson) editFormDataLogInfo.DataCont = string(masterTableJson)
//判断是否有子表 //判断是否有子表
@ -483,7 +483,7 @@ func (a *ApiMethod) EditFormLogData(c *gin.Context) {
for _, v := range formUnitCont.SunFormInfo { for _, v := range formUnitCont.SunFormInfo {
sunTypeAry[v.TableName] = v.UbitInfo sunTypeAry[v.TableName] = v.UbitInfo
} }
sunTableData := EditSunDatabase(flowInfo.FlowKey, userCont.Key, userCont.AdminOrg, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry) sunTableData := EditSunDatabase(flowInfo.FlowKey, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry)
fmt.Printf("判断是否有子表得数据-->%v\n", sunTableData) fmt.Printf("判断是否有子表得数据-->%v\n", sunTableData)
saveData["sunTypeAry"] = sunTableData saveData["sunTypeAry"] = sunTableData
sunTableJson, _ := json.Marshal(sunTableData) sunTableJson, _ := json.Marshal(sunTableData)
@ -558,7 +558,7 @@ func (a *ApiMethod) EditFormLogData(c *gin.Context) {
# #
*/ */
func EditSunDatabase(uuid, creater, createrOrg, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (sunTableData map[string]interface{}) { func EditSunDatabase(uuid, creater, createrOrg, userPositon, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (sunTableData map[string]interface{}) {
if len(masterDataCont) > 0 { if len(masterDataCont) > 0 {
if len(sunDataList) > 0 { if len(sunDataList) > 0 {
sunMasterMap := publicmethod.MapOut[string]() sunMasterMap := publicmethod.MapOut[string]()
@ -577,7 +577,7 @@ func EditSunDatabase(uuid, creater, createrOrg, createrTime int64, masterTableNa
for _, sv := range s { //拆分子表 for _, sv := range s { //拆分子表
if sdf, isOk := sv.(map[string]interface{}); isOk { if sdf, isOk := sv.(map[string]interface{}); isOk {
if sunTableType, sunIsOk := sunTable[k]; sunIsOk { if sunTableType, sunIsOk := sunTable[k]; sunIsOk {
masterWriteVal := taskmanagement.MakeFormMapData(uuid, creater, createrOrg, createrTime, sdf, sunTableType, 2) //转换数据表值 masterWriteVal := taskmanagement.MakeFormMapData(uuid, creater, createrOrg, userPositon, createrTime, sdf, sunTableType, 2) //转换数据表值
// fmt.Printf("处理指标字段值-1-->%v--->%v\n", sunTableType, masterWriteVal) // fmt.Printf("处理指标字段值-1-->%v--->%v\n", sunTableType, masterWriteVal)
if len(masterWriteVal) > 0 { if len(masterWriteVal) > 0 {
sunCont = append(sunCont, masterWriteVal) sunCont = append(sunCont, masterWriteVal)

23
api/version1/taskplatform/taskmanagement/formcontrol.go

@ -114,7 +114,7 @@ func (a *ApiMethod) AddFormAddData(c *gin.Context) {
//判断是否 //判断是否
if len(sunFieldAry) > 0 { if len(sunFieldAry) > 0 {
//有子表 //有子表
err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, cureeTime, formCont.TableKey, masterWriteVal, sunFieldAry, sunTable) err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, formCont.TableKey, masterWriteVal, sunFieldAry, sunTable)
} else { } else {
//无子表 //无子表
err = overall.CONSTANT_DB_CustomerForm.Table(formCont.TableKey).Create(masterWriteVal).Error err = overall.CONSTANT_DB_CustomerForm.Table(formCont.TableKey).Create(masterWriteVal).Error
@ -165,7 +165,7 @@ func (a *ApiMethod) AddFormAddData(c *gin.Context) {
# #
*/ */
func WriteSunDatabase(uuid, creater, userOrg, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (err error) { func WriteSunDatabase(uuid, creater, userOrg, userPositon, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (err error) {
if len(masterDataCont) > 0 { if len(masterDataCont) > 0 {
if len(sunDataList) > 0 { if len(sunDataList) > 0 {
sunMasterMap := publicmethod.MapOut[string]() sunMasterMap := publicmethod.MapOut[string]()
@ -183,7 +183,7 @@ func WriteSunDatabase(uuid, creater, userOrg, createrTime int64, masterTableName
for _, sv := range s { //拆分子表 for _, sv := range s { //拆分子表
if sdf, isOk := sv.(map[string]interface{}); isOk { if sdf, isOk := sv.(map[string]interface{}); isOk {
if sunTableType, sunIsOk := sunTable[k]; sunIsOk { if sunTableType, sunIsOk := sunTable[k]; sunIsOk {
masterWriteVal := MakeFormMapData(uuid, creater, userOrg, createrTime, sdf, sunTableType, 2) //转换数据表值 masterWriteVal := MakeFormMapData(uuid, creater, userOrg, userPositon, createrTime, sdf, sunTableType, 2) //转换数据表值
if len(masterWriteVal) > 0 { if len(masterWriteVal) > 0 {
sunCont = append(sunCont, masterWriteVal) sunCont = append(sunCont, masterWriteVal)
} }
@ -566,7 +566,7 @@ func (a *ApiMethod) AddFormAddNewData(c *gin.Context) {
masterUnitList[v.Name] = v masterUnitList[v.Name] = v
} }
masrWriteMap := MakeFormMapData(uuid, userCont.Key, userCont.AdminOrg, cureeTime, masterField, masterUnitList, 1) masrWriteMap := MakeFormMapData(uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, masterField, masterUnitList, 1)
masrWriteMap["flowIsOpen"] = formCont.FlowIsOpen masrWriteMap["flowIsOpen"] = formCont.FlowIsOpen
//任务列表 //任务列表
var taskCont modelAppPlatform.Task var taskCont modelAppPlatform.Task
@ -595,7 +595,7 @@ func (a *ApiMethod) AddFormAddNewData(c *gin.Context) {
sunTypeAry[v.TableName] = v.UbitInfo sunTypeAry[v.TableName] = v.UbitInfo
} }
err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry) err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry)
} else { } else {
// //无子表 // //无子表
err = overall.CONSTANT_DB_CustomerForm.Table(formCont.TableKey).Create(masrWriteMap).Error err = overall.CONSTANT_DB_CustomerForm.Table(formCont.TableKey).Create(masrWriteMap).Error
@ -647,7 +647,7 @@ func (a *ApiMethod) AddFormAddNewData(c *gin.Context) {
# #
*/ */
func MakeFormMapData(uuid, userKey, userOrg, cureeTime int64, fieldVal map[string]interface{}, subUnit map[string]customerform.MasterStruct, calss int) map[string]interface{} { func MakeFormMapData(uuid, userKey, userOrg, userPositon, cureeTime int64, fieldVal map[string]interface{}, subUnit map[string]customerform.MasterStruct, calss int) map[string]interface{} {
keyAndVal := make(map[string]interface{}) keyAndVal := make(map[string]interface{})
if calss == 1 { if calss == 1 {
keyAndVal["creater_time"] = cureeTime keyAndVal["creater_time"] = cureeTime
@ -655,6 +655,7 @@ func MakeFormMapData(uuid, userKey, userOrg, cureeTime int64, fieldVal map[strin
keyAndVal["masters_key"] = uuid keyAndVal["masters_key"] = uuid
keyAndVal["creater"] = userKey keyAndVal["creater"] = userKey
keyAndVal["createrOrg"] = userOrg keyAndVal["createrOrg"] = userOrg
keyAndVal["createrPositon"] = userPositon
keyAndVal["edit_time"] = cureeTime keyAndVal["edit_time"] = cureeTime
for k, v := range fieldVal { for k, v := range fieldVal {
fmt.Printf("写入字段:%v->%v\n", k, v) fmt.Printf("写入字段:%v->%v\n", k, v)
@ -878,7 +879,7 @@ func (a *ApiMethod) AddCustomerForm(c *gin.Context) {
masterUnitList[v.Name] = v masterUnitList[v.Name] = v
} }
masrWriteMap := MakeFormMapData(uuid, userCont.Key, userCont.AdminOrg, cureeTime, masterField, masterUnitList, 1) masrWriteMap := MakeFormMapData(uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, masterField, masterUnitList, 1)
masrWriteMap["flowIsOpen"] = formCont.FlowIsOpen masrWriteMap["flowIsOpen"] = formCont.FlowIsOpen
//任务列表 //任务列表
var taskCont customerForm.TaskRecord var taskCont customerForm.TaskRecord
@ -932,7 +933,7 @@ func (a *ApiMethod) AddCustomerForm(c *gin.Context) {
sunTypeAry[v.TableName] = v.UbitInfo sunTypeAry[v.TableName] = v.UbitInfo
} }
err = WriteSunDatabaseSoucer(sqlDborm, uuid, userCont.Key, userCont.AdminOrg, cureeTime, formJsonCont.Form.DataSourceConfig.TableKey, masrWriteMap, sunFieldAry, sunTypeAry) err = WriteSunDatabaseSoucer(sqlDborm, uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, formJsonCont.Form.DataSourceConfig.TableKey, masrWriteMap, sunFieldAry, sunTypeAry)
} else { } else {
// //无子表 // //无子表
@ -950,7 +951,7 @@ func (a *ApiMethod) AddCustomerForm(c *gin.Context) {
sunTypeAry[v.TableName] = v.UbitInfo sunTypeAry[v.TableName] = v.UbitInfo
} }
err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry) err = WriteSunDatabase(uuid, userCont.Key, userCont.AdminOrg, userCont.Position, cureeTime, formCont.TableKey, masrWriteMap, sunFieldAry, sunTypeAry)
} else { } else {
// //无子表 // //无子表
@ -1855,7 +1856,7 @@ func GainOrgManWechat(orgId int64) (wechatMap []string) {
# #
*/ */
func WriteSunDatabaseSoucer(sqlDb *gorm.DB, uuid, creater, userOrg, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (err error) { func WriteSunDatabaseSoucer(sqlDb *gorm.DB, uuid, creater, userOrg, userPositon, createrTime int64, masterTableName string, masterDataCont, sunDataList map[string]interface{}, sunTable map[string]map[string]customerform.MasterStruct) (err error) {
if len(masterDataCont) > 0 { if len(masterDataCont) > 0 {
if len(sunDataList) > 0 { if len(sunDataList) > 0 {
sunMasterMap := publicmethod.MapOut[string]() sunMasterMap := publicmethod.MapOut[string]()
@ -1873,7 +1874,7 @@ func WriteSunDatabaseSoucer(sqlDb *gorm.DB, uuid, creater, userOrg, createrTime
for _, sv := range s { //拆分子表 for _, sv := range s { //拆分子表
if sdf, isOk := sv.(map[string]interface{}); isOk { if sdf, isOk := sv.(map[string]interface{}); isOk {
if sunTableType, sunIsOk := sunTable[k]; sunIsOk { if sunTableType, sunIsOk := sunTable[k]; sunIsOk {
masterWriteVal := MakeFormMapData(uuid, creater, userOrg, createrTime, sdf, sunTableType, 2) //转换数据表值 masterWriteVal := MakeFormMapData(uuid, creater, userOrg, userPositon, createrTime, sdf, sunTableType, 2) //转换数据表值
if len(masterWriteVal) > 0 { if len(masterWriteVal) > 0 {
sunCont = append(sunCont, masterWriteVal) sunCont = append(sunCont, masterWriteVal)
} }

2
api/version1/taskplatform/taskmanagement/importFormFile.go

@ -69,6 +69,7 @@ func (a *ApiMethod) ImportFormListFile(ctx *gin.Context) {
valueMap["creater_time"] = cureeTime valueMap["creater_time"] = cureeTime
valueMap["creater"] = userCont.Key valueMap["creater"] = userCont.Key
valueMap["createrOrg"] = userCont.AdminOrg valueMap["createrOrg"] = userCont.AdminOrg
valueMap["createrPositon"] = userCont.Position
valueMap["edit_time"] = cureeTime valueMap["edit_time"] = cureeTime
i, l := 0, len(title) i, l := 0, len(title)
for k := range data { for k := range data {
@ -101,6 +102,7 @@ func (a *ApiMethod) ImportFormListFile(ctx *gin.Context) {
taskCont.VersionId = formCont.Id //来源于哪个表单"` taskCont.VersionId = formCont.Id //来源于哪个表单"`
taskCont.Status = 2 taskCont.Status = 2
taskCont.CreaterOrg = valueMap["createrOrg"].(int64) taskCont.CreaterOrg = valueMap["createrOrg"].(int64)
taskCont.CreaterPositon = valueMap["createrPositon"].(int64)
taskCont.MastesForm = formCont.MastesForm taskCont.MastesForm = formCont.MastesForm
taskCont.MastesFormJson = formCont.MastesFormJson taskCont.MastesFormJson = formCont.MastesFormJson
if err = overall.CONSTANT_DB_CustomerForm.Create(&taskCont).Error; err != nil { if err = overall.CONSTANT_DB_CustomerForm.Create(&taskCont).Error; err != nil {

104
api/version1/user/setPower.go

@ -2,6 +2,7 @@ package user
import ( import (
"appPlatform/models/modelAppPlatform" "appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
"appPlatform/models/modelssystempermission" "appPlatform/models/modelssystempermission"
"appPlatform/overall" "appPlatform/overall"
"appPlatform/overall/publicmethod" "appPlatform/overall/publicmethod"
@ -18,6 +19,8 @@ import (
*/ */
func GetMyPower(powerType string, oupk, org, poetId int64) (allPower SendAllPower, err error) { func GetMyPower(powerType string, oupk, org, poetId int64) (allPower SendAllPower, err error) {
allPower.AppGroupPower = GainAppGroupPower(oupk, org, poetId)
//获取系统权限 //获取系统权限
var systemPower []modelssystempermission.AuthPowerList var systemPower []modelssystempermission.AuthPowerList
err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.AuthPowerList{}).Where("`appType` = 'system' AND `orgPowerType` = 'person' AND `orgOrUserKey` = ? AND `appKey` = 0", oupk).Find(&systemPower).Error err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.AuthPowerList{}).Where("`appType` = 'system' AND `orgPowerType` = 'person' AND `orgOrUserKey` = ? AND `appKey` = 0", oupk).Find(&systemPower).Error
@ -96,6 +99,9 @@ func GetMyPower(powerType string, oupk, org, poetId int64) (allPower SendAllPowe
} else { } else {
myAppInfo.IsPick = false myAppInfo.IsPick = false
} }
if v.AppButPower != "" && v.AppButPower != "null" {
json.Unmarshal([]byte(v.AppButPower), &myAppInfo.ButPower)
}
myAppInfo.FormTrue, myAppInfo.FormPower = GetTablePower(v.Id) myAppInfo.FormTrue, myAppInfo.FormPower = GetTablePower(v.Id)
allPower.AppSystemPower = append(allPower.AppSystemPower, myAppInfo) allPower.AppSystemPower = append(allPower.AppSystemPower, myAppInfo)
} }
@ -128,6 +134,86 @@ func GetMyPower(powerType string, oupk, org, poetId int64) (allPower SendAllPowe
return return
} }
/*
*
@ 作者: 秦东
@ 时间: 2025-12-11 15:44:48
@ 功能: 获取自定义App分组的权限
#oupk 个人识别符
#org 行政组织
#poetId 岗位
*/
func GainAppGroupPower(oupk, org, poetId int64) []string {
var groupPower []string
//Step1: 判断有没有设定个人权限
groupPower = GainGroupAppPower("person", oupk)
if len(groupPower) > 0 {
return groupPower
}
//Step2: 获取职位权限
postPowerArt := GainGroupAppPower("job", poetId)
if len(postPowerArt) > 0 {
for _, v := range postPowerArt {
if !publicmethod.IsInTrue[string](v, groupPower) {
groupPower = append(groupPower, v)
}
}
}
//Step2: 行政组织
if org != 0 {
var orgPowerList OrgAryPower
orgPowerList.GetOrgPower(org)
if len(orgPowerList.PowerAry) > 0 {
for _, v := range orgPowerList.PowerAry {
if !publicmethod.IsInTrue[string](v, groupPower) {
groupPower = append(groupPower, v)
}
}
}
}
return groupPower
}
func (o *OrgAryPower) GetOrgPower(orgId int64) {
if orgId != 0 {
orgPowerArt := GainGroupAppPower("org", orgId)
if len(orgPowerArt) > 0 {
for _, v := range orgPowerArt {
if !publicmethod.IsInTrue[string](v, o.PowerAry) {
o.PowerAry = append(o.PowerAry, v)
}
}
} else {
var orgInfo modelshr.AdministrativeOrganization
orgInfo.GetCont(map[string]interface{}{"`id`": orgId}, "`superior`")
if orgInfo.Superior != 0 {
o.GetOrgPower(orgInfo.Superior)
}
}
}
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-11 16:00:06
@ 功能: 获取分组授权
*/
func GainGroupAppPower(types string, id int64) (powerArt []string) {
var myPower modelssystempermission.AuthGroupPower
err := overall.CONSTANT_DB_System_Permission.Where("`appType` = 'app' AND `orgPowerType` = ? AND `orgOrUserKey` = ?", types, id).First(&myPower).Error
if err == nil || myPower.Id != 0 {
if myPower.PowerInfo != "" && myPower.PowerInfo != "null" {
json.Unmarshal([]byte(myPower.PowerInfo), &powerArt)
}
}
return
}
// 合并组织、角色、岗位权限 // 合并组织、角色、岗位权限
func MergePower(FormTable []AppMyPower) (list []AppMyPower) { func MergePower(FormTable []AppMyPower) (list []AppMyPower) {
for _, v := range FormTable { //循环所有授权 for _, v := range FormTable { //循环所有授权
@ -197,6 +283,9 @@ func (x *XieChengPowerSys) GetAppFormPower(sysType, powerType string, key int64)
} else { } else {
appSetUpPower.IsPick = false appSetUpPower.IsPick = false
} }
if v.AppButPower != "" && v.AppButPower != "null" {
json.Unmarshal([]byte(v.AppButPower), &appSetUpPower.ButPower)
}
appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id) appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id)
x.FormTable = append(x.FormTable, appSetUpPower) x.FormTable = append(x.FormTable, appSetUpPower)
} }
@ -221,6 +310,9 @@ func (x *XieChengPowerSys) GetAppFormPower(sysType, powerType string, key int64)
} else { } else {
appSetUpPower.IsPick = false appSetUpPower.IsPick = false
} }
if v.AppButPower != "" && v.AppButPower != "null" {
json.Unmarshal([]byte(v.AppButPower), &appSetUpPower.ButPower)
}
appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id) appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id)
x.FormTable = append(x.FormTable, appSetUpPower) x.FormTable = append(x.FormTable, appSetUpPower)
} }
@ -248,6 +340,9 @@ func (x *XieChengPowerSys) GetAppFormPower(sysType, powerType string, key int64)
} else { } else {
appSetUpPower.IsPick = false appSetUpPower.IsPick = false
} }
if v.AppButPower != "" && v.AppButPower != "null" {
json.Unmarshal([]byte(v.AppButPower), &appSetUpPower.ButPower)
}
appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id) appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id)
x.FormTable = append(x.FormTable, appSetUpPower) x.FormTable = append(x.FormTable, appSetUpPower)
} }
@ -269,6 +364,9 @@ func (x *XieChengPowerSys) GetAppFormPower(sysType, powerType string, key int64)
} else { } else {
appSetUpPower.IsPick = false appSetUpPower.IsPick = false
} }
if v.AppButPower != "" && v.AppButPower != "null" {
json.Unmarshal([]byte(v.AppButPower), &appSetUpPower.ButPower)
}
appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id) appSetUpPower.FormTrue, appSetUpPower.FormPower = GetMyAppTableForm(v.Id)
x.FormTable = append(x.FormTable, appSetUpPower) x.FormTable = append(x.FormTable, appSetUpPower)
} }
@ -305,6 +403,9 @@ func GetMyAppTableForm(authid int64) (formId []string, list []AppMyPowerTable) {
if v.VisibleOrg != "" && v.VisibleOrg != "null" { if v.VisibleOrg != "" && v.VisibleOrg != "null" {
json.Unmarshal([]byte(v.VisibleOrg), &formInfo.ScopeManAry) json.Unmarshal([]byte(v.VisibleOrg), &formInfo.ScopeManAry)
} }
if v.PageButPower != "" && v.PageButPower != "null" {
json.Unmarshal([]byte(v.PageButPower), &formInfo.PagePower)
}
list = append(list, formInfo) list = append(list, formInfo)
} }
return return
@ -497,6 +598,9 @@ func GetTablePower(authId int64) (itenIdAry []string, TableList []AppMyPowerTabl
if v.ListPower != "" && v.ListPower != "null" { if v.ListPower != "" && v.ListPower != "null" {
json.Unmarshal([]byte(v.ListPower), &formPwInfo.ListPower) json.Unmarshal([]byte(v.ListPower), &formPwInfo.ListPower)
} }
if v.PageButPower != "" && v.PageButPower != "null" {
json.Unmarshal([]byte(v.PageButPower), &formPwInfo.PagePower)
}
TableList = append(TableList, formPwInfo) TableList = append(TableList, formPwInfo)
} }
return return

10
api/version1/user/type.go

@ -130,8 +130,9 @@ type SendAllPower struct {
SystemPower []SystemInfoPower `json:"systemPower"` SystemPower []SystemInfoPower `json:"systemPower"`
MenuIdAry []int64 `json:"menuIdAry"` MenuIdAry []int64 `json:"menuIdAry"`
MenuButIdAry []string `json:"menuButIdAry"` MenuButIdAry []string `json:"menuButIdAry"`
AppSystemPower []AppMyPower `json:"AppSystemPower"` AppSystemPower []AppMyPower `json:"appSystemPower"`
AppKeyAry []string `json:"appKeyAry"` AppKeyAry []string `json:"appKeyAry"`
AppGroupPower []string `json:"appGroupPower"` //自定义App分组权限
} }
type SystemInfoPower struct { type SystemInfoPower struct {
@ -180,6 +181,7 @@ type AppMyPower struct {
IsPick bool `json:"isPick` IsPick bool `json:"isPick`
FormTrue []string `json:"formTrue"` FormTrue []string `json:"formTrue"`
FormPower []AppMyPowerTable `json:"formPower"` FormPower []AppMyPowerTable `json:"formPower"`
ButPower []string `json:"butPower"`
} }
type AppMyPowerTable struct { type AppMyPowerTable struct {
AppId string `json:"AppId"` AppId string `json:"AppId"`
@ -188,4 +190,10 @@ type AppMyPowerTable struct {
TablePower []string `json:"tablePower"` TablePower []string `json:"tablePower"`
Scope int `json:"scope"` Scope int `json:"scope"`
ScopeManAry []int `json:"scopeManAry"` ScopeManAry []int `json:"scopeManAry"`
PagePower []string `json:"PagePower"`
}
// 获取行政组织矩阵权限
type OrgAryPower struct {
PowerAry []string
} }

1
apirouter/v1/grantsystempower/pc.go

@ -20,5 +20,6 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) {
apiRouter.POST("gainAppTableList", methodBinding.GainAppTableList) //获取对应App下边的表单 apiRouter.POST("gainAppTableList", methodBinding.GainAppTableList) //获取对应App下边的表单
apiRouter.POST("setpAppTableForms", methodBinding.SetpAppTableForm) //提交APp单一表单权限 apiRouter.POST("setpAppTableForms", methodBinding.SetpAppTableForm) //提交APp单一表单权限
apiRouter.POST("gainAppTableListNew", methodBinding.GainAppTableListNew) //获取对应App下边的表单 apiRouter.POST("gainAppTableListNew", methodBinding.GainAppTableListNew) //获取对应App下边的表单
apiRouter.POST("gainAppEmpowerPower", methodBinding.GainAppEmpowerPower) //获取对应App下边的菜单
} }
} }

1
models/customerForm/taskrecord.go

@ -31,6 +31,7 @@ type TaskRecord struct {
RunFlowId int64 `json:"runFlowId" gorm:"column:runFlowId;type:bigint(20) unsigned;default:0;not null;comment:正在执行得流程"` RunFlowId int64 `json:"runFlowId" gorm:"column:runFlowId;type:bigint(20) unsigned;default:0;not null;comment:正在执行得流程"`
MsgId int64 `json:"msgId" gorm:"column:msgId;type:bigint(20) unsigned;default:0;not null;comment:发送消息得任务ID"` MsgId int64 `json:"msgId" gorm:"column:msgId;type:bigint(20) unsigned;default:0;not null;comment:发送消息得任务ID"`
CreaterOrg int64 `json:"createrOrg" gorm:"column:createrOrg;type:bigint(20) unsigned;default:0;not null;comment:发起人行政组织"` CreaterOrg int64 `json:"createrOrg" gorm:"column:createrOrg;type:bigint(20) unsigned;default:0;not null;comment:发起人行政组织"`
CreaterPositon int64 `json:"createrPositon" gorm:"column:createrPositon;type:bigint(20) unsigned;default:0;not null;comment:发起人岗位"`
} }
func (TaskRecord *TaskRecord) TableName() string { func (TaskRecord *TaskRecord) TableName() string {

2
models/modelssystempermission/authpowerlist.go

@ -17,6 +17,7 @@ type AuthPowerList struct {
VisibleOrg string `gorm:"column:visibleOrg;type:text;comment:可见范围辅助参数" json:"visibleOrg"` VisibleOrg string `gorm:"column:visibleOrg;type:text;comment:可见范围辅助参数" json:"visibleOrg"`
ButPower string `gorm:"column:butPower;type:text;comment:按钮权限" json:"butPower"` ButPower string `gorm:"column:butPower;type:text;comment:按钮权限" json:"butPower"`
Time int64 `gorm:"column:time;type:bigint(20) unsigned;default:0;comment:编辑时间;NOT NULL" json:"time"` Time int64 `gorm:"column:time;type:bigint(20) unsigned;default:0;comment:编辑时间;NOT NULL" json:"time"`
PageButPower string `gorm:"column:pageButPower;type:text;comment:页面表单权限" json:"pageButPower"`
OrgPowerType string `gorm:"column:orgPowerType;type:varchar(20);comment:赋权类型(org:组织;job:岗位;role:角色;person:个人)" json:"orgPowerType"` OrgPowerType string `gorm:"column:orgPowerType;type:varchar(20);comment:赋权类型(org:组织;job:岗位;role:角色;person:个人)" json:"orgPowerType"`
OrgOrUserKey int64 `gorm:"column:orgOrUserKey;type:bigint(20) unsigned;default:0;comment:行政组织或角色、人员识别符;NOT NULL" json:"orgOrUserKey"` OrgOrUserKey int64 `gorm:"column:orgOrUserKey;type:bigint(20) unsigned;default:0;comment:行政组织或角色、人员识别符;NOT NULL" json:"orgOrUserKey"`
@ -24,6 +25,7 @@ type AuthPowerList struct {
AppKey int64 `gorm:"column:appKey;type:bigint(20) unsigned;default:0;comment:自定义应用App" json:"appKey"` AppKey int64 `gorm:"column:appKey;type:bigint(20) unsigned;default:0;comment:自定义应用App" json:"appKey"`
IsTrue int `gorm:"column:isTrue;type:int(1) unsigned;default:0;comment:是否有权(1:有;非1:无);NOT NULL" json:"isTrue"` IsTrue int `gorm:"column:isTrue;type:int(1) unsigned;default:0;comment:是否有权(1:有;非1:无);NOT NULL" json:"isTrue"`
PowerInfo string `json:"powerInfo" gorm:"column:powerInfo;type:text;comment:权限结构体"` PowerInfo string `json:"powerInfo" gorm:"column:powerInfo;type:text;comment:权限结构体"`
AppButPower string `gorm:"column:appButPower;type:text;comment:自定义应用按钮授权" json:"appButPower"`
} }
func (cont *AuthPowerList) TableName() string { func (cont *AuthPowerList) TableName() string {

79
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) *gorm.DB { func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont, isOdeb string, appFormPower AppMyPowerTable) *gorm.DB {
powerInfo := g.GetUserPower() powerInfo := g.GetUserPower()
// js, _ := json.Marshal(powerInfo) // js, _ := json.Marshal(powerInfo)
fmt.Printf("\n\n\n等级-----%v--- ---->%v\n\n\n", isOdeb, powerInfo) fmt.Printf("\n\n\n等级-----%v--- ---->%v\n\n\n", isOdeb, powerInfo)
@ -254,7 +254,28 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
// gormDb = gormDb.Where("f.`creater` = ?", userCont.Key) // gormDb = gormDb.Where("f.`creater` = ?", userCont.Key)
} }
} }
//确定可以看到数据的边界
//1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有
switch appFormPower.Scope {
case 2:
gormDb = gormDb.Where("f.`createrPositon` = ?", userCont.Key)
case 3:
var sunOrg GetOrgAllParent
sunOrg.GetOrgSun(userCont.MainDeparment)
sunOrg.Id = append(sunOrg.Id, userCont.MainDeparment)
gormDb = gormDb.Where("f.`createrOrg` IN ?", sunOrg.Id)
case 4:
var sunOrg GetOrgAllParent
sunOrg.GetOrgSun(userCont.Company)
sunOrg.Id = append(sunOrg.Id, userCont.MainDeparment)
gormDb = gormDb.Where("f.`createrOrg` IN ?", sunOrg.Id)
case 5:
gormDb = gormDb.Where("f.`createrOrg` IN ?", appFormPower.ScopeManAry)
case 6:
default:
}
gormDb = gormDb.Where("f.`creater` = ?", userCont.Key)
return gormDb return gormDb
} }
@ -264,7 +285,7 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
@ 时间: 2025-11-21 09:38:23 @ 时间: 2025-11-21 09:38:23
@ 功能: 根据系统参数获取权限 @ 功能: 根据系统参数获取权限
*/ */
func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo SendSystemPower) { func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo SendSystemPower, tableBut []string) {
powerInfo.PowerType = powerType powerInfo.PowerType = powerType
powerInfo.SystemTyep = systemTyep powerInfo.SystemTyep = systemTyep
powerInfo.PowerId = powerId powerInfo.PowerId = powerId
@ -287,13 +308,16 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo
default: default:
} }
err := gormDb.First(&masterPower).Error err := gormDb.First(&masterPower).Error
if masterPower.AppButPower != "" {
json.Unmarshal([]byte(masterPower.AppButPower), &tableBut)
}
if err != nil { if err != nil {
if powerType == "person" { if powerType == "person" {
var userInfo modelshr.PersonArchives var userInfo modelshr.PersonArchives
userInfo.GetCont(map[string]interface{}{"`key`": powerId}, "`id`", "`company`", "`maindeparment`", "`admin_org`", "`position`") userInfo.GetCont(map[string]interface{}{"`key`": powerId}, "`id`", "`company`", "`maindeparment`", "`admin_org`", "`position`")
var roleId []int64 var roleId []int64
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("FIND_IN_SET(?, `roleuser`)", powerId).Find(&roleId) 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) powerInfo.SystemIsPick, powerInfo.PowerList, tableBut = PersonalAuthorization(systemTyep, systemId, roleId, userInfo)
} }
fmt.Printf("没有个人授权--->%v\n\n\n", masterPower) fmt.Printf("没有个人授权--->%v\n\n\n", masterPower)
@ -344,7 +368,7 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo
@ 时间: 2025-12-05 09:19:08 @ 时间: 2025-12-05 09:19:08
@ 功能: 当个人没有设定自定义权限的时候返回其所在其他维度的赋权情况 @ 功能: 当个人没有设定自定义权限的时候返回其所在其他维度的赋权情况
*/ */
func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo modelshr.PersonArchives) (isTrue bool, PowerList []ItemInfo) { func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo modelshr.PersonArchives) (isTrue bool, PowerList []ItemInfo, tableBut []string) {
//获取角色相关授权 //获取角色相关授权
var masterPower []modelssystempermission.AuthPower var masterPower []modelssystempermission.AuthPower
gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?", roleId, systemTyep) gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?", roleId, systemTyep)
@ -363,6 +387,11 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
isTrue = true isTrue = true
} }
autId = append(autId, v.Id) autId = append(autId, v.Id)
if v.AppButPower != "" {
var tbinfo []string
json.Unmarshal([]byte(v.AppButPower), &tbinfo)
tableBut = append(tableBut, tbinfo...)
}
} }
if len(autId) > 0 { if len(autId) > 0 {
@ -389,6 +418,13 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
isTrue = true isTrue = true
} }
} }
if masterPowerPost.AppButPower != "" {
var tbinfo []string
json.Unmarshal([]byte(masterPowerPost.AppButPower), &tbinfo)
tableBut = append(tableBut, tbinfo...)
}
var poserListPost []modelssystempermission.PowerInfo var poserListPost []modelssystempermission.PowerInfo
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPowerPost.Id).Find(&poserListPost) overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPowerPost.Id).Find(&poserListPost)
PowerList = append(PowerList, mergePowerAry(poserListPost, PowerList)...) PowerList = append(PowerList, mergePowerAry(poserListPost, PowerList)...)
@ -396,48 +432,62 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
} }
//根据行政组织 //根据行政组织
if userInfo.AdminOrg != 0 { if userInfo.AdminOrg != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.AdminOrg) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.AdminOrg)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} else if userInfo.MainDeparment != 0 { } else if userInfo.MainDeparment != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} else if userInfo.Company != 0 { } else if userInfo.Company != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.Company)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} }
} }
} else if userInfo.Company != 0 { } else if userInfo.Company != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.Company)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} }
} }
} else if userInfo.MainDeparment != 0 { } else if userInfo.MainDeparment != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.MainDeparment)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} else if userInfo.Company != 0 { } else if userInfo.Company != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.Company)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} }
} }
} else if userInfo.Company != 0 { } else if userInfo.Company != 0 {
adOrgList, isTrues := OrgGetPower(systemTyep, systemId, userInfo.Company) adOrgList, isTrues, taButPwer := OrgGetPower(systemTyep, systemId, userInfo.Company)
isTrue = isTrues isTrue = isTrues
if len(adOrgList) > 0 { if len(adOrgList) > 0 {
tableBut = append(tableBut, taButPwer...)
PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...) PowerList = append(PowerList, mergePowerAry(adOrgList, PowerList)...)
} }
} }
var quchong []string
for _, v := range tableBut {
if !IsInTrue[string](v, quchong) {
quchong = append(quchong, v)
}
}
tableBut = quchong
return return
} }
@ -447,7 +497,7 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
@ 时间: 2025-12-05 11:04:26 @ 时间: 2025-12-05 11:04:26
@ 功能: 根据行政组织获取授权 @ 功能: 根据行政组织获取授权
*/ */
func OrgGetPower(systemTyep, systemId string, orgId int64) (PowerList []modelssystempermission.PowerInfo, isTrue bool) { func OrgGetPower(systemTyep, systemId string, orgId int64) (PowerList []modelssystempermission.PowerInfo, isTrue bool, tableButPow []string) {
var masterPower modelssystempermission.AuthPower var masterPower modelssystempermission.AuthPower
gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", orgId, systemTyep) gormDb := overall.CONSTANT_DB_System_Permission.Model(&masterPower).Where("`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?", orgId, systemTyep)
switch systemTyep { switch systemTyep {
@ -464,6 +514,11 @@ func OrgGetPower(systemTyep, systemId string, orgId int64) (PowerList []modelssy
if masterPower.IsTrue == 1 { if masterPower.IsTrue == 1 {
isTrue = true isTrue = true
} }
if masterPower.AppButPower != "" {
var tbinfo []string
json.Unmarshal([]byte(masterPower.AppButPower), &tbinfo)
tableButPow = append(tableButPow, tbinfo...)
}
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPower.Id).Find(&PowerList) overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.PowerInfo{}).Where("`authId` = ?", masterPower.Id).Find(&PowerList)
return return
} }

24
overall/publicmethod/powerRedis.go

@ -5,6 +5,7 @@ import (
"appPlatform/overall" "appPlatform/overall"
"encoding/json" "encoding/json"
"fmt" "fmt"
"strconv"
) )
/* /*
@ -64,6 +65,29 @@ func GetMyTableMenuPower(userKey int64, menuId string) (menuPower SendAppTabelPo
if v.AppId == menuId { if v.AppId == menuId {
menuPower.FormPower = v.FormPower menuPower.FormPower = v.FormPower
menuPower.FormTrue = v.FormTrue menuPower.FormTrue = v.FormTrue
menuPower.ButPower = v.ButPower
}
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2025-12-12 15:35:29
@ 功能: 获取自定义应用具体单一表单权限
*/
func GetMyFormPower(userKey, appKey, formKey int64) (menuPower AppMyPowerTable) {
appKeyStr := strconv.FormatInt(appKey, 10)
formKeyStr := strconv.FormatInt(formKey, 10)
myPower := GetSystemPowerInfo(userKey)
for _, v := range myPower.AppSystemPower {
if v.AppId == appKeyStr {
for _, fv := range v.FormPower {
if fv.AppId == formKeyStr {
menuPower = fv
}
}
} }
} }
return return

2
overall/publicmethod/type.go

@ -442,6 +442,7 @@ type AppMyPower struct {
IsPick bool `json:"isPick` IsPick bool `json:"isPick`
FormTrue []string `json:"formTrue"` FormTrue []string `json:"formTrue"`
FormPower []AppMyPowerTable `json:"formPower"` FormPower []AppMyPowerTable `json:"formPower"`
ButPower []string `json:"butPower"`
} }
type AppMyPowerTable struct { type AppMyPowerTable struct {
AppId string `json:"AppId"` AppId string `json:"AppId"`
@ -461,4 +462,5 @@ type OrgIdLevel struct {
type SendAppTabelPower struct { type SendAppTabelPower struct {
FormTrue []string `json:"formTrue"` FormTrue []string `json:"formTrue"`
FormPower []AppMyPowerTable `json:"formPower"` FormPower []AppMyPowerTable `json:"formPower"`
ButPower []string `json:"butPower"`
} }

Loading…
Cancel
Save