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.

44 lines
1.1 KiB
Go

1 month ago
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
}