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.
|
|
|
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
|
|
|
|
}
|