You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.3 KiB
Go

package column
import (
"cls-server/internal/domain/column"
"cls-server/pkg/logger"
"cls-server/pkg/util/page"
"cls-server/pkg/web"
"errors"
)
var (
ErrInvalidTitle = errors.New("标题不能为空")
ErrNotFound = errors.New("专栏不存在")
ErrInvalidPage = errors.New("无效的分页参数")
)
// Service 专栏应用服务
type Service struct {
repo column.ColumnRepository
log logger.Logger
}
// NewService 创建专栏服务
func NewService(repo column.ColumnRepository, log logger.New) *Service {
return &Service{
repo: repo,
log: log("cls:service:column"),
}
}
// GetColumnList 获取专栏列表
func (s *Service) GetColumnList(p *page.Page, params map[string]string) error {
conds := web.ParseFilters(params)
cols := make([]*column.Column, 0)
p.Content = &cols
if err := s.repo.FindAll(p, conds); err != nil {
s.log.Error("failed to find columns", "error", err)
return err
}
p.Content = ToDtoList(cols)
return nil
}
func (s *Service) UpdateColumn(dto *ColumnDto) error {
columnData := &column.Column{
ID: dto.ID,
Title: dto.Title,
Brief: dto.Brief,
FollowNum: dto.FollowNum,
PurchaseNum: dto.PurchaseNum,
}
err := s.repo.Update(columnData)
if err != nil {
s.log.Error(err)
}
return err
}