Browse Source

搜索用户时排序问题优化。

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.8.1^2
zouap 3 years ago
parent
commit
faaf5ebdf2
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      models/user.go

+ 7
- 5
models/user.go View File

@@ -1768,7 +1768,6 @@ func (opts *SearchUserOptions) toConds() builder.Cond {
if !opts.IsActive.IsNone() {
cond = cond.And(builder.Eq{"is_active": opts.IsActive.IsTrue()})
}

return cond
}

@@ -1780,12 +1779,15 @@ func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error) {
if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
}
orderby := opts.OrderBy.String()
if len(opts.OrderBy) == 0 {
opts.OrderBy = SearchOrderByAlphabetically
orderby = SearchOrderByAlphabetically.String()
lowerKeyword := strings.ToLower(opts.Keyword)
if len(opts.Keyword) > 0 {
orderby = " CASE when lower_name='" + lowerKeyword + "' then 0 when charindex('" + lowerKeyword + "',lower_name)>0 then 1 else 2 END ASC"
}
}

sess := x.Where(cond).OrderBy(opts.OrderBy.String())
sess := x.Where(cond).OrderBy(orderby)
if opts.Page != 0 {
sess = opts.setSessionPagination(sess)
}


Loading…
Cancel
Save