🎨 新增获取已购课程接口&
This commit is contained in:
@@ -141,3 +141,36 @@ func (s ArticleService) GetMyArticleList(req request.GetList) (list []article.Ar
|
||||
err = db.Limit(limit).Offset(offset).Find(&list).Error
|
||||
return list, total, err
|
||||
}
|
||||
|
||||
func (s ArticleService) GetBuyList(p request.GetList) (articles []article.Article, total int64, err error) {
|
||||
buyIds := make([]int, 0)
|
||||
// 获取用户购买的文章ID列表
|
||||
err = global.GVA_DB.Model(&app.Order{}).Where("user_id = ? AND status = 2", p.UserId).Select("article_id").Find(&buyIds).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询用户购买记录失败", zap.Error(err))
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
if len(buyIds) == 0 {
|
||||
// 如果没有购买记录,直接返回空列表
|
||||
return []article.Article{}, 0, nil
|
||||
}
|
||||
|
||||
db := global.GVA_DB.Model(&article.Article{}).Where("id IN ?", buyIds)
|
||||
if p.Title != "" {
|
||||
db = db.Where("title LIKE ?", "%"+p.Title+"%")
|
||||
}
|
||||
|
||||
err = db.Count(&total).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询购买文章总数失败", zap.Error(err))
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
err = db.Limit(p.PageSize).Offset(p.PageSize * (p.Page - 1)).Find(&articles).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询购买文章列表失败", zap.Error(err))
|
||||
return nil, 0, err
|
||||
}
|
||||
return articles, total, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user