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.

47 lines
1.4 KiB
Go

11 months ago
package system
import (
"gorm.io/gorm"
"miniapp/global"
"miniapp/model/app"
11 months ago
"miniapp/model/common"
"miniapp/model/common/request"
)
type ArticleService struct{}
// GetArticleList 获取文章列表
func (a ArticleService) GetArticleList(p request.PageInfo) (list []common.Article, total int64, err error) {
err = global.GVA_DB.Scopes(Page(p.Page, p.PageSize)).Find(&list).Offset(-1).Limit(-1).Count(&total).Error
return
}
// CreateArticle 创建文章
func (a ArticleService) CreateArticle(article *common.Article) (err error) {
return global.GVA_DB.Create(&article).Error
}
// UpdateArticle 更新文章
func (a ArticleService) UpdateArticle(article *common.Article) (err error) {
return global.GVA_DB.Updates(&article).Error
}
// DeleteArticle 删除文章
func (a ArticleService) DeleteArticle(article *common.Article) (err error) {
return global.GVA_DB.Delete(&article).Error
}
// GetArticleById 根据id获取文章
func (a ArticleService) GetArticleById(id, userId string) (article *common.Article, err error) {
11 months ago
err = global.GVA_DB.Where("id = ?", id).First(&article).Error
err = global.GVA_DB.Table("articles").Where("id = ?", id).Update("reading_num", gorm.Expr("reading_num + ?", 1)).Error
// 判断是否收藏
var favorite app.Favorite
err = global.GVA_DB.Where("wz_id = ? AND user_id = ?", id, userId).First(&favorite).Error
if favorite.ID != 0 {
article.IsFavorite = 1
}
11 months ago
return
}