Explorar el Código

完善用户管理功能

huangyh hace 6 años
padre
commit
576fd7d4ec

+ 112 - 18
controllers/partial/SystemController.go

@@ -7,6 +7,7 @@ import (
 	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
 	sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
 	"strconv"
+	"time"
 )
 
 // _Sidebar
@@ -60,6 +61,31 @@ func System_FindUserPage(c *entitys.CtrlContext) {
 
 	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_id}
 	result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t)
+
+	if err != nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
+		return
+	}
+
+	type Role struct {
+		RoleName string `json:"role_name"`
+		UserRole string `json:"user_role"`
+	}
+	//获取用户角色
+	users := result.Content.([]map[string]interface{})
+	for i, user := range users {
+		roles := []Role{}
+		err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles)
+		if err != nil {
+			fmt.Println("----", err.Error())
+			continue
+		}
+		users[i]["user_role"] = roles[0].UserRole
+		users[i]["role_name"] = roles[0].RoleName
+	}
+
+	result.Content = users
+
 	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
 	} else {
@@ -86,6 +112,26 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
 
 }
 
+// _FindOrgPage
+// @Title _FindOrgPage
+// @Description 获取组织架构分页数
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_FindOrgPage(c *entitys.CtrlContext) {
+
+	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
+	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
+
+	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
+	result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "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})
+	}
+
+}
+
 // _AddUser
 // @Title _AddUser
 // @Description 添加用户
@@ -96,16 +142,40 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddUser(c *entitys.CtrlContext) {
-	login_id := c.Ctx.Query("login_id")
-	password := c.Ctx.Query("password")
-	org_id := c.Ctx.Query("org_id")
-	email := c.Ctx.Query("email")
-
-	ret := __none_func_system__(login_id, password, org_id, email)
-	if ret {
+	var user sysmodel.SysUser
+	c.Ctx.BindJSON(&user)
+	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
+		}
+	}
+	user_id := c.Ctx.GetString("user_id")
+	user.Id = sysutils.NewUUID()
+	user.Name = user.LoginId
+	user.CreateTime = time.Now()
+	user.LastUpdateDate = time.Now()
+	user.CreateBy = user_id
+	user.LastUpdateBy = user_id
+	user.DelFlag = 0
+	user.Password = sysutils.HashPassword(user.Password, "")
+	_, err := c.Db.Insert(&user)
+	ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email)
+	if ret && err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
 	}
 }
 
@@ -116,13 +186,35 @@ func System_AddUser(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_DelUser(c *entitys.CtrlContext) {
-	id := c.Ctx.Query("id")
-
-	ret := __none_func_system__(id)
+	type Param struct {
+		Id string `json:"id"`
+	}
+	var params []Param
+	c.Ctx.BindJSON(&params)
+	ids := []string{}
+	for _, param := range params {
+		ids = append(ids, param.Id)
+	}
+	session := c.Db.NewSession()
+	defer session.Close()
+	_, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
+	if err != nil {
+		session.Rollback()
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	_, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1})
+	if err != nil {
+		session.Rollback()
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+	session.Commit()
+	ret := __none_func_system__()
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
 	}
 }
 
@@ -213,13 +305,15 @@ func System_UpdateRole(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_FindRolePage(c *entitys.CtrlContext) {
-	var paramObj0 models.GetPageInfo
-	c.Ctx.BindJSON(&paramObj0)
-	ret := __none_func_system__(paramObj0)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
+	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
+
+	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
+	result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t)
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	}
 }
 

+ 4 - 7
light-apiengine.xml

@@ -62,6 +62,10 @@
             </api>
             <api name="get_org_tree" desc="获取组织架构树" function="tree" table="sys_org" method="get,post" >
             </api>
+            <api name="find_org_page" desc="获取组织架构分页数" function="page" table="sys_org" method="get,post" >
+            </api>
+            <api name="find_role_page" desc="获取角色分页数" function="page" table="sys_role" method="get,post" >
+            </api>
             <api name="add_user" desc="添加用户" method="post,get,put">
                 <param name="login_id" type="string" desc="登录ID"/>
                 <param name="password" type="string" desc="密码"/>
@@ -113,13 +117,6 @@
                     <failure ref="$sys_return"></failure>
                 </return>
             </api>
-            <api name="find_role_page" desc="角色分页" method="post,get,put">
-                <param name="page" ref="$get_page_info" desc="分页参数"/>
-                <return>
-                    <success ref="$sys_return"></success>
-                    <failure ref="$sys_return"></failure>
-                </return>
-            </api>
             <api name="find_role_menu" desc="查找角色权限" method="post,get,put">
                 <param name="role_id" type="string" desc="角色id"/>
                 <return>

+ 7 - 0
sqlconfig/system_controller/system_find_org_page_count.tpl

@@ -0,0 +1,7 @@
+
+select
+    count(*) records
+from
+    sys_org
+where
+	del_flag = 0

+ 8 - 0
sqlconfig/system_controller/system_find_org_page_select.tpl

@@ -0,0 +1,8 @@
+
+select
+    *
+from
+    sys_org
+where
+    del_flag = 0
+LIMIT {{.rows}} OFFSET {{.offset}}

+ 7 - 0
sqlconfig/system_controller/system_find_role_page_count.tpl

@@ -0,0 +1,7 @@
+
+select
+    count(*) records
+from
+    sys_role
+where
+	del_flag = 0

+ 8 - 0
sqlconfig/system_controller/system_find_role_page_select.tpl

@@ -0,0 +1,8 @@
+
+select
+    *
+from
+    sys_role
+where
+    del_flag = 0
+LIMIT {{.rows}} OFFSET {{.offset}}

+ 9 - 4
sqlconfig/system_controller/system_find_user_page_select.tpl

@@ -1,14 +1,19 @@
 
 select
-    *
+    sys_user.*,
+    sys_org.name org_name
 from
     sys_user
+left join
+    sys_org
+on
+    sys_user.org_id = sys_org.id
 where
-    del_flag = 0
+    sys_user.del_flag = 0
 {{if ne .name ""}}
-    and name like '%{{.name}}%'
+    and sys_user.name like '%{{.name}}%'
 {{end}}
 {{if ne .login_id ""}}
-    and login_id like '%{{.login_id}}%'
+    and sys_user.login_id like '%{{.login_id}}%'
 {{end}}
 LIMIT {{.rows}} OFFSET {{.offset}}