feat: 百科分类api

This commit is contained in:
Blizzard
2026-02-07 16:42:43 +08:00
parent 9adad90490
commit 15a25555c4
16 changed files with 379 additions and 12 deletions
+7 -3
View File
@@ -6,10 +6,14 @@ type ApiGroup struct {
MyPlantApi
TopicApi
PostApi
WikiClassApi
WikiApi
}
var (
plantService = service.GroupApp.PlantServiceGroup.MyPlantService
topicService = service.GroupApp.PlantServiceGroup.TopicService
postService = service.GroupApp.PlantServiceGroup.PostService
plantService = service.GroupApp.PlantServiceGroup.MyPlantService
topicService = service.GroupApp.PlantServiceGroup.TopicService
postService = service.GroupApp.PlantServiceGroup.PostService
wikiClassService = service.GroupApp.PlantServiceGroup.WikiClassService
wikiService = service.GroupApp.PlantServiceGroup.WikiService
)
+3 -3
View File
@@ -77,8 +77,8 @@ func (a *TopicApi) TopicPage(c *gin.Context) {
}
list, total, err := topicService.TopicPage(req)
if err != nil {
global.Logger.Error("修改话题失败", zap.Error(err))
response.FailWithMsg("修改话题失败", c)
global.Logger.Error("分页话题失败", zap.Error(err))
response.FailWithMsg("分页话题失败", c)
return
}
response.OkWithData(response.PageResult{
@@ -127,7 +127,7 @@ func (a *TopicApi) TopicDetail(c *gin.Context) {
}
// DeleteTopic 删除植物
// DeleteTopic 删除话题
// @Tags 帖子话题
// @Summary 删除任务
// @Security BearerAuth
+3
View File
@@ -0,0 +1,3 @@
package plant
type WikiApi struct{}
+151
View File
@@ -0,0 +1,151 @@
package plant
import (
"sundynix-go/global"
"sundynix-go/model/commom/request"
"sundynix-go/model/commom/response"
plantReq "sundynix-go/model/plant/request"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type WikiClassApi struct{}
// AddClass 发布分类
// @Tags 百科分类
// @Summary 添加分类
// @Security BearerAuth
// @accept json
// @Produce application/json
// @Param data body plantReq.CreateWikiClass true "添加分类"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"发布成功"}"
// @Router /wiki-class/add [post]
func (a *WikiClassApi) AddClass(c *gin.Context) {
var req plantReq.CreateWikiClass
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMsg("请求参数错误", c)
return
}
err := wikiClassService.AddClass(req)
if err != nil {
global.Logger.Error("添加百科分类失败", zap.Error(err))
response.FailWithMsg("添加百科分类失败", c)
return
}
response.OkWithMsg("添加百科分类成功", c)
}
// UpdateClass 修改分类
// @Tags 百科分类
// @Summary 修改分类(可直接传入ossId修改图片)
// @Security BearerAuth
// @accept json
// @Produce application/json
// @Param data body lantReq.UpdateWikiClass true "修改分类"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"发布成功"}"
// @Router /wiki-class/update [post]
func (a *WikiClassApi) UpdateClass(c *gin.Context) {
var req plantReq.UpdateWikiClass
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMsg("请求参数错误", c)
return
}
err := wikiClassService.UpdateClass(req)
if err != nil {
global.Logger.Error("修改百科分类失败", zap.Error(err))
response.FailWithMsg("修改百科失败", c)
return
}
response.OkWithMsg("修改百科分类成功", c)
}
// ClassPage 百科分类列表
// @Tags 百科分类
// @Summary 分类分页
// @Security BearerAuth
// @accept json
// @Produce application/json
// @Param data body request.PageInfo true "分页获取分类列表"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /wiki-class/page [post]
func (a *WikiClassApi) ClassPage(c *gin.Context) {
var req request.PageInfo
if err := c.ShouldBindQuery(&req); err != nil {
response.FailWithMsg("请求参数错误", c)
return
}
list, total, err := wikiClassService.ClassPage(req)
if err != nil {
global.Logger.Error("分页分类失败", zap.Error(err))
response.FailWithMsg("分页分类失败", c)
return
}
response.OkWithData(response.PageResult{
List: list,
Total: total,
Page: req.Current,
PageSize: req.PageSize,
}, c)
}
// DeleteClass 删除分类
// @Tags 百科分类
// @Summary 删除分类
// @Security BearerAuth
// @accept json
// @Produce application/json
// @Param data body request.IdsReq true "删除分类"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /wiki-class/delete [post]
func (a *WikiClassApi) DeleteClass(c *gin.Context) {
var req request.IdsReq
err := c.ShouldBindJSON(&req)
if err != nil {
response.FailWithMsg("请求参数错误", c)
return
}
err = wikiClassService.DeleteClass(req)
if err != nil {
global.Logger.Error("删除分类失败", zap.Error(err))
response.FailWithMsg("删除分类失败", c)
}
response.OkWithMsg("删除分类成功", c)
}
// ClassList 分类列表
// @Tags 百科分类
// @Summary 分类列表
// @Security BearerAuth
// @Produce application/json
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /wiki-class/list [get]
func (a *WikiClassApi) ClassList(c *gin.Context) {
list, err := wikiClassService.ClassList()
if err != nil {
global.Logger.Error("获取分类列表失败", zap.Error(err))
response.FailWithMsg("获取分类列表失败", c)
return
}
response.OkWithData(response.ListResult{
List: list,
}, c)
}
// ClassDetail 话题详情
// @Tags 百科分类
// @Summary 分类详情
// @Security BearerAuth
// @Produce application/json
// @Param id query string true "id"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /wiki-class/detail [get]
func (a *WikiClassApi) ClassDetail(c *gin.Context) {
id := c.Query("id")
topic, err := wikiClassService.Detail(id)
if err != nil {
response.FailWithMsg("获取失败", c)
return
}
response.OkWithData(topic, c)
}