feat: update medias

This commit is contained in:
yanghao05
2025-04-09 19:08:35 +08:00
parent f328de00fd
commit 1ef2f9318e
5 changed files with 28 additions and 10 deletions

View File

@@ -44,6 +44,22 @@ func (m *mediasModel) Prepare() error {
return nil
}
func (m *mediasModel) BuildConditionWithKey(key *string) BoolExpression {
tbl := table.Medias
cond := Bool(true)
if key == nil || *key == "" {
return cond
}
cond = cond.AND(
tbl.Name.LIKE(String("%" + *key + "%")),
)
return cond
}
// countByCond
func (m *mediasModel) countByCondition(ctx context.Context, expr BoolExpression) (int64, error) {
var cnt struct {
@@ -63,12 +79,13 @@ func (m *mediasModel) countByCondition(ctx context.Context, expr BoolExpression)
return cnt.Cnt, nil
}
func (m *mediasModel) List(ctx context.Context, pagination *requests.Pagination) (*requests.Pager, error) {
func (m *mediasModel) List(ctx context.Context, pagination *requests.Pagination, expr BoolExpression) (*requests.Pager, error) {
pagination.Format()
tbl := table.Medias
stmt := tbl.
SELECT(tbl.AllColumns).
WHERE(expr).
ORDER_BY(tbl.ID.DESC()).
LIMIT(pagination.Limit).
OFFSET(pagination.Offset)
@@ -81,7 +98,7 @@ func (m *mediasModel) List(ctx context.Context, pagination *requests.Pagination)
return nil, err
}
count, err := m.countByCondition(ctx, Bool(true))
count, err := m.countByCondition(ctx, expr)
if err != nil {
m.log.Errorf("error getting media count: %v", err)
return nil, err