|
|
@@ -170,12 +170,20 @@ func System_FindUserPage(c *entitys.CtrlContext) {
|
|
|
func System_GetOrgTree(c *entitys.CtrlContext) {
|
|
|
var roleRule interface{} = ""
|
|
|
rule_code := "org_tree"
|
|
|
+ var user sysmodel.SysUser
|
|
|
// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
|
|
|
user_id := c.Ctx.GetString("user_id")
|
|
|
exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
|
|
|
//如果是管理员
|
|
|
if exist {
|
|
|
user_id = ""
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "role_rule": roleRule}
|
|
|
+ result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
} else if rule_code != "" {
|
|
|
var roleRules []models.SysDataPermissionDetail
|
|
|
// 根据rule_code获取角色对应的接口规则
|
|
|
@@ -185,16 +193,28 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
|
|
|
} else {
|
|
|
roleRule = sysutils.ParseRule(roleRules)
|
|
|
}
|
|
|
- }
|
|
|
- paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id, "role_rule": roleRule}
|
|
|
- result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
|
|
|
+ // 查找用户组织ID
|
|
|
+ _, err = c.Db.ID(user_id).Get(&user)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- if err == nil {
|
|
|
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
- } else {
|
|
|
- c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
- }
|
|
|
+ stplkey := fmt.Sprintf("%s_%s.tpl", "system", "get_org_tree")
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name", "org_id": user.OrgId, "role_rule": roleRule}
|
|
|
+ result, err := c.Db.SqlTemplateClient(stplkey, ¶mMap_i_t).Query().List()
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
+ tree, err := sysutils.BuildTree(user.OrgId, result)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", tree})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// _FindOrgPage
|