| @@ -1768,7 +1768,6 @@ func (opts *SearchUserOptions) toConds() builder.Cond { | |||||
| if !opts.IsActive.IsNone() { | if !opts.IsActive.IsNone() { | ||||
| cond = cond.And(builder.Eq{"is_active": opts.IsActive.IsTrue()}) | cond = cond.And(builder.Eq{"is_active": opts.IsActive.IsTrue()}) | ||||
| } | } | ||||
| return cond | return cond | ||||
| } | } | ||||
| @@ -1780,12 +1779,15 @@ func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error) { | |||||
| if err != nil { | if err != nil { | ||||
| return nil, 0, fmt.Errorf("Count: %v", err) | return nil, 0, fmt.Errorf("Count: %v", err) | ||||
| } | } | ||||
| orderby := opts.OrderBy.String() | |||||
| if len(opts.OrderBy) == 0 { | 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 { | if opts.Page != 0 { | ||||
| sess = opts.setSessionPagination(sess) | sess = opts.setSessionPagination(sess) | ||||
| } | } | ||||