Skip to content

Commit 67f16ea

Browse files
author
Chang lue Tsen
committed
feat(user): add unscoped filter to include soft-deleted records in user queries
1 parent a9c832c commit 67f16ea

File tree

4 files changed

+7
-0
lines changed

4 files changed

+7
-0
lines changed

apis/admin/user.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ type (
1919
Size int `form:"size"`
2020
Search string `form:"search,omitempty"`
2121
UserId *int64 `form:"user_id,omitempty"`
22+
Unscoped bool `form:"unscoped,omitempty"`
2223
SubscribeId *int64 `form:"subscribe_id,omitempty"`
2324
UserSubscribeId *int64 `form:"user_subscribe_id,omitempty"`
2425
}

internal/logic/admin/user/getUserListLogic.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func (l *GetUserListLogic) GetUserList(req *types.GetUserListRequest) (*types.Ge
3030
list, total, err := l.svcCtx.UserModel.QueryPageList(l.ctx, req.Page, req.Size, &user.UserFilterParams{
3131
UserId: req.UserId,
3232
Search: req.Search,
33+
Unscoped: req.Unscoped,
3334
SubscribeId: req.SubscribeId,
3435
UserSubscribeId: req.UserSubscribeId,
3536
Order: "DESC",

internal/model/user/model.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ type UserFilterParams struct {
6262
SubscribeId *int64
6363
UserSubscribeId *int64
6464
Order string // Order by id, e.g., "desc"
65+
Unscoped bool // Whether to include soft-deleted records
6566
}
6667

6768
type customUserLogicModel interface {
@@ -148,6 +149,9 @@ func (m *customUserModel) QueryPageList(ctx context.Context, page, size int, fil
148149
if filter.Order != "" {
149150
conn = conn.Order(fmt.Sprintf("user.id %s", filter.Order))
150151
}
152+
if filter.Unscoped {
153+
conn = conn.Unscoped()
154+
}
151155
}
152156
return conn.Model(&User{}).Group("user.id").Count(&total).Limit(size).Offset((page - 1) * size).Preload("UserDevices").Preload("AuthMethods").Find(&list).Error
153157
})

internal/types/types.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)