修复店铺列表参数校验与企业权限
This commit is contained in:
@@ -5,6 +5,9 @@ import (
|
||||
|
||||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||||
"github.com/break/junhong_cmp_fiber/internal/model/dto"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/constants"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/errors"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/middleware"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||||
)
|
||||
|
||||
@@ -12,47 +15,61 @@ func registerShopRoutes(router fiber.Router, handler *admin.ShopHandler, doc *op
|
||||
shops := router.Group("/shops")
|
||||
groupPath := basePath + "/shops"
|
||||
|
||||
Register(shops, doc, groupPath, "GET", "", handler.List, RouteSpec{
|
||||
Summary: "店铺列表",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.ShopListRequest),
|
||||
Output: new(dto.ShopPageResult),
|
||||
Auth: true,
|
||||
Register(shops, doc, groupPath, "GET", "", coreShopManagement(handler.List), RouteSpec{
|
||||
Summary: "店铺列表",
|
||||
Description: "仅超级管理员、平台账号和代理账号可访问,企业账号返回 403。分页默认第 1 页、每页 20 条;page 最小为 1,page_size 范围为 1 至 100。所有筛选条件在查询前统一校验。",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.ShopListRequest),
|
||||
Output: new(dto.ShopPageResult),
|
||||
Auth: true,
|
||||
})
|
||||
|
||||
Register(shops, doc, groupPath, "POST", "", handler.Create, RouteSpec{
|
||||
Summary: "创建店铺",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.CreateShopRequest),
|
||||
Output: new(dto.ShopResponse),
|
||||
Auth: true,
|
||||
Register(shops, doc, groupPath, "POST", "", coreShopManagement(handler.Create), RouteSpec{
|
||||
Summary: "创建店铺",
|
||||
Description: "仅超级管理员、平台账号和代理账号可访问,企业账号返回 403。",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.CreateShopRequest),
|
||||
Output: new(dto.ShopResponse),
|
||||
Auth: true,
|
||||
})
|
||||
|
||||
Register(shops, doc, groupPath, "PUT", "/:id", handler.Update, RouteSpec{
|
||||
Summary: "更新店铺",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.UpdateShopParams),
|
||||
Output: new(dto.ShopResponse),
|
||||
Auth: true,
|
||||
Register(shops, doc, groupPath, "PUT", "/:id", coreShopManagement(handler.Update), RouteSpec{
|
||||
Summary: "更新店铺",
|
||||
Description: "仅超级管理员、平台账号和代理账号可访问,企业账号返回 403。",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.UpdateShopParams),
|
||||
Output: new(dto.ShopResponse),
|
||||
Auth: true,
|
||||
})
|
||||
|
||||
Register(shops, doc, groupPath, "DELETE", "/:id", handler.Delete, RouteSpec{
|
||||
Summary: "删除店铺",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.IDReq),
|
||||
Output: nil,
|
||||
Auth: true,
|
||||
Register(shops, doc, groupPath, "DELETE", "/:id", coreShopManagement(handler.Delete), RouteSpec{
|
||||
Summary: "删除店铺",
|
||||
Description: "仅超级管理员、平台账号和代理账号可访问,企业账号返回 403。",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.IDReq),
|
||||
Output: nil,
|
||||
Auth: true,
|
||||
})
|
||||
|
||||
Register(shops, doc, groupPath, "GET", "/cascade", handler.Cascade, RouteSpec{
|
||||
Summary: "店铺联级查询",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.ShopCascadeRequest),
|
||||
Output: new([]dto.ShopCascadeItem),
|
||||
Auth: true,
|
||||
Register(shops, doc, groupPath, "GET", "/cascade", coreShopManagement(handler.Cascade), RouteSpec{
|
||||
Summary: "店铺联级查询",
|
||||
Description: "仅超级管理员、平台账号和代理账号可访问,企业账号返回 403。",
|
||||
Tags: []string{"店铺管理"},
|
||||
Input: new(dto.ShopCascadeRequest),
|
||||
Output: new([]dto.ShopCascadeItem),
|
||||
Auth: true,
|
||||
})
|
||||
}
|
||||
|
||||
func coreShopManagement(handler fiber.Handler) fiber.Handler {
|
||||
return func(c *fiber.Ctx) error {
|
||||
if middleware.GetUserTypeFromContext(c.UserContext()) == constants.UserTypeEnterprise {
|
||||
return errors.New(errors.CodeForbidden, "无权限访问店铺管理功能")
|
||||
}
|
||||
return handler(c)
|
||||
}
|
||||
}
|
||||
|
||||
func registerShopRoleRoutes(router fiber.Router, handler *admin.ShopRoleHandler, doc *openapi.Generator, basePath string) {
|
||||
shops := router.Group("/shops")
|
||||
groupPath := basePath + "/shops"
|
||||
|
||||
Reference in New Issue
Block a user