فهرست منبع

add: 添加用户关键字搜索

zqbao 10 ماه پیش
والد
کامیت
50dd376122
4فایلهای تغییر یافته به همراه47 افزوده شده و 8 حذف شده
  1. 2 0
      .gitignore
  2. 20 2
      controllers/sys_user.go
  3. 13 6
      models/sys_user.go
  4. 12 0
      utils/common.go

+ 2 - 0
.gitignore

@@ -1,3 +1,5 @@
 /conf/
+/.vscode/
 /etalogs/
 *.exe
+*.exe~

+ 20 - 2
controllers/sys_user.go

@@ -309,6 +309,8 @@ func (this *SysUserController) Edit() {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   DepartmentId   query   int  true       "部门ID"
+// @Param   RoleId   query   int  true       "角色ID"
+// @Param   KeyWord   query   string  true       "搜索关键词"
 // @Success 200 {object} models.LoginResp
 // @router /list [get]
 func (this *SysUserController) List() {
@@ -320,6 +322,21 @@ func (this *SysUserController) List() {
 
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
+	roleId, _ := this.GetInt("RoleId")
+	keyWord := this.GetString("KeyWord")
+
+	var condition string
+	var pars []interface{}
+
+	if roleId > 0 {
+		condition += ` AND sys_role_id=? `
+		pars = append(pars, roleId)
+	}
+
+	if keyWord != "" {
+		condition += ` AND (sys_real_name LIKE ? OR sys_user_name LIKE ? OR phone LIKE ? OR email LIKE ?) `
+		pars = utils.GetLikeKeywordPars(pars, keyWord, 4)
+	}
 
 	var startSize int
 	if pageSize <= 0 {
@@ -330,19 +347,20 @@ func (this *SysUserController) List() {
 	}
 	startSize = utils.StartIndex(currentIndex, pageSize)
 
-	total, err := models.GetSysUserCount()
+	total, err := models.GetSysUserCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	list, err := models.GetSysUserList(startSize, pageSize)
+	list, err := models.GetSysUserList(condition, pars, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
 	page := paging.GetPaging(currentIndex, pageSize, total)
+
 	resp := new(response.SysUserListResp)
 	resp.List = list
 	resp.Paging = page

+ 13 - 6
models/sys_user.go

@@ -58,16 +58,23 @@ func GetSysUserCountBySysUserName(sysUserName string) (count int, err error) {
 	return
 }
 
-func GetSysUserCount() (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM sys_user`
+func GetSysUserCount(condition string, pars []interface{}) (count int, err error) {
+	sql := `SELECT COUNT(1) AS count FROM sys_user WHERE 1=1`
+	if condition != "" {
+		sql += condition
+	}
 	o := orm.NewOrmUsingDB("master")
-	err = o.Raw(sql).QueryRow(&count)
+	err = o.Raw(sql, pars...).QueryRow(&count)
 	return
 }
 
-func GetSysUserList(startSize, pageSize int) (items []*SysUser, err error) {
-	sql := `SELECT * FROM sys_user ORDER BY modify_time DESC LIMIT ?,?`
+func GetSysUserList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysUser, err error) {
+	sql := `SELECT * FROM sys_user WHERE 1=1`
+	if condition != "" {
+		sql += condition
+	}
+	sql += `ORDER BY modify_time DESC LIMIT ?,?`
 	o := orm.NewOrmUsingDB("master")
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }

+ 12 - 0
utils/common.go

@@ -37,3 +37,15 @@ func StartIndex(page, pagesize int) int {
 	}
 	return 0
 }
+
+// GetLikeKeywordPars 获取sql查询中的参数切片
+func GetLikeKeywordPars(pars []interface{}, keyword string, num int) (newPars []interface{}) {
+	newPars = pars
+	if newPars == nil {
+		newPars = make([]interface{}, 0)
+	}
+	for i := 1; i <= num; i++ {
+		newPars = append(newPars, `%`+keyword+`%`)
+	}
+	return
+}