28 lines
734 B
Go
28 lines
734 B
Go
package user_ser
|
|
|
|
import (
|
|
"EnGin/internal/db"
|
|
"EnGin/internal/ent"
|
|
"EnGin/internal/ent/user"
|
|
"EnGin/internal/service/common"
|
|
"context"
|
|
|
|
"entgo.io/ent/dialect/sql"
|
|
)
|
|
|
|
func GetUserListWithPage(ctx context.Context, usernameKey string, page, limit int) ([]*ent.User, int, error) {
|
|
return common.QueryList(ctx, db.Client.User.Query(), common.QueryOptions[*ent.UserQuery]{
|
|
Page: page,
|
|
Limit: limit,
|
|
Query: func(q *ent.UserQuery) *ent.UserQuery {
|
|
// 模糊匹配(编译期安全,杜绝拼写错误)
|
|
if usernameKey != "" {
|
|
q = q.Where(user.UsernameContains(usernameKey))
|
|
}
|
|
|
|
// 预加载关联角色,并按照创建时间倒序
|
|
return q.WithRoles().Order(user.ByCreatedAt(sql.OrderDesc()))
|
|
},
|
|
})
|
|
}
|