package v1 import ( "git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/dto" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/service" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/app" "git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/errcode" "github.com/gin-gonic/gin" ) // GoodsHandler 商品相关接口(公开)。 type GoodsHandler struct { svc *service.GoodsService } // NewGoodsHandler 创建商品 handler。 func NewGoodsHandler() *GoodsHandler { return &GoodsHandler{svc: service.NewGoodsService()} } // GetByCode 按商品编码查询商品(编码来自路径参数)。 func (h *GoodsHandler) GetByCode(c *gin.Context) { response := app.NewResponse(c) request := dto.GoodsGetByCodeRequest{GoodsCode: c.Param("code")} if request.GoodsCode == "" { response.ToErrorResponse(errcode.InvalidParams) return } out, e := h.svc.GetByCode(c.Request.Context(), &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) } // List 分页查询上架商品。 func (h *GoodsHandler) List(c *gin.Context) { response := app.NewResponse(c) var request dto.GoodsListRequest if err := c.ShouldBindQuery(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } out, e := h.svc.List(c.Request.Context(), &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) }