Files
sundynix-radio-be/api/v1/radio/category.go
T
2026-03-03 17:09:37 +08:00

179 lines
4.7 KiB
Go

package radio
import (
"sundynix-go/global"
common "sundynix-go/model/commom/request"
"sundynix-go/model/commom/response"
"sundynix-go/model/radio/request"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type CategoryApi struct{}
// GetCategoryPage 获取分类列表
// @Tags 分类管理
// @Summary 获取分类列表
// @Accept application/json
// @Produce application/json
// @Param data body request.GetCategoryList true "分页查询"
// @Success 200 {object} response.Response
// @Router /radio/category/page [post]
func (a *CategoryApi) GetCategoryPage(c *gin.Context) {
var req request.GetCategoryList
err := c.ShouldBindJSON(&req)
if err != nil {
response.FailWithMsg("参数错误: "+err.Error(), c)
return
}
list, total, err := categoryService.GetCategoryList(req)
if err != nil {
global.Logger.Error("获取分类列表失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithData(response.PageResult{
List: list,
Total: total,
Page: req.Current,
PageSize: req.PageSize,
}, c)
}
// GetCategoryTree 获取分类tree
// @Tags 分类管理
// @Summary 获取分类列表
// @Accept application/json
// @Produce application/json
// @Success 200 {object} response.Response
// @Router /radio/category/tree [get]
func (a *CategoryApi) GetCategoryTree(c *gin.Context) {
list, err := categoryService.GetCategoryTree()
if err != nil {
global.Logger.Error("获取分类列表失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithData(response.ListResult{
List: list,
}, c)
}
// GetCategoryList 获取分类列表
// @Tags 分类管理
// @Summary 获取分类列表
// @Produce application/json
// @Success 200 {object} response.Response
// @Router /radio/category/list [get]
func (a *CategoryApi) GetCategoryList(c *gin.Context) {
list, err := categoryService.GetAllCategory()
if err != nil {
global.Logger.Error("获取分类列表失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithData(response.ListResult{
List: list,
}, c)
}
// GetCategoryDetail 获取分类详情
// @Tags 分类管理
// @Summary 获取分类详情
// @Produce application/json
// @Param id query string true "分类ID"
// @Success 200 {object} response.Response
// @Router /radio/category/detail [get]
func (a *CategoryApi) GetCategoryDetail(c *gin.Context) {
id := c.Query("id")
if id == "" {
response.FailWithMsg("参数错误: id不能为空", c)
return
}
category, err := categoryService.GetCategoryById(id)
if err != nil {
global.Logger.Error("获取分类详情失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithData(category, c)
}
// SaveCategory 保存分类
// @Tags 分类管理
// @Summary 保存分类
// @Accept application/json
// @Produce application/json
// @Param data body request.SaveCategory true "分类信息"
// @Success 200 {object} response.Response
// @Router /radio/category/save [post]
func (a *CategoryApi) SaveCategory(c *gin.Context) {
var req request.SaveCategory
err := c.ShouldBindJSON(&req)
if err != nil {
response.FailWithMsg("参数错误: "+err.Error(), c)
return
}
if err := categoryService.SaveCategory(req); err != nil {
global.Logger.Error("保存分类失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithMsg("保存成功", c)
}
// UpdateCategory 更新分类
// @Tags 分类管理
// @Summary 更新分类
// @Accept application/json
// @Produce application/json
// @Param data body request.UpdateCategory true "Success 200 {分类信息"
// @object} response.Response
// @Router /radio/category/update [post]
func (a *CategoryApi) UpdateCategory(c *gin.Context) {
var req request.UpdateCategory
err := c.ShouldBindJSON(&req)
if err != nil {
response.FailWithMsg("参数错误: "+err.Error(), c)
return
}
if err := categoryService.UpdateCategory(req); err != nil {
global.Logger.Error("更新分类失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithMsg("更新成功", c)
}
// DeleteCategory 删除分类
// @Tags 分类管理
// @Summary 删除分类
// @Produce application/json
// @Param data body common.GetById true "分类ID"
// @Success 200 {object} response.Response
// @Router /radio/category/delete [post]
func (a *CategoryApi) DeleteCategory(c *gin.Context) {
var req common.IdReq
err := c.ShouldBindJSON(&req)
if err != nil || req.Id == "" {
response.FailWithMsg("参数错误: id不能为空", c)
return
}
if err := categoryService.DeleteCategory(req.Id); err != nil {
global.Logger.Error("删除分类失败!", zap.Error(err))
response.FailWithMsg(err.Error(), c)
return
}
response.OkWithMsg("删除成功", c)
}