Ai
0 Star 0 Fork 0

one_love/blog-service

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
article.go 4.43 KB
一键复制 编辑 原始数据 按行查看 历史
one_love 提交于 2022-07-17 21:20 +08:00 . 修正之前存在的错误~
package service
import (
"gitee.com/one_love/blog-service/internal/dao"
"gitee.com/one_love/blog-service/internal/model"
"gitee.com/one_love/blog-service/pkg/app"
)
type Article struct {
Id uint32 `json:"id"`
Title string `json:"title"`
Desc string `json:"desc"`
Content string `json:"content"`
CoverImageUrl string `json:"cover_image_url"`
State uint8 `json:"state"`
Tag *model.Tag `json:"tag"`
}
type ArticleListRequest struct { //根据tag_id获取Article列表
Id uint32 `form:"tag_id" binding:"required,gte=1"`
State uint8 `form:"state,default=1" binding:"oneof=0 1"`
}
type ArticleRequest struct {
Id uint32 `form:"id" binding:"required,gte=1"`
State uint8 `form:"state,default=1" binding:"oneof=0 1"`
}
type CreateArticleRequest struct {
TagId uint32 `form:"tag_id" binding:"required,gte=1"`
Desc string `form:"desc" binding:"required,min=2,max=255"`
Content string `form:"content" binding:"required,min=2,max=4294967295"`
CoverImageUrl string `form:"cover_image_url" binding:"required,url"`
CreatedBy string `form:"created_by" binding:"required,min=2,max=100"`
State uint8 `form:"state,default=1" binding:"oneof=0 1"`
Title string `form:"title" binding:"required,min=2,max=100"`
}
type UpdateArticleRequest struct {
Id uint32 `form:"id" binding:"required,gte=1"`
TagId uint32 `form:"tag_id" binding:"required,gte=1"`
Title string `form:"title"`
Desc string `form:"desc"`
Content string `form:"content"`
CoverImageUrl string `form:"cover_image_url"`
ModifiedBy string `form:"modified_by" binding:"required,min=2,max=100"`
State uint8 `form:"state,default=1" binding:"oneof=0 1"`
}
type DeleteArticleRequest struct {
Id uint32 `form:"id" binding:"required,gte=1"`
}
func (svc *Service) GetArticle(param *ArticleRequest) (*Article, error) { //service层逻辑!!
article, err := svc.dao.GetArticle(param.Id, param.State)
if err != nil {
return nil, err
}
articleTag, err := svc.dao.GetArticleTagByAID(param.Id)
if err != nil {
return nil, err
}
tag, err := svc.dao.GetTag(articleTag.TagId, model.STATE_OPEN)
if err != nil {
return nil, err
}
return &Article{
Id: article.Id,
Title: article.Title,
Desc: article.Desc,
Content: article.Content,
CoverImageUrl: article.CoverImageUrl,
State: article.State,
Tag: &tag,
}, nil
}
func (svc *Service) GetArticleList(param *ArticleListRequest, pager *app.Pager) ([]*Article, int, error) { //返回文章列表,总数,err
count, err := svc.dao.CountArticleListByTagID(param.Id, param.State)
if err != nil {
return nil, 0, err
}
articles, err := svc.dao.GetArticleListByTagID(param.Id, param.State, pager.Page, pager.PageSize)
if err != nil {
return nil, 0, err
}
var articalList []*Article
for _, article := range articles {
articalList = append(articalList, &Article{
Id: article.ArticleId,
Title: article.ArticleTitle,
Desc: article.ArticleDesc,
Content: article.Content,
CoverImageUrl: article.CoverImageUrl,
Tag: &model.Tag{Model: &model.Model{Id: article.TagId}, Name: article.TagName},
})
}
return articalList, count, nil
}
func (svc *Service) CreateArticle(param *CreateArticleRequest) error {
article, err := svc.dao.CreateArticle(&dao.Article{ //创建文章
Title: param.Title,
Desc: param.Desc,
Content: param.Content,
CoverImageUrl: param.CoverImageUrl,
State: param.State,
CreatedBy: param.CreatedBy,
})
if err != nil {
return err
}
err = svc.dao.CreateArticleTag(article.Id, param.TagId, article.CreatedBy) //创建文章标签对应
if err != nil {
return err
}
return nil
}
func (svc *Service) UpdateArticle(param *UpdateArticleRequest) error {
err := svc.dao.UpdateArticle(&dao.Article{
Id: param.Id,
TagId: param.TagId,
Title: param.Title,
Desc: param.Desc,
Content: param.Content,
CoverImageUrl: param.CoverImageUrl,
State: param.State,
ModifiedBy: param.ModifiedBy,
})
if err != nil {
return err
}
return nil
}
func (svc *Service) DeleteArticle(param *DeleteArticleRequest) error {
err := svc.dao.DeleteArticle(param.Id)
if err != nil {
return err
}
err = svc.dao.DeleteArticleTag(param.Id)
if err != nil {
return err
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/one_love/blog-service.git
git@gitee.com:one_love/blog-service.git
one_love
blog-service
blog-service
b40c837dd65d

搜索帮助