增加分类的错误码
╰─➤ utils/errmsg/errmsg.go
ERROR_CATANAME_USED = 2001
ERROR_CATANAME_USED: "该分类已经存在",
编写分类的model 逻辑,包涵增删改查
╰─➤ cat model/Category.go
package model
import (
"ginBlog/utils/errmsg"
"github.com/jinzhu/gorm"
)
type Category struct {
ID uint `gorm:"primary_key;auto_increment" json:"id"`
Name string `gorm:"type:varchar(20);not null" json:"name"`
}
// 查询分类是否存在
func CheckCate(name string) int {
var cate Category
db.Select("id").Where("name = ?", name).First(&cate)
if cate.ID > 0 {
return errmsg.ERROR_CATANAME_USED
}
return errmsg.SUCCESS
}
// 添加分类
func CreateCate(data *Category) int {
err := db.Create(&data).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
// 查询分类列表
func GetCates(pageSize int, pageNum int) []Category {
var cates []Category
err = db.Limit(pageSize).Offset((pageNum - 1) * pageSize).Find(&cates).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil
}
return cates
}
// 编辑分类信息
func EditCate(id int, data *Category) int {
var cate Category
var maps = make(map[string]interface{})
maps["name"] = data.Name
err = db.Model(&cate).Where("id = ?", id).Update(maps).Error
if err != nil{
return errmsg.ERROR
}
return errmsg.SUCCESS
}
// 删除分类
func DeleteCate(id int) int {
var cate Category
err = db.Where("id = ?", id).Delete(&cate).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
增加分类路由操作
╰─➤ cat api/v1/category.go
package v1
import (
"ginBlog/model"
"ginBlog/utils/errmsg"
"github.com/gin-gonic/gin"
"net/http"
"strconv"
)
// 添加分类
func AddCate(c *gin.Context) {
var data model.Category
_ = c.ShouldBindJSON(&data)
code := model.CheckCate(data.Name)
if code == errmsg.SUCCESS {
model.CreateCate(&data)
}
if code == errmsg.ERROR_CATANAME_USED {
code = errmsg.ERROR_CATANAME_USED
}
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 查询分类列表
func GetCates(c *gin.Context) {
pageSize,_ := strconv.Atoi(c.Query("pageSize"))
pageNum,_ := strconv.Atoi(c.Query("pageNum"))
if pageSize == 0 {
pageSize = -1
}
if pageNum == 0 {
pageNum = -1
}
data := model.GetCates(pageSize, pageNum)
code := errmsg.SUCCESS
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 编辑分类
func EditCate(c *gin.Context) {
var data model.Category
id,_ := strconv.Atoi(c.Param("id"))
c.ShouldBindJSON(&data)
code := model.CheckCate(data.Name)
if code == errmsg.SUCCESS{
model.EditCate(id, &data)
}
if code == errmsg.ERROR_CATANAME_USED {
c.Abort()
}
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 删除分类
func DeleteCate(c *gin.Context) {
id,_ := strconv.Atoi(c.Param("id"))
code := model.DeleteCate(id)
c.JSON(http.StatusOK, gin.H{
"ststus": code,
"message": errmsg.GetErrMsg(code),
})
}
注册路由
╰─➤ cat routers/router.go
// 分类 的路由接口
routerV1.POST("cate/add", v1.AddCate)
routerV1.GET("cates", v1.GetCates)
routerV1.PUT("cate/:id", v1.EditCate)
routerV1.DELETE("cate/:id", v1.DeleteCate)
运行并验证
go run main.go
添加分类
查看分类列表
编辑分类
删除分类
增加分类的错误码
╰─➤ utils/errmsg/errmsg.go
ERROR_CATANAME_USED = 2001
ERROR_CATANAME_USED: "该分类已经存在",
编写分类的model 逻辑,包涵增删改查
╰─➤ cat model/Category.go
package model
import (
"ginBlog/utils/errmsg"
"github.com/jinzhu/gorm"
)
type Category struct {
ID uint `gorm:"primary_key;auto_increment" json:"id"`
Name string `gorm:"type:varchar(20);not null" json:"name"`
}
// 查询分类是否存在
func CheckCate(name string) int {
var cate Category
db.Select("id").Where("name = ?", name).First(&cate)
if cate.ID > 0 {
return errmsg.ERROR_CATANAME_USED
}
return errmsg.SUCCESS
}
// 添加分类
func CreateCate(data *Category) int {
err := db.Create(&data).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
// 查询分类列表
func GetCates(pageSize int, pageNum int) []Category {
var cates []Category
err = db.Limit(pageSize).Offset((pageNum - 1) * pageSize).Find(&cates).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil
}
return cates
}
// 编辑分类信息
func EditCate(id int, data *Category) int {
var cate Category
var maps = make(map[string]interface{})
maps["name"] = data.Name
err = db.Model(&cate).Where("id = ?", id).Update(maps).Error
if err != nil{
return errmsg.ERROR
}
return errmsg.SUCCESS
}
// 删除分类
func DeleteCate(id int) int {
var cate Category
err = db.Where("id = ?", id).Delete(&cate).Error
if err != nil {
return errmsg.ERROR
}
return errmsg.SUCCESS
}
增加分类路由操作
╰─➤ cat api/v1/category.go
package v1
import (
"ginBlog/model"
"ginBlog/utils/errmsg"
"github.com/gin-gonic/gin"
"net/http"
"strconv"
)
// 添加分类
func AddCate(c *gin.Context) {
var data model.Category
_ = c.ShouldBindJSON(&data)
code := model.CheckCate(data.Name)
if code == errmsg.SUCCESS {
model.CreateCate(&data)
}
if code == errmsg.ERROR_CATANAME_USED {
code = errmsg.ERROR_CATANAME_USED
}
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 查询分类列表
func GetCates(c *gin.Context) {
pageSize,_ := strconv.Atoi(c.Query("pageSize"))
pageNum,_ := strconv.Atoi(c.Query("pageNum"))
if pageSize == 0 {
pageSize = -1
}
if pageNum == 0 {
pageNum = -1
}
data := model.GetCates(pageSize, pageNum)
code := errmsg.SUCCESS
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 编辑分类
func EditCate(c *gin.Context) {
var data model.Category
id,_ := strconv.Atoi(c.Param("id"))
c.ShouldBindJSON(&data)
code := model.CheckCate(data.Name)
if code == errmsg.SUCCESS{
model.EditCate(id, &data)
}
if code == errmsg.ERROR_CATANAME_USED {
c.Abort()
}
c.JSON(http.StatusOK, gin.H{
"status": code,
"data": data,
"message": errmsg.GetErrMsg(code),
})
}
// 删除分类
func DeleteCate(c *gin.Context) {
id,_ := strconv.Atoi(c.Param("id"))
code := model.DeleteCate(id)
c.JSON(http.StatusOK, gin.H{
"ststus": code,
"message": errmsg.GetErrMsg(code),
})
}
注册路由
╰─➤ cat routers/router.go
// 分类 的路由接口
routerV1.POST("cate/add", v1.AddCate)
routerV1.GET("cates", v1.GetCates)
routerV1.PUT("cate/:id", v1.EditCate)
routerV1.DELETE("cate/:id", v1.DeleteCate)
运行并验证
go run main.go
添加分类
查看分类列表
编辑分类
删除分类