|
|
@@ -1,6 +1,7 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
@@ -210,19 +211,24 @@ func System_FindUserPage(c *SystemController) {
|
|
|
var users []sysmodel.UserInfo
|
|
|
|
|
|
dbSession := c.Db.Table("sys_user")
|
|
|
+ dbSession.Select("sys_user.*, sys_org.name org_name")
|
|
|
+
|
|
|
+ countSession := c.Db.Table("sys_user")
|
|
|
|
|
|
JoinTables := []models.Join{}
|
|
|
- JoinTables = append(JoinTables, models.Join{TabelName: "sys_user_role", Condition: "sys_user_role.user_id = sys_user.id", JoinOperator: "left"})
|
|
|
- JoinTables = append(JoinTables, models.Join{TabelName: "sys_role", Condition: "sys_user_role.role_id = sys_role.id", JoinOperator: "left"})
|
|
|
+ //JoinTables = append(JoinTables, models.Join{TabelName: "sys_user_role", Condition: "sys_user_role.user_id = sys_user.id", JoinOperator: "left"})
|
|
|
+ //JoinTables = append(JoinTables, models.Join{TabelName: "sys_role", Condition: "sys_user_role.role_id = sys_role.id", JoinOperator: "left"})
|
|
|
JoinTables = append(JoinTables, models.Join{TabelName: "sys_org", Condition: "sys_org.id = sys_user.org_id", JoinOperator: "left"})
|
|
|
|
|
|
for _, join := range JoinTables {
|
|
|
dbSession = dbSession.Join(join.JoinOperator, join.TabelName, join.Condition)
|
|
|
+ countSession = countSession.Join(join.JoinOperator, join.TabelName, join.Condition)
|
|
|
}
|
|
|
|
|
|
whereStr, datas, err := getpageinfo.Filter.Parse("")
|
|
|
|
|
|
dbSession = dbSession.Where(whereStr, datas...)
|
|
|
+ countSession = countSession.Where(whereStr, datas...)
|
|
|
|
|
|
sidx := strings.Split(getpageinfo.Sidx, ",")
|
|
|
for _, order := range sidx {
|
|
|
@@ -239,20 +245,26 @@ func System_FindUserPage(c *SystemController) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- dbSession.Limit(getpageinfo.PageSize, (getpageinfo.PageNum-1)*getpageinfo.PageSize).GroupBy("sys_user.id").Find(&users)
|
|
|
+ totalPage, _ := countSession.Count()
|
|
|
+
|
|
|
+ dbSession.Limit(getpageinfo.PageSize, (getpageinfo.PageNum-1)*getpageinfo.PageSize).Find(&users)
|
|
|
|
|
|
//查找每个用户的角色
|
|
|
for i, user := range users {
|
|
|
- roles := []sysmodel.SysUserRole{}
|
|
|
- c.Db.SQL(sysmodel.SqlSelectUserRoles, user.Id).Find(&roles)
|
|
|
- users[i].UserRole = roles
|
|
|
+ roles := []sysmodel.UserInfo{}
|
|
|
+ err := c.Db.SQL(sysmodel.SqlSelectUserRoles, user.Id).Find(&roles)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("----", err.Error())
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ users[i].UserRole = roles[0].UserRole
|
|
|
+ users[i].RoleName = roles[0].RoleName
|
|
|
}
|
|
|
|
|
|
page.Content = users
|
|
|
page.PageSize = getpageinfo.PageSize
|
|
|
page.PageNum = getpageinfo.PageNum
|
|
|
- //page.TotalSize = int(totalPage) / getpageinfo.PageSize
|
|
|
- page.TotalSize = 2
|
|
|
+ page.TotalSize = int(totalPage)
|
|
|
|
|
|
if err == nil {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{200, "", page})
|
|
|
@@ -390,15 +402,23 @@ func System_UpdateUser(c *SystemController) {
|
|
|
}
|
|
|
|
|
|
//2、修改角色
|
|
|
- for i, _ := range userInfo.UserRole {
|
|
|
- userInfo.UserRole[i].Id = utils.NewUUID()
|
|
|
- userInfo.UserRole[i].CreateBy = user_id
|
|
|
- userInfo.UserRole[i].LastUpdateBy = user_id
|
|
|
- userInfo.UserRole[i].CreateTime = time.Now()
|
|
|
- userInfo.UserRole[i].LastUpdateDate = time.Now()
|
|
|
- userInfo.UserRole[i].DelFlag = 1
|
|
|
- }
|
|
|
- _, err = c.Db.Insert(userInfo.UserRole)
|
|
|
+ userRoles := []models.SysUserRole{}
|
|
|
+ err = json.Unmarshal([]byte(userInfo.UserRole), &userRoles)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for i, _ := range userRoles {
|
|
|
+ userRoles[i].Id = utils.NewUUID()
|
|
|
+ userRoles[i].CreateBy = user_id
|
|
|
+ userRoles[i].LastUpdateBy = user_id
|
|
|
+ userRoles[i].CreateTime = time.Now()
|
|
|
+ userRoles[i].LastUpdateDate = time.Now()
|
|
|
+ userRoles[i].DelFlag = 1
|
|
|
+ }
|
|
|
+ _, err = c.Db.Insert(userRoles)
|
|
|
if err != nil {
|
|
|
session.Rollback()
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|