🎨 优化文章相关接口,新增app专用接口
This commit is contained in:
@@ -2,8 +2,11 @@ package article
|
||||
|
||||
import (
|
||||
"git.echol.cn/loser/lckt/global"
|
||||
"git.echol.cn/loser/lckt/model/app"
|
||||
"git.echol.cn/loser/lckt/model/article"
|
||||
"git.echol.cn/loser/lckt/model/article/request"
|
||||
"git.echol.cn/loser/lckt/model/article/vo"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type ArticleService struct{}
|
||||
@@ -39,3 +42,64 @@ func (ArticleService) GetArticleList(pageInfo request.GetList) (list []article.A
|
||||
err = db.Limit(limit).Offset(offset).Find(&list).Error
|
||||
return
|
||||
}
|
||||
|
||||
func (s ArticleService) APPGetArticleList(pageInfo request.GetList) (list []vo.ArticleListVo, total int64, err error) {
|
||||
limit := pageInfo.PageSize
|
||||
offset := pageInfo.PageSize * (pageInfo.Page - 1)
|
||||
|
||||
db := global.GVA_DB.Model(&article.Article{})
|
||||
err = db.Count(&total).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if pageInfo.Title != "" {
|
||||
db = db.Where("title LIKE ?", "%"+pageInfo.Title+"%")
|
||||
}
|
||||
if pageInfo.CategoryId != 0 {
|
||||
db = db.Where("category_id = ?", pageInfo.CategoryId)
|
||||
}
|
||||
if pageInfo.TeacherId != 0 {
|
||||
db = db.Where("teacher_id = ?", pageInfo.TeacherId)
|
||||
}
|
||||
|
||||
if pageInfo.Keyword != "" {
|
||||
db = db.Where("title LIKE ? OR article.desc LIKE ? OR teacher_name LIKE ?", "%"+pageInfo.Keyword+"%", "%"+pageInfo.Keyword+"%", "%"+pageInfo.Keyword+"%")
|
||||
}
|
||||
|
||||
err = db.Limit(limit).Offset(offset).Omit("teacher_avatar").Order("created_at desc").Find(&list).Error
|
||||
for i, a := range list {
|
||||
global.GVA_DB.Table("app_user").Select("avatar").Where("id = ?", a.TeacherId).Scan(&list[i].TeacherAvatar)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (s ArticleService) APPGetArticle(id string, userId uint) (article vo.ArticleVo, err error) {
|
||||
err = global.GVA_DB.Table("article").Where("id = ?", id).First(&article).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取文章失败", zap.Error(err))
|
||||
return
|
||||
}
|
||||
article.IsBuy = 1 // 设置为已购买
|
||||
|
||||
global.GVA_DB.Table("app_user").Select("avatar").Where("id = ?", article.TeacherId).Scan(&article.TeacherAvatar)
|
||||
|
||||
// 判断是否免费
|
||||
if article.IsFree == 0 {
|
||||
// 如果不是免费文章,判断用户是否购买过
|
||||
var count int64
|
||||
err = global.GVA_DB.Model(&app.Order{}).Where("article_id = ? AND user_id = ?", id, userId).Count(&count).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询用户购买记录失败", zap.Error(err))
|
||||
return
|
||||
}
|
||||
if count == 0 {
|
||||
// 用户没有购买过,隐藏Content
|
||||
article.Content = ""
|
||||
article.IsBuy = 0 // 设置为未购买
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user