feat: add user_list
This commit is contained in:
@@ -195,3 +195,21 @@ func (t *tenant) AddExpireDuration(ctx context.Context, tenantID int64, duration
|
||||
}
|
||||
return m.Save(ctx)
|
||||
}
|
||||
|
||||
// UpdateStatus
|
||||
func (t *tenant) UpdateStatus(ctx context.Context, tenantID int64, status consts.TenantStatus) error {
|
||||
logrus.WithField("tenant_id", tenantID).WithField("status", status).Info("update tenant status")
|
||||
|
||||
m, err := t.FindByID(ctx, tenantID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m.Status = status
|
||||
_, err = m.Update(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -3,11 +3,13 @@ package services
|
||||
import (
|
||||
"context"
|
||||
|
||||
"quyun/v2/app/http/super/dto"
|
||||
"quyun/v2/app/requests"
|
||||
"quyun/v2/database/models"
|
||||
"quyun/v2/pkg/consts"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/samber/lo"
|
||||
"go.ipao.vip/gen"
|
||||
)
|
||||
|
||||
@@ -52,16 +54,8 @@ func (t *user) SetStatus(ctx context.Context, userID int64, status consts.UserSt
|
||||
return m.Save(ctx)
|
||||
}
|
||||
|
||||
type UserPageFilter struct {
|
||||
requests.Pagination
|
||||
requests.SortQueryFilter
|
||||
|
||||
Username *string `query:"username"`
|
||||
TenantID *int64 `query:"tenant_id"`
|
||||
}
|
||||
|
||||
// Page
|
||||
func (t *user) Page(ctx context.Context, filter *UserPageFilter) (*requests.Pager, error) {
|
||||
func (t *user) Page(ctx context.Context, filter *dto.UserPageFilter) (*requests.Pager, error) {
|
||||
tbl, query := models.UserQuery.QueryContext(ctx)
|
||||
|
||||
conds := []gen.Condition{}
|
||||
@@ -76,11 +70,18 @@ func (t *user) Page(ctx context.Context, filter *UserPageFilter) (*requests.Page
|
||||
}
|
||||
|
||||
filter.Pagination.Format()
|
||||
items, total, err := query.Where(conds...).Order(tbl.ID.Desc()).FindByPage(int(filter.Offset()), int(filter.Limit))
|
||||
users, total, err := query.Where(conds...).Order(tbl.ID.Desc()).FindByPage(int(filter.Offset()), int(filter.Limit))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
items := lo.Map(users, func(model *models.User, _ int) *dto.UserItem {
|
||||
return &dto.UserItem{
|
||||
User: model,
|
||||
StatusDescription: model.Status.Description(),
|
||||
}
|
||||
})
|
||||
|
||||
return &requests.Pager{
|
||||
Pagination: filter.Pagination,
|
||||
Total: total,
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"quyun/v2/app/commands/testx"
|
||||
"quyun/v2/app/http/super/dto"
|
||||
"quyun/v2/database"
|
||||
"quyun/v2/database/models"
|
||||
"quyun/v2/pkg/consts"
|
||||
@@ -115,7 +116,7 @@ func (t *UserTestSuite) Test_Page() {
|
||||
err := m.Create(t.T().Context())
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
pager, err := User.Page(t.T().Context(), &UserPageFilter{
|
||||
pager, err := User.Page(t.T().Context(), &dto.UserPageFilter{
|
||||
Username: &username,
|
||||
})
|
||||
|
||||
@@ -192,7 +193,7 @@ func (t *UserTestSuite) Test_Page() {
|
||||
So(err, ShouldBeNil)
|
||||
}
|
||||
|
||||
pager, err := User.Page(t.T().Context(), &UserPageFilter{
|
||||
pager, err := User.Page(t.T().Context(), &dto.UserPageFilter{
|
||||
TenantID: lo.ToPtr(int64(1)),
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user