Browse Source

修改分页

huangyh 6 năm trước cách đây
mục cha
commit
bb74d3f577

+ 37 - 17
controllers/SystemController.go

@@ -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})

+ 12 - 1
models/Sql_SysUserRole.go

@@ -4,4 +4,15 @@ package models
 var SqlDeleteUserRoles = `delete from sys_user_role where user_id=?`
 
 //获取用户角色
-var SqlSelectUserRoles = `select sys_user_role.* from sys_user_role where sys_user_role.user_id = ? and sys_user_role.del_flag = 1`
+var SqlSelectUserRoles = `select 
+						  sys_user_role.*,
+						  GROUP_CONCAT(sys_role.name) role_name,
+						  GROUP_CONCAT(sys_role.id) user_role 
+						from
+						  sys_user_role 
+						LEFT JOIN
+						  sys_role
+						on
+						  sys_user_role.role_id = sys_role.id
+						where sys_user_role.user_id = ? 
+						  and sys_user_role.del_flag = 1 `

+ 1 - 1
models/StorageResult_gen.go

@@ -13,7 +13,7 @@ type StorageResult struct {
 	//port
 	Port   int32 `json:"port"`
 	//id
-	Id   string `json:"id"`
+	Id   int32 `json:"id"`
 	//hash
 	Hash   string `json:"hash"`
 	//len

+ 1 - 1
models/UserInfo_gen.go

@@ -43,6 +43,6 @@ type UserInfo struct {
 	//角色名称
 	RoleName   string `json:"role_name"`
 	//用户角色
-	UserRole   []SysUserRole `json:"user_role"`
+	UserRole   string `json:"user_role"`
 
 }