package free_trial import ( "cls/internal/domain/article" "cls/internal/domain/free_trial" "cls/pkg/logger" "time" ) // FreeTrialService 免费试读服务 type FreeTrialService struct { repo free_trial.FreeTrialRepository articleService article.ArticleRepository log logger.Logger } // NewFreeTrialService 创建免费试读服务 func NewFreeTrialService(repo free_trial.FreeTrialRepository, articleService article.ArticleRepository, log logger.New) *FreeTrialService { return &FreeTrialService{ repo: repo, articleService: articleService, log: log("cls:service:free_trial"), } } func (f *FreeTrialService) SaveFreeTrial(dto *FreeTrialDto) error { articleData, err := f.articleService.GetArticleById(dto.Fid) if err != nil { f.log.Error(err) return err } t := time.Unix(articleData.Ctime, 0) // 秒数和纳秒数,0 表示没有纳秒部分 err = f.repo.Save(&free_trial.FreeTrial{ ArticleID: articleData.Id, AdminID: dto.Adid, Ctime: t, }) if err != nil { f.log.Error(err) } return err }