代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。