master
Han Joker 3 months ago
parent 8f8e84ef94
commit 764eab9271

@ -1,30 +1,170 @@
package tag
import (
"cmsDemo/models"
"cmsDemo/utils"
"fmt"
"github.com/gin-gonic/gin"
"log"
"net/http"
)
func Post(ctx *gin.Context) {
// 1.解析请求主体数据
tag := models.Tag{}
if err := ctx.ShouldBind(&tag); err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 1,
"message": "数据绑定失败",
})
return
}
// 2.数据入库
if err := utils.DB.Create(&tag).Error; err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 2,
"message": "tag数据入库失败",
})
return
}
// 3.响应
ctx.JSON(http.StatusOK, gin.H{
"message": "tag post",
"error": 0,
"data": tag,
})
}
type DeleteReq struct {
IDs []uint `form:"ids"`
}
func Delete(ctx *gin.Context) {
// 1. 解析id值
req := DeleteReq{}
if err := ctx.ShouldBindQuery(&req); err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 1,
"message": "数据绑定失败",
})
return
}
// 2. 数据库删除
result := utils.DB.Delete(&models.Tag{}, req.IDs)
if err := result.Error; err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 2,
"message": "数据删除失败",
})
return
}
// 3.响应
ctx.JSON(http.StatusOK, gin.H{
"message": "tag delete",
"error": 0,
"message": fmt.Sprintf("删除了%d条", result.RowsAffected),
})
}
func Put(ctx *gin.Context) {
// 1.解析请求主体数据
tag := models.Tag{}
if err := ctx.ShouldBind(&tag); err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 1,
"message": "数据绑定失败",
})
return
}
// 2.数据入库
if err := utils.DB.Debug().Updates(&tag).Error; err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 2,
"message": "tag数据入库失败",
})
return
}
// 3.响应
utils.DB.First(&tag, tag.ID)
ctx.JSON(http.StatusOK, gin.H{
"message": "tag put",
"error": 0,
"data": tag,
})
}
type GetReq struct {
ID uint `form:"id"`
Keyword string `form:"keyword"`
}
//type GetResp struct {
// Error int `json:"error"`
// Message string `json:"message"`
// Data any `json:"data"`
//}
func Get(ctx *gin.Context) {
ctx.JSON(http.StatusOK, gin.H{
"message": "tag get",
})
// 1. 解析id值
req := GetReq{}
if err := ctx.ShouldBindQuery(&req); err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 1,
"message": "数据绑定失败",
})
return
}
// 2. 数据库查询
if req.ID != 0 { // 查询单条
tag := models.Tag{}
if err := utils.DB.First(&tag, req.ID).Error; err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 2,
"message": "数据查询失败",
})
return
}
// 3.响应
ctx.JSON(http.StatusOK, gin.H{
"data": tag,
})
} else { // 查询列表
query := utils.DB.Model(&models.Tag{})
// filter
if req.Keyword != "" {
query.Where("title LIKE ?", "%"+req.Keyword+"%")
}
// pager
// order
// 还应该有翻页,排序等
// 执行查询
var tags []models.Tag
if err := query.Find(&tags).Error; err != nil {
log.Println(err)
ctx.JSON(http.StatusOK, gin.H{
"error": 2,
"message": "数据查询失败",
})
return
}
// 3.响应
ctx.JSON(http.StatusOK, gin.H{
"error": 0,
"data": tags,
})
}
}

Loading…
Cancel
Save