You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
5.3 KiB

2 years ago
package otosaas
import "git.oa00.com/go/otosaas/request"
type sku struct {
}
const (
skuPoll = "/mall/v1/commodity/list" // 商品池
skuDetail = "/mall/v1/commodity/detail" // 商品详情
skuImage = "/mall/v1/commodity/image" // 商品图片
skuStatus = "/mall/v1/commodity/status" // 商品状态
skuStock = "/mall/v1/commodity/stock" // 商品库存
)
type poolItem struct {
TotalCount int `json:"totalCount"`
SkuCodes []string `json:"list"`
}
// Pool @Title 商品池 最大100条
func (s *sku) Pool(page, pageSize uint) (result poolItem, err error) {
err = request.Exec(skuPoll, map[string]interface{}{
"page": page,
"pageSize": pageSize,
}, &result)
return
}
type SkuDetail struct {
ShopCode string `json:"shopCode"`
CommodityDetailVos []struct {
WordDescription string `json:"wordDescription"` // html详情
ImgDescription string `json:"imgDescription"` // 图片详情
CommodityDetailType int `json:"commodityDetailType"` // 详情类别 0=文字描述 1=图片描述
Id int `json:"id"`
CommoditySerial int `json:"commoditySerial"` // 排序
} `json:"commodityDetailVos"` // 商品详情
CommodityPic string `json:"commodityPic"` // 商品主图
CommodityDescription string `json:"commodityDescription"` // 商品描述
CommodityCategoryName string `json:"commodityCategoryName"` // 分类名称 一级-二级-三级
CommodityCategoryC1 string `json:"commodityCategoryC1"` // 一级分类id
CommodityCategoryC2 string `json:"commodityCategoryC2"` // 二级分类id
CommodityCategoryC3 string `json:"commodityCategoryC3"` // 三级分类id
CommoditySpecifications []struct {
CommodityPropGroup string `json:"commodityPropGroup"` // 规格类型id
CommodityPropName string `json:"commodityPropName"` // 规格名称
SellingPrice float64 `json:"sellingPrice"` // 规格售价
SpecificationPic string `json:"specificationPic"` // 规格图
OriginalPrice float64 `json:"originalPrice"` // 原价
CommodityCode string `json:"commodityCode"` // 商品编号
CommodityProp string `json:"commodityProp"` // 规格值id
Id int `json:"id"`
CommodityPropGroupName string `json:"commodityPropGroupName"` // 规格类型名称
SpecificationCode string `json:"specificationCode"` // 商品规格编号
Status string `json:"status"` // 商品规格状态 1=上架 2=下架
} `json:"commoditySpecifications"` // 规格参数
CommodityCode string `json:"commodityCode"` // 商品编码
CommodityFreight struct {
ShopCode string `json:"shopCode"`
ThresholdAmount float64 `json:"thresholdAmount"` // 运费模版
FreightTemplateType int `json:"freightTemplateType"`
ProvinceName string `json:"provinceName"` // 不配送省份
Id string `json:"id"`
TransportationType int `json:"transportationType"` // 配送方式 1=快递
ProvinceId string `json:"provinceId"` // 不配送省份id
ValuationType int `json:"valuationType"` // 计价方式 1=按金额
FreightName string `json:"freightName"`
ThresholdFee float64 `json:"thresholdFee"` // 运费模版运费
DefaultType int `json:"defaultType"`
} `json:"commodityFreight"` // 运费详情
Id int `json:"id"`
CommodityName string `json:"commodityName"` // 商品名称
Status string `json:"status"` // 上下架状态 1=上架 2=下架
}
// Detail @Title 商品详情
func (s *sku) Detail(skuCode string) (result SkuDetail, err error) {
err = request.Exec(skuDetail, map[string]interface{}{
"commodityCode": skuCode,
}, &result)
return
}
type SkuImage struct {
CommodityCode string `json:"commodityCode"`
CommodityImg []string `json:"commodityImg"`
}
// Image @Title 商品图册
func (s *sku) Image(skuCode string) (result SkuImage, err error) {
err = request.Exec(skuImage, map[string]interface{}{
"commodityCode": skuCode,
}, &result)
return
}
type SkuStatus struct {
CommoditySpecifications []struct {
SpecificationCode string `json:"specificationCode"` // 规格编码
Status string `json:"status"` // 规格状态 1=上架 2=下架
} `json:"commoditySpecifications"`
CommodityCode string `json:"commodityCode"` // 商品编码
Status int `json:"status"` // 商品状态 1=上架 2=下架
}
// Status @Title 商品状态
func (s *sku) Status(skuCode string) (result SkuStatus, err error) {
err = request.Exec(skuStatus, map[string]interface{}{
"commodityCode": skuCode,
}, &result)
return
}
type SkuStock struct {
CommodityTotalStock int `json:"commodityTotalStock"` // 总库存
CommoditySpecifications []struct {
SpecificationCode string `json:"specificationCode"` // 规格编码
Stock int `json:"stock"` // 规格库存
} `json:"commoditySpecifications"`
CommodityCode string `json:"commodityCode"` // 商品编码
}
// Stock @Title 商品库存
func (s *sku) Stock(skuCode string) (result SkuStock, err error) {
err = request.Exec(skuStock, map[string]interface{}{
"commodityCode": skuCode,
}, &result)
return
}