diff --git a/app/admin/apis/basic/category.go b/app/admin/apis/basic/category.go index 6eab783..c0b2f3d 100644 --- a/app/admin/apis/basic/category.go +++ b/app/admin/apis/basic/category.go @@ -4,6 +4,7 @@ import ( "github.com/gin-gonic/gin" "go-admin/app/admin/middleware" "go-admin/app/admin/models" + "go-admin/app/admin/models/common" orm "go-admin/common/global" "go-admin/logger" "go-admin/tools" @@ -113,25 +114,19 @@ func UpdateCategory(c *gin.Context) { app.OK(c, nil, "ok") } -type DeleteCategoryRequest struct { - Id uint32 `json:"id" validate:"required"` -} - +// DeleteCategory 删除分类 +// @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) { - req := new(DeleteCategoryRequest) - _ = c.ShouldBindJSON(req) - - if err := tools.Validate(req); err != nil { - app.Error(c, 400, err, "参数错误") - 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 + id := c.Param("id") + err := orm.Eloquent.Model(models.Category{}). + Scopes(common.ScopeBusiness(middleware.GetCooperativeBusinessId(c))). + Delete(id). + Error if err != nil { app.Error(c, 500, err, "删除失败") return @@ -140,3 +135,7 @@ func DeleteCategory(c *gin.Context) { app.OK(c, nil, "ok") return } + +func CategoryList(c *gin.Context) { + +} diff --git a/app/admin/models/category.go b/app/admin/models/category.go index 35ce60d..8357153 100644 --- a/app/admin/models/category.go +++ b/app/admin/models/category.go @@ -78,3 +78,36 @@ func GetCategoryById(id uint32) (*Category, error) { 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 +}