分类
This commit is contained in:
parent
382689bee5
commit
86d8c5211d
|
@ -4,6 +4,7 @@ import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"go-admin/app/admin/middleware"
|
"go-admin/app/admin/middleware"
|
||||||
"go-admin/app/admin/models"
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/app/admin/models/common"
|
||||||
orm "go-admin/common/global"
|
orm "go-admin/common/global"
|
||||||
"go-admin/logger"
|
"go-admin/logger"
|
||||||
"go-admin/tools"
|
"go-admin/tools"
|
||||||
|
@ -113,25 +114,19 @@ func UpdateCategory(c *gin.Context) {
|
||||||
app.OK(c, nil, "ok")
|
app.OK(c, nil, "ok")
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeleteCategoryRequest struct {
|
// DeleteCategory 删除分类
|
||||||
Id uint32 `json:"id" validate:"required"`
|
// @Summary 删除分类
|
||||||
}
|
// @Tags 商品分类
|
||||||
|
// @Produce json
|
||||||
|
// @Param id int path true "分类id"
|
||||||
|
// @Success 200 {object} app.Response
|
||||||
|
// @Router /api/v1/category/delete/:id [delete]
|
||||||
func DeleteCategory(c *gin.Context) {
|
func DeleteCategory(c *gin.Context) {
|
||||||
req := new(DeleteCategoryRequest)
|
id := c.Param("id")
|
||||||
_ = c.ShouldBindJSON(req)
|
err := orm.Eloquent.Model(models.Category{}).
|
||||||
|
Scopes(common.ScopeBusiness(middleware.GetCooperativeBusinessId(c))).
|
||||||
if err := tools.Validate(req); err != nil {
|
Delete(id).
|
||||||
app.Error(c, 400, err, "参数错误")
|
Error
|
||||||
return
|
|
||||||
}
|
|
||||||
category, err := models.GetCategoryById(req.Id)
|
|
||||||
if err != nil {
|
|
||||||
app.Error(c, 500, err, "分类不存在")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = orm.Eloquent.Model(category).Delete(category.ID).Error
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
app.Error(c, 500, err, "删除失败")
|
app.Error(c, 500, err, "删除失败")
|
||||||
return
|
return
|
||||||
|
@ -140,3 +135,7 @@ func DeleteCategory(c *gin.Context) {
|
||||||
app.OK(c, nil, "ok")
|
app.OK(c, nil, "ok")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CategoryList(c *gin.Context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -78,3 +78,36 @@ func GetCategoryById(id uint32) (*Category, error) {
|
||||||
|
|
||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CategoryModel struct {
|
||||||
|
Category
|
||||||
|
SubCategory []*CategoryModel
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetCategoryList(bid uint32) ([]*CategoryModel, error) {
|
||||||
|
var list = make([]*CategoryModel, 0)
|
||||||
|
m := orm.Eloquent.Model(Category{})
|
||||||
|
err := m.Scopes(common.ScopeBusiness(bid)).Where("pid = ?", 0).Find(&list).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, top := range list {
|
||||||
|
top.SubCategory = findChildCategory(top)
|
||||||
|
}
|
||||||
|
|
||||||
|
return list, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func findChildCategory(prev *CategoryModel) []*CategoryModel {
|
||||||
|
var cs []*CategoryModel
|
||||||
|
err := orm.Eloquent.Model(Category{}).Where("pid", prev.ID).Find(&cs).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c := range cs {
|
||||||
|
c.SubCategory = findChildCategory(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
return cs
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user