feat: 重构内容和订单列表接口,使用过滤器结构体简化参数传递;更新相关服务和测试用例

This commit is contained in:
2025-12-29 15:41:48 +08:00
parent fba77afec1
commit 9d598e7f9b
11 changed files with 286 additions and 232 deletions

View File

@@ -80,7 +80,7 @@ func (s *creator) Dashboard(ctx context.Context) (*creator_dto.DashboardStats, e
return stats, nil
}
func (s *creator) ListContents(ctx context.Context, status, genre, keyword string) ([]creator_dto.ContentItem, error) {
func (s *creator) ListContents(ctx context.Context, filter *creator_dto.CreatorContentListFilter) ([]creator_dto.ContentItem, error) {
tid, err := s.getTenantID(ctx)
if err != nil {
return nil, err
@@ -89,14 +89,14 @@ func (s *creator) ListContents(ctx context.Context, status, genre, keyword strin
tbl, q := models.ContentQuery.QueryContext(ctx)
q = q.Where(tbl.TenantID.Eq(tid))
if status != "" {
q = q.Where(tbl.Status.Eq(consts.ContentStatus(status)))
if filter.Status != nil && *filter.Status != "" {
q = q.Where(tbl.Status.Eq(consts.ContentStatus(*filter.Status)))
}
if genre != "" {
q = q.Where(tbl.Genre.Eq(genre))
if filter.Genre != nil && *filter.Genre != "" {
q = q.Where(tbl.Genre.Eq(*filter.Genre))
}
if keyword != "" {
q = q.Where(tbl.Title.Like("%" + keyword + "%"))
if filter.Keyword != nil && *filter.Keyword != "" {
q = q.Where(tbl.Title.Like("%" + *filter.Keyword + "%"))
}
list, err := q.Order(tbl.CreatedAt.Desc()).Find()
@@ -190,7 +190,7 @@ func (s *creator) DeleteContent(ctx context.Context, id string) error {
return nil
}
func (s *creator) ListOrders(ctx context.Context, status, keyword string) ([]creator_dto.Order, error) {
func (s *creator) ListOrders(ctx context.Context, filter *creator_dto.CreatorOrderListFilter) ([]creator_dto.Order, error) {
tid, err := s.getTenantID(ctx)
if err != nil {
return nil, err
@@ -198,7 +198,12 @@ func (s *creator) ListOrders(ctx context.Context, status, keyword string) ([]cre
tbl, q := models.OrderQuery.QueryContext(ctx)
q = q.Where(tbl.TenantID.Eq(tid))
// Filters...
if filter.Status != nil && *filter.Status != "" {
q = q.Where(tbl.Status.Eq(consts.OrderStatus(*filter.Status)))
}
// Keyword could match ID or other fields if needed
list, err := q.Order(tbl.CreatedAt.Desc()).Find()
if err != nil {
return nil, errorx.ErrDatabaseError.WithCause(err)