feat:add conds
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
"quyun/app/requests"
|
||||
"quyun/database/conds"
|
||||
"quyun/database/fields"
|
||||
"quyun/database/schemas/public/model"
|
||||
"quyun/database/schemas/public/table"
|
||||
@@ -194,14 +195,15 @@ func (m *usersModel) DeleteByID(ctx context.Context, id int64) error {
|
||||
}
|
||||
|
||||
// PostList returns a paginated list of posts for a user
|
||||
func (m *usersModel) PostList(ctx context.Context, userId int64, pagination *requests.Pagination, cond BoolExpression, callbacks ...func(model.Posts) model.Posts) (*requests.Pager, error) {
|
||||
func (m *usersModel) PostList(ctx context.Context, userId int64, pagination *requests.Pagination, conds ...conds.Cond) (*requests.Pager, error) {
|
||||
pagination.Format()
|
||||
|
||||
tblUserPosts := table.UserPosts
|
||||
|
||||
cond = cond.AND(
|
||||
tblUserPosts.UserID.EQ(Int64(userId)),
|
||||
)
|
||||
combineConds := tblUserPosts.UserID.EQ(Int64(userId))
|
||||
for _, c := range conds {
|
||||
combineConds = c(combineConds)
|
||||
}
|
||||
|
||||
tbl := table.Posts
|
||||
stmt := SELECT(tbl.AllColumns).
|
||||
@@ -211,7 +213,7 @@ func (m *usersModel) PostList(ctx context.Context, userId int64, pagination *req
|
||||
tblUserPosts.PostID.EQ(tbl.ID),
|
||||
),
|
||||
).
|
||||
WHERE(cond).
|
||||
WHERE(combineConds).
|
||||
ORDER_BY(tblUserPosts.ID.DESC()).
|
||||
LIMIT(pagination.Limit).
|
||||
OFFSET(pagination.Offset)
|
||||
@@ -244,14 +246,6 @@ func (m *usersModel) PostList(ctx context.Context, userId int64, pagination *req
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(callbacks) > 0 {
|
||||
for _, f := range callbacks {
|
||||
posts = lo.Map(posts, func(item model.Posts, _ int) model.Posts {
|
||||
return f(item)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return &requests.Pager{
|
||||
Items: posts,
|
||||
Total: cnt.Cnt,
|
||||
|
||||
Reference in New Issue
Block a user