package channel import ( "context" "git.oa00.com/supply-chain/service/client" "git.oa00.com/supply-chain/service/lib/bean" "github.com/shopspring/decimal" "github.com/smallnest/rpcx/share" ) type sku struct { } type SkuSearch struct { Status uint // 1=上架 2=下架 SkuName string // 商品名称 } type ArgsSkuList struct { Search SkuSearch Page bean.Page } type SkuItem struct { Id uint `json:"id"` Name string `json:"name"` BrandId uint `json:"brandId"` BrandName string `json:"brandName"` FirstCategoryId uint `json:"firstCategoryId"` FirstCategoryName string `json:"firstCategoryName"` SecondCategoryId uint `json:"secondCategoryId"` SecondCategoryName string `json:"secondCategoryName"` ThirdCategoryId uint `json:"thirdCategoryId"` ThirdCategoryName string `json:"thirdCategoryName"` Price decimal.Decimal `json:"price"` GuidePrice decimal.Decimal `json:"guidePrice"` ImgUrl string `json:"imgUrl"` Profit decimal.Decimal `json:"profit"` Size string `json:"size"` Color string `json:"color"` Tax string `json:"tax"` Unit string `json:"unit"` UpcCode string `json:"upcCode"` TaxName string `json:"taxName"` TaxCode string `json:"taxCode"` Status uint `json:"status"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` } type ReplySkuList struct { Lists []SkuItem `json:"lists"` Total int64 `json:"total"` } // Lists @Title 商品列表 func (s *sku) Lists(ctx context.Context, channelId string, args ArgsSkuList) (reply ReplySkuList, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Lists", args, &reply) return } type ArgsSkuDetails struct { SkuIds []uint // sku数组 } type SkuDetailItem struct { Id uint `json:"id"` Name string `json:"name"` BrandId uint `json:"brandId"` BrandName string `json:"brandName"` FirstCategoryId uint `json:"firstCategoryId"` FirstCategoryName string `json:"firstCategoryName"` SecondCategoryId uint `json:"secondCategoryId"` SecondCategoryName string `json:"secondCategoryName"` ThirdCategoryId uint `json:"thirdCategoryId"` ThirdCategoryName string `json:"thirdCategoryName"` Price decimal.Decimal `json:"price"` GuidePrice decimal.Decimal `json:"guidePrice"` ImgUrl string `json:"imgUrl"` Profit decimal.Decimal `json:"profit"` Size string `json:"size"` Color string `json:"color"` Tax string `json:"tax"` Unit string `json:"unit"` UpcCode string `json:"upcCode"` TaxName string `json:"taxName"` TaxCode string `json:"taxCode"` Status uint `json:"status"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` Content string `json:"content"` Imgs []SkuImg `json:"imgs"` Specifications []SkuSpecification `json:"specifications"` GroupSkuIds []uint `json:"groupSkuIds"` } type SkuImg struct { Path string `json:"path"` } type SkuSpecification struct { Name string `json:"name"` Attributes []SkuAttribute `json:"attributes"` } type SkuAttribute struct { Name string `json:"name"` Value []string `json:"value"` } // Details @Title 获取sku详情 func (s *sku) Details(ctx context.Context, channelId string, args ArgsSkuDetails) (reply []SkuDetailItem, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Details", args, &reply) return } type ArgsSkuPrices struct { SkuIds []uint // sku数组 } type SkuPrice struct { Id uint `json:"id"` Name string `json:"name"` Price decimal.Decimal `json:"price"` GuidePrice decimal.Decimal `json:"guidePrice"` Profit decimal.Decimal `json:"profit"` Status uint `json:"status"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` } // Prices @Title 获取sku价格 func (s *sku) Prices(ctx context.Context, channelId string, args ArgsSkuPrices) (reply []SkuPrice, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Prices", args, &reply) return } type ArgsSkuStock struct { Address string // 地址 Skus []SkuStockItem // sku信息 } type SkuStockItem struct { SkuId uint // skuId Quantity uint // 数量 } type ReplySkuStock struct { SkuId uint `json:"skuId"` // skuId State uint `json:"state"` // 库存状态 } // Stock @Title 库存查询 func (s *sku) Stock(ctx context.Context, channelId string, args ArgsSkuStock) (reply []ReplySkuStock, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Stock", args, &reply) return }