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 }