mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-07 09:01:18 +08:00
68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package article_collect
|
|
|
|
import (
|
|
"x_admin/core"
|
|
"x_admin/core/request"
|
|
"x_admin/core/response"
|
|
"x_admin/model"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type IArticleCollectService interface {
|
|
List(page request.PageReq, listReq ArticleCollectListReq) (res response.PageResp, e error)
|
|
Detail(id int) (res ArticleCollectResp, e error)
|
|
Add(addReq ArticleCollectAddReq) (e error)
|
|
Edit(editReq ArticleCollectEditReq) (e error)
|
|
Del(id int) (e error)
|
|
}
|
|
|
|
var Service = NewArticleCollectService()
|
|
|
|
// NewArticleCollectService 初始化
|
|
func NewArticleCollectService() ArticleCollectService {
|
|
db := core.GetDB()
|
|
return ArticleCollectService{db: db}
|
|
}
|
|
|
|
// ArticleCollectService 文章收藏服务实现类
|
|
type ArticleCollectService struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
// List 文章收藏列表
|
|
func (Service ArticleCollectService) List(page request.PageReq, listReq ArticleCollectListReq) (res response.PageResp, e error) {
|
|
// 分页信息
|
|
limit := page.PageSize
|
|
offset := page.PageSize * (page.PageNo - 1)
|
|
// 查询
|
|
dbModel := Service.db.Model(&model.ArticleCollect{})
|
|
if listReq.UserId > 0 {
|
|
dbModel = dbModel.Where("user_id = ?", listReq.UserId)
|
|
}
|
|
if listReq.ArticleId > 0 {
|
|
dbModel = dbModel.Where("article_id = ?", listReq.ArticleId)
|
|
}
|
|
dbModel = dbModel.Where("is_delete = ?", 0)
|
|
// 总数
|
|
var count int64
|
|
err := dbModel.Count(&count).Error
|
|
if e = response.CheckErr(err, "列表总数获取失败"); e != nil {
|
|
return
|
|
}
|
|
// 数据
|
|
var objs []model.ArticleCollect
|
|
err = dbModel.Limit(limit).Offset(offset).Order("id desc").Find(&objs).Error
|
|
if e = response.CheckErr(err, "列表获取失败"); e != nil {
|
|
return
|
|
}
|
|
resps := []ArticleCollectResp{}
|
|
response.Copy(&resps, objs)
|
|
return response.PageResp{
|
|
PageNo: page.PageNo,
|
|
PageSize: page.PageSize,
|
|
Count: count,
|
|
Lists: resps,
|
|
}, nil
|
|
}
|