🎨 优化文章上传接口

This commit is contained in:
2025-10-11 16:14:30 +08:00
parent d593476c51
commit 4fc979aaad
4 changed files with 53 additions and 8 deletions

View File

@@ -14,7 +14,7 @@ import (
type ArticleApi struct{} type ArticleApi struct{}
func (ArticleApi) Create(ctx *gin.Context) { func (ArticleApi) Create(ctx *gin.Context) {
var p article.Article var p request.CreateArticle
if err := ctx.ShouldBind(&p); err != nil { if err := ctx.ShouldBind(&p); err != nil {
r.FailWithMessage(err.Error(), ctx) r.FailWithMessage(err.Error(), ctx)
global.GVA_LOG.Error("参数有误!", zap.Error(err)) global.GVA_LOG.Error("参数有误!", zap.Error(err))

View File

@@ -1,6 +1,8 @@
package request package request
import "git.echol.cn/loser/lckt/model/common/request" import (
"git.echol.cn/loser/lckt/model/common/request"
)
type GetList struct { type GetList struct {
request.PageInfo request.PageInfo
@@ -26,4 +28,19 @@ type BulkUpload struct {
// 发布时间 // 发布时间
PublishTime string `json:"publishTime" form:"publishTime"` // 发布时间 PublishTime string `json:"publishTime" form:"publishTime"` // 发布时间
IsFree *int `json:"isFree" form:"isFree"` // 是否免费 IsFree *int `json:"isFree" form:"isFree"` // 是否免费
FreeTime string `json:"freeTime" form:"freeTime"` // 设置为免费时,免费时间段
}
type CreateArticle struct {
Title string `json:"title" form:"title" binding:"required"`
Desc string `json:"desc" form:"desc" binding:"required"`
Content string `json:"content" form:"content" binding:"required"`
CoverImg string `json:"coverImg" form:"coverImg" binding:"required"`
TeacherId int `json:"teacherId" form:"teacherId" binding:"required"`
TeacherName string `json:"teacherName" form:"teacherName" binding:"required"`
Price int64 `json:"price" form:"price" binding:"required"` // 价格,单位分
IsFree *int `json:"isFree" form:"isFree"` // 是否免费 0-否 1-是
// 分类ID
CategoryId int `json:"categoryId" form:"categoryId" binding:"required"` // 分类ID
PublishTime string `json:"publishTime" form:"publishTime"` // 发布时间
} }

View File

@@ -8,10 +8,9 @@ import (
type ArticleRouter struct{} type ArticleRouter struct{}
// InitBotRouter 初始化 文章 路由信息 // InitBotRouter 初始化 文章 路由信息
func (s *ArticleRouter) InitBotRouter(Router *gin.RouterGroup, PublicRouter *gin.RouterGroup, AppRouter *gin.RouterGroup) { func (s *ArticleRouter) InitBotRouter(Router *gin.RouterGroup, AppRouter *gin.RouterGroup) {
articleRouter := Router.Group("article").Use(middleware.OperationRecord()) articleRouter := Router.Group("article").Use(middleware.OperationRecord())
articleRouterWithoutRecord := Router.Group("article") articleRouterWithoutRecord := Router.Group("article")
articleRouterWithoutAuth := PublicRouter.Group("article")
appRouter := AppRouter.Group("article") appRouter := AppRouter.Group("article")
{ {
articleRouter.POST("", artApi.Create) // 新建文章 articleRouter.POST("", artApi.Create) // 新建文章
@@ -26,8 +25,8 @@ func (s *ArticleRouter) InitBotRouter(Router *gin.RouterGroup, PublicRouter *gin
} }
{ {
articleRouterWithoutAuth.GET("app/list", artApi.APPGetList) // 文章公开接口 appRouter.GET("app/list", artApi.APPGetList) // 文章公开接口
articleRouterWithoutAuth.GET("app/:id", artApi.AppById) // 文章开放接口 appRouter.GET("app/:id", artApi.AppById) // 文章开放接口
} }
{ {
// App端文章相关接口 // App端文章相关接口

View File

@@ -15,8 +15,31 @@ import (
type ArticleService struct{} type ArticleService struct{}
func (ArticleService) CreateArticle(req article.Article) (err error) { func (ArticleService) CreateArticle(req request.CreateArticle) (err error) {
err = global.GVA_DB.Create(&req).Error // 将 p.PublishTime转为time.time类型
loc, _ := time.LoadLocation("Asia/Shanghai")
publishTime, _ := time.ParseInLocation("2006-01-02 15:04:05", req.PublishTime, loc)
status := 2
if req.PublishTime == "" {
status = 1 // 如果没有设置发布时间,默认立即发布
}
model := article.Article{
Title: req.Title,
Desc: req.Desc,
CategoryId: req.CategoryId,
TeacherId: req.TeacherId,
TeacherName: req.TeacherName,
CoverImg: req.CoverImg,
Content: req.Content,
IsFree: req.IsFree,
Price: req.Price,
PublishTime: &publishTime,
Status: status,
}
err = global.GVA_DB.Create(&model).Error
return return
} }
@@ -287,6 +310,11 @@ func (s ArticleService) BulkUpload(p request.BulkUpload) (err error) {
loc, _ := time.LoadLocation("Asia/Shanghai") loc, _ := time.LoadLocation("Asia/Shanghai")
publishTime, _ := time.ParseInLocation("2006-01-02 15:04:05", p.PublishTime, loc) publishTime, _ := time.ParseInLocation("2006-01-02 15:04:05", p.PublishTime, loc)
status := 2
if p.PublishTime == "" {
status = 1 // 如果没有设置发布时间,默认立即发布
}
articles = append(articles, article.Article{ articles = append(articles, article.Article{
Title: teacher.NickName + "--" + p.Title, Title: teacher.NickName + "--" + p.Title,
Desc: p.Desc, Desc: p.Desc,
@@ -298,6 +326,7 @@ func (s ArticleService) BulkUpload(p request.BulkUpload) (err error) {
IsFree: p.IsFree, IsFree: p.IsFree,
Price: int64(p.Price), Price: int64(p.Price),
PublishTime: &publishTime, PublishTime: &publishTime,
Status: status,
}) })
} }