package handlers import ( "platform/web/auth" "platform/web/core" g "platform/web/globals" s "platform/web/services" "github.com/gofiber/fiber/v2" ) func AllProductByAdmin(c *fiber.Ctx) error { // 检查权限 _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductRead) if err != nil { return err } // 解析请求参数 // var req AllProductsByAdminReq // if err := g.Validator.ParseBody(c, &req); err != nil { // return err // } // 查询产品 products, err := s.Product.AllProducts() if err != nil { return err } return c.JSON(products) } type AllProductsByAdminReq struct { } func CreateProduct(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductWrite) if err != nil { return err } var req s.CreateProductData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Product.CreateProduct(&req) if err != nil { return err } return nil } func UpdateProduct(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductWrite) if err != nil { return err } var req s.UpdateProductData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Product.UpdateProduct(&req) if err != nil { return err } return nil } func DeleteProduct(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductWrite) if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.Product.DeleteProduct(req.Id) if err != nil { return err } return nil } func AllProductSkuByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuRead) if err != nil { return err } var req AllProductSkuByAdminReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } list, err := s.ProductSku.All(req.Code) if err != nil { return err } return c.JSON(list) } type AllProductSkuByAdminReq struct { Code string `json:"product_code"` } func PageProductSkuByAdmin(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuRead) if err != nil { return err } var req PageProductSkuByAdminReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } list, total, err := s.ProductSku.Page(&req.PageReq, req.ProductId) if err != nil { return err } return c.JSON(core.PageResp{ Total: int(total), Page: req.GetPage(), Size: req.GetSize(), List: list, }) } type PageProductSkuByAdminReq struct { core.PageReq ProductId *int32 `json:"product_id"` } func CreateProductSku(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuWrite) if err != nil { return err } var req s.CreateProductSkuData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.ProductSku.Create(req) if err != nil { return err } return nil } func UpdateProductSku(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuWrite) if err != nil { return err } var req s.UpdateProductSkuData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.ProductSku.Update(req) if err != nil { return err } return nil } func BatchUpdateProductSkuDiscount(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuWrite) if err != nil { return err } var req s.BatchUpdateSkuDiscountData if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.ProductSku.BatchUpdateDiscount(req) if err != nil { return err } return nil } func DeleteProductSku(c *fiber.Ctx) error { _, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeProductSkuWrite) if err != nil { return err } var req core.IdReq if err := g.Validator.ParseBody(c, &req); err != nil { return err } err = s.ProductSku.Delete(req.Id) if err != nil { return err } return nil }