2025-10-27 23:13:08 +08:00

409 lines
9.1 KiB
Go

package controllers
import (
"encoding/json"
"server/models"
beego "github.com/beego/beego/v2/server/web"
)
// ProgramCategoryController 处理程序分类相关请求
type ProgramCategoryController struct {
beego.Controller
}
// GetProgramCategoriesPublic 不需要认证的获取所有程序分类接口
func (c *ProgramCategoryController) GetProgramCategoriesPublic() {
// fmt.Println("调用了不需要认证的GetProgramCategoriesPublic接口")
categories, err := models.GetAllProgramCategories()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取程序分类失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序分类成功",
"data": categories,
}
}
c.ServeJSON()
}
// ProgramInfoController 处理程序信息相关请求
type ProgramInfoController struct {
beego.Controller
}
// GetProgramInfosPublic 不需要认证的获取所有程序信息接口
func (c *ProgramInfoController) GetProgramInfosPublic() {
// fmt.Println("调用了不需要认证的GetProgramInfosPublic接口")
programs, err := models.GetAllProgramInfos()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序信息成功",
"data": programs,
}
}
c.ServeJSON()
}
// ==================== 程序分类相关接口 ====================
// GetAllProgramCategories 获取所有程序分类
func (c *ProgramCategoryController) GetAllProgramCategories() {
categories, err := models.GetAllProgramCategories()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取程序分类失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序分类成功",
"data": categories,
}
}
c.ServeJSON()
}
// GetProgramCategoryById 根据ID获取程序分类
func (c *ProgramCategoryController) GetProgramCategoryById() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
category, err := models.GetProgramCategoryById(id)
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "程序分类不存在",
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序分类成功",
"data": category,
}
}
c.ServeJSON()
}
// CreateProgramCategory 创建新程序分类
func (c *ProgramCategoryController) CreateProgramCategory() {
var category models.ProgramCategory
// 解析请求体
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &category); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "请求参数错误",
"error": err.Error(),
}
c.ServeJSON()
return
}
// 添加程序分类
if _, err := models.AddProgramCategory(&category); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "创建程序分类失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "创建程序分类成功",
"data": category,
}
}
c.ServeJSON()
}
// UpdateProgramCategory 更新程序分类
func (c *ProgramCategoryController) UpdateProgramCategory() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
var category models.ProgramCategory
category.CategoryId = id
// 解析请求体
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &category); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "请求参数错误",
"error": err.Error(),
}
c.ServeJSON()
return
}
// 更新程序分类
if err := models.UpdateProgramCategory(&category); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "更新程序分类失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "更新程序分类成功",
"data": category,
}
}
c.ServeJSON()
}
// DeleteProgramCategory 删除程序分类
func (c *ProgramCategoryController) DeleteProgramCategory() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
// 删除程序分类
if err := models.DeleteProgramCategory(id); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "删除程序分类失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "删除程序分类成功",
}
}
c.ServeJSON()
}
// ==================== 程序信息相关接口 ====================
// GetAllProgramInfos 获取所有程序信息
func (c *ProgramInfoController) GetAllProgramInfos() {
programs, err := models.GetAllProgramInfos()
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序信息成功",
"data": programs,
}
}
c.ServeJSON()
}
// GetProgramInfoById 根据ID获取程序信息
func (c *ProgramInfoController) GetProgramInfoById() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
program, err := models.GetProgramInfoById(id)
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "程序信息不存在",
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序信息成功",
"data": program,
}
}
c.ServeJSON()
}
// CreateProgramInfo 创建新程序信息
func (c *ProgramInfoController) CreateProgramInfo() {
var program models.ProgramInfo
// 解析请求体
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &program); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "请求参数错误",
"error": err.Error(),
}
c.ServeJSON()
return
}
// 添加程序信息
if _, err := models.AddProgramInfo(&program); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "创建程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "创建程序信息成功",
"data": program,
}
}
c.ServeJSON()
}
// UpdateProgramInfo 更新程序信息
func (c *ProgramInfoController) UpdateProgramInfo() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
var program models.ProgramInfo
program.ProgramId = id
// 解析请求体
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &program); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "请求参数错误",
"error": err.Error(),
}
c.ServeJSON()
return
}
// 更新程序信息
if err := models.UpdateProgramInfo(&program); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "更新程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "更新程序信息成功",
"data": program,
}
}
c.ServeJSON()
}
// DeleteProgramInfo 删除程序信息
func (c *ProgramInfoController) DeleteProgramInfo() {
id, err := c.GetInt(":id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
// 删除程序信息
if err := models.DeleteProgramInfo(id); err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "删除程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "删除程序信息成功",
}
}
c.ServeJSON()
}
// GetProgramInfosByCategoryId 根据分类ID获取程序信息
func (c *ProgramInfoController) GetProgramInfosByCategoryId() {
categoryId, err := c.GetInt(":category_id")
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "参数错误",
}
c.ServeJSON()
return
}
programs, err := models.GetProgramInfosByCategoryId(categoryId)
if err != nil {
c.Data["json"] = map[string]interface{}{
"success": false,
"message": "获取程序信息失败",
"error": err.Error(),
}
} else {
c.Data["json"] = map[string]interface{}{
"success": true,
"message": "获取程序信息成功",
"data": programs,
}
}
c.ServeJSON()
}