Kaynağa Gözat

修改获取组织树形菜单接口

huangyh 6 yıl önce
ebeveyn
işleme
42f6e8c008

+ 13 - 15
controllers/partial/SystemController.go

@@ -148,8 +148,15 @@ func System_FindUserPage(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_GetOrgTree(c *entitys.CtrlContext) {
+	// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
+	user_id := c.Ctx.DefaultQuery("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"}
+	paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id}
 	result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
 
 	if err == nil {
@@ -203,20 +210,10 @@ func System_AddUser(c *entitys.CtrlContext) {
 	}
 	fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId)
 	//查找login_id是否存在
-	oldUser := new(sysmodel.SysUser)
-	count, _ := c.Db.SQL("select * from sys_user").Where("login_id = ?", user.LoginId).Count(&oldUser)
-	if count > 1 {
-		if oldUser.DelFlag == 1 {
-			oldUser.DelFlag = 0
-			_, err := c.Db.Id("id").Cols("del_flag").Update(&oldUser)
-			if err != nil {
-				c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit, update err: " + err.Error(), nil})
-			}
-			return
-		} else {
-			c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
-			return
-		}
+	exit, _ := c.PlatformDbEngine.Table(new(sysmodel.SysUser)).Where("login_id = ? and del_flag = ?", user.LoginId, 0).Exist()
+	if exit {
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
+		return
 	}
 	user_id := c.Ctx.GetString("user_id")
 	user.Id = sysutils.NewUUID()
@@ -232,6 +229,7 @@ func System_AddUser(c *entitys.CtrlContext) {
 	if err != nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台插入用户错误:" + err.Error(), nil})
 	}
+
 	_, err = c.Db.Insert(&user)
 	ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email)
 	if ret && err == nil {

+ 9 - 2
sqlconfig/system_controller/system_get_org_tree.tpl

@@ -1,7 +1,14 @@
 
 select
-    *
+    sys_org.*
 from
     sys_org
+left join
+    sys_user
+on sys_user.org_id = sys_org.id
 where
-    del_flag = 0
+    sys_org.del_flag = 0
+{{if ne .user_id ""}}
+    and sys_user.id = '{{.user_id}}'
+{{end}}
+GROUP BY sys_org.id