lckt-server/api/v1/article/article.go
2025-04-09 12:17:33 +08:00

91 lines
2.3 KiB
Go

package article
import (
"git.echol.cn/loser/lckt/global"
"git.echol.cn/loser/lckt/model/article"
"git.echol.cn/loser/lckt/model/article/request"
r "git.echol.cn/loser/lckt/model/common/response"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type ArticleApi struct{}
func (ArticleApi) Create(ctx *gin.Context) {
var p article.Article
if err := ctx.ShouldBind(&p); err != nil {
r.FailWithMessage(err.Error(), ctx)
global.GVA_LOG.Error("参数有误!", zap.Error(err))
return
}
err := articleService.CreateArticle(p)
if err != nil {
global.GVA_LOG.Error("创建失败!", zap.Error(err))
r.FailWithMessage("创建失败:"+err.Error(), ctx)
return
}
r.OkWithMessage("创建成功", ctx)
}
func (ArticleApi) Delete(ctx *gin.Context) {
var ids request.DeleteIds
if err := ctx.ShouldBind(&ids); err != nil {
r.FailWithMessage(err.Error(), ctx)
global.GVA_LOG.Error("参数有误!", zap.Error(err))
return
}
err := articleService.DeleteArticle(ids)
if err != nil {
global.GVA_LOG.Error("删除失败!", zap.Error(err))
r.FailWithMessage("删除失败:"+err.Error(), ctx)
return
}
r.OkWithMessage("删除成功", ctx)
}
func (ArticleApi) Update(ctx *gin.Context) {
var p article.Article
if err := ctx.ShouldBind(&p); err != nil {
r.FailWithMessage(err.Error(), ctx)
global.GVA_LOG.Error("参数有误!", zap.Error(err))
return
}
err := articleService.UpdateArticle(p)
if err != nil {
global.GVA_LOG.Error("更新失败!", zap.Error(err))
r.FailWithMessage("更新失败:"+err.Error(), ctx)
return
}
r.OkWithMessage("更新成功", ctx)
}
func (ArticleApi) List(ctx *gin.Context) {
var p request.GetList
if err := ctx.ShouldBind(&p); err != nil {
r.FailWithMessage(err.Error(), ctx)
global.GVA_LOG.Error("参数有误!", zap.Error(err))
return
}
list, total, err := articleService.GetArticleList(p)
if err != nil {
global.GVA_LOG.Error("查询失败!", zap.Error(err))
r.FailWithMessage("查询失败:"+err.Error(), ctx)
return
}
r.OkWithDetailed(gin.H{"list": list, "total": total}, "查询成功", ctx)
}
// ById 根据ID获取文章
func (ArticleApi) ById(ctx *gin.Context) {
id := ctx.Param("id")
article, err := articleService.GetArticle(id)
if err != nil {
global.GVA_LOG.Error("查询失败!", zap.Error(err))
r.FailWithMessage("查询失败:"+err.Error(), ctx)
return
}
r.OkWithData(article, ctx)
}