commit
eac053e61f
@ -0,0 +1,62 @@
|
||||
package otosaas
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.oa00.com/supply-chain/service/client"
|
||||
"git.oa00.com/supply-chain/service/lib/bean"
|
||||
)
|
||||
|
||||
type category struct {
|
||||
}
|
||||
type ArgsCategoryList struct {
|
||||
ThirdCategoryId uint
|
||||
Page bean.Page
|
||||
}
|
||||
|
||||
type CategoryItem struct {
|
||||
Id uint `json:"id"`
|
||||
FirstCategoryName string `json:"firstCategoryName"`
|
||||
SecondCategoryName string `json:"secondCategoryName"`
|
||||
ThirdCategoryName string `json:"thirdCategoryName"`
|
||||
SupplyCategoryId uint `json:"supplyCategoryId"`
|
||||
}
|
||||
type ReplyCategoryList struct {
|
||||
Lists []CategoryItem `json:"lists"`
|
||||
Total int64 `json:"total"`
|
||||
}
|
||||
|
||||
// Lists @Title 获取品牌匹配列表
|
||||
func (c *category) Lists(ctx context.Context, args ArgsCategoryList) (reply ReplyCategoryList, err error) {
|
||||
xClient, err := client.GetClient(c)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "Lists", args, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
type ArgsCategoryEdit struct {
|
||||
CategoryId uint // 分类id
|
||||
SupplyCategoryId uint // 匹配分类id
|
||||
}
|
||||
|
||||
// Edit @Title 编辑品牌匹配
|
||||
func (c *category) Edit(ctx context.Context, args ArgsCategoryEdit) error {
|
||||
reply := 0
|
||||
xClient, err := client.GetClient(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return xClient.Call(ctx, "Edit", args, &reply)
|
||||
}
|
||||
|
||||
// Select @Title 类目筛选
|
||||
func (c *category) Select(ctx context.Context) (reply []CategoryItem, err error) {
|
||||
args := 0
|
||||
xClient, err := client.GetClient(c)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "Select", args, &reply)
|
||||
return
|
||||
}
|
@ -0,0 +1,185 @@
|
||||
package otosaas
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.oa00.com/supply-chain/service/client"
|
||||
"git.oa00.com/supply-chain/service/lib/bean"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
const (
|
||||
CommodityStatusNone = 1 // 待处理
|
||||
CommodityStatusAdopt = 2 // 同步入库
|
||||
CommodityStatusReject = 3 // 废弃商品
|
||||
|
||||
CommodityHandleNone = 1 // 未处理
|
||||
CommodityHandleStart = 2 // 开始处理
|
||||
|
||||
CommoditySaasSkuStatusUp = 1 // 商品上架
|
||||
CommoditySaasSkuStatusDown = 2 // 商品下架
|
||||
)
|
||||
|
||||
type commodity struct {
|
||||
}
|
||||
type CommoditySearch struct {
|
||||
Name string // 商品名称
|
||||
CategoryIds []uint // 类目id
|
||||
SkuCode string // 商品条码
|
||||
Handle uint // 处理状态 1=待处理 2=入库 3=废弃
|
||||
CommodityCode string // 商品编码
|
||||
MinSupplyPrice decimal.Decimal // 最小采购价
|
||||
MaxSupplyPrice decimal.Decimal // 最大采购价
|
||||
}
|
||||
type ArgsCommodityList struct {
|
||||
Search CommoditySearch
|
||||
Page bean.Page
|
||||
}
|
||||
|
||||
type CommodityItem struct {
|
||||
Id uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
CommodityCode string `json:"commodityCode"`
|
||||
Img string `json:"img"`
|
||||
CategoryId uint `json:"categoryId"`
|
||||
CategoryNames string `json:"categoryNames"`
|
||||
Skus []CommoditySkuItem `json:"skus"`
|
||||
GuidePrices []decimal.Decimal `json:"guidePrices"`
|
||||
SupplyPrices []decimal.Decimal `json:"supplyPrices"`
|
||||
Status uint `json:"status"`
|
||||
CreatedAt int64 `json:"createdAt"`
|
||||
}
|
||||
|
||||
type CommoditySkuItem struct {
|
||||
Id uint `json:"id"`
|
||||
Img string `json:"img"`
|
||||
SupplyPrice decimal.Decimal `json:"supplyPrice"`
|
||||
SpecValue string `json:"specValue"`
|
||||
SkuCode string `json:"skuCode"`
|
||||
}
|
||||
|
||||
type ReplyCommodityLists struct {
|
||||
List []CommodityItem `json:"list"`
|
||||
Total int64 `json:"total"`
|
||||
}
|
||||
|
||||
// Lists @Title 获取商品列表
|
||||
func (g *commodity) Lists(ctx context.Context, args ArgsCommodityList) (reply ReplyCommodityLists, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "Lists", args, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
type ReplyCommodityInfo struct {
|
||||
Id uint `json:"id"`
|
||||
CommodityCode string `json:"commodityCode"`
|
||||
Name string `json:"name"`
|
||||
ImgUrl string `json:"imgUrl"`
|
||||
FirstCategoryId uint `json:"firstCategoryId"`
|
||||
FirstCategoryName string `json:"firstCategoryName"`
|
||||
SecondCategoryId uint `json:"secondCategoryId"`
|
||||
SecondCategoryName string `json:"secondCategoryName"`
|
||||
ThirdCategoryId uint `json:"thirdCategoryId"`
|
||||
ThirdCategoryName string `json:"thirdCategoryName"`
|
||||
SupplyCategoryId uint `json:"supplyCategoryId"`
|
||||
Handle uint `json:"handle"`
|
||||
Status uint `json:"status"`
|
||||
Skus []SkuItem `json:"skus"`
|
||||
Imgs []CommodityImgItem `json:"imgs"`
|
||||
}
|
||||
|
||||
type CommodityImgItem struct {
|
||||
Id uint `json:"id"`
|
||||
Path string `json:"path"`
|
||||
ReplacePath string `json:"replacePath"`
|
||||
}
|
||||
|
||||
type SkuItem struct {
|
||||
Id uint `json:"id"`
|
||||
SkuCode string `json:"skuCode"`
|
||||
SpecName string `json:"specName"`
|
||||
SpecValue string `json:"specValue"`
|
||||
SupplyPrice decimal.Decimal `json:"supplyPrice"`
|
||||
GuidePrice decimal.Decimal `json:"guidePrice"`
|
||||
ImgUrl string `json:"imgUrl"`
|
||||
}
|
||||
|
||||
// Info @Title 商品详情
|
||||
func (g *commodity) Info(ctx context.Context, goodsId uint) (reply ReplyCommodityInfo, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "Info", goodsId, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
type ReplyImgs struct {
|
||||
GoodsId uint `json:"goodsId"`
|
||||
Imgs []string `json:"imgs"`
|
||||
}
|
||||
|
||||
// GetImgs @Title 获取商品主图
|
||||
func (g *commodity) GetImgs(ctx context.Context, goodsIds []uint) (reply []ReplyImgs, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "GetImgs", goodsIds, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
type AdoptItem struct {
|
||||
Id uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
// Adopt @Title 批量入库
|
||||
func (g *commodity) Adopt(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(ctx, "Adopt", goodsIds, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
// Discard @Title 批量废弃
|
||||
func (g *commodity) Discard(ctx context.Context, goodsIds []uint) (err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
reply := 0
|
||||
err = xClient.Call(ctx, "Discard", goodsIds, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
// ReHandle @Title 重新处理商品
|
||||
func (g *commodity) ReHandle(ctx context.Context, goodsIds []uint) (reply []AdoptItem, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = xClient.Call(ctx, "ReHandle", goodsIds, &reply)
|
||||
return
|
||||
}
|
||||
|
||||
type ReplyByIdItem struct {
|
||||
SkuId uint `json:"skuId"`
|
||||
SupplierId uint `json:"supplierIds"`
|
||||
SupplierName string `json:"supplierName"`
|
||||
}
|
||||
|
||||
// FindBySkuIds @Title 根据商品Ids获取商品信息
|
||||
func (g *commodity) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []ReplyByIdItem, err error) {
|
||||
xClient, err := client.GetClient(g)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
|
||||
return
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package otosaas
|
||||
|
||||
type OtoSaas struct {
|
||||
Category category
|
||||
Commodity commodity
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package channel
|
||||
|
||||
type Channel struct {
|
||||
Sku sku
|
||||
Mq mq
|
||||
Sku sku
|
||||
Order order
|
||||
Mq mq
|
||||
}
|
||||
|
@ -0,0 +1,75 @@
|
||||
package channel
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.oa00.com/supply-chain/service/client"
|
||||
"github.com/shopspring/decimal"
|
||||
"github.com/smallnest/rpcx/share"
|
||||
)
|
||||
|
||||
const (
|
||||
ReplyOrderFreightFeeErrCodeNone = 0 // 无错误
|
||||
ReplyOrderFreightFeeErrCodeErr = 1 // 有错误
|
||||
ReplyOrderFreightFeeErrCodeDone = 2 // 已下架
|
||||
|
||||
OrderStatusSubmit = 1 // 下单
|
||||
OrderStatusFreightFee = 2 // 已确认运费
|
||||
OrderStatusPay = 3 // 已支付
|
||||
OrderStatusClose = 4 // 关闭
|
||||
|
||||
OrderSubStatusSubmit = 1 // 下单
|
||||
OrderSubStatusFreightFee = 2 // 确认运费
|
||||
OrderSubStatusPay = 3 // 已支付
|
||||
OrderSubStatusCheckout = 4 // 出库
|
||||
OrderSubStatusFinish = 5 // 完成
|
||||
|
||||
OrderCancelSubStatusFalse = 1 // 未取消
|
||||
OrderCancelSubStatusTrue = 2 // 已取消
|
||||
|
||||
OrderSubIsSplitFalse = 1 // 无
|
||||
OrderSubIsSplitTrue = 2 // 被拆单
|
||||
|
||||
OrderSubTypeApi = 1 // api接口下单
|
||||
OrderSubTypeCustomerWeb = 2 // 客户商城下单
|
||||
|
||||
)
|
||||
|
||||
type order struct {
|
||||
}
|
||||
type SkuOrderItem struct {
|
||||
SkuId uint // skuId
|
||||
Price decimal.Decimal // 单价
|
||||
Quantity uint // 数量 (箱)
|
||||
PackingRate uint // 装箱率
|
||||
}
|
||||
type ArgsOrderSubmit struct {
|
||||
ChannelOrderSn string // 渠道订单编号
|
||||
Address string // 地址
|
||||
Skus []SkuOrderItem // sku信息
|
||||
Receiver Receiver // 收件信息
|
||||
OrderFee decimal.Decimal // 订单金额-不含运费
|
||||
UserIp string // 下单用户ip
|
||||
Type uint // 下单方式
|
||||
}
|
||||
|
||||
type Receiver struct {
|
||||
Name string // 姓名
|
||||
Mobile string // 手机号
|
||||
Email string // 邮箱
|
||||
ZipCode string // 邮编
|
||||
}
|
||||
|
||||
type ReplyOrderSubmit struct {
|
||||
OrderSn string `json:"orderSn"`
|
||||
ChannelOrderSn string `json:"channelOrderSn"`
|
||||
}
|
||||
|
||||
// Submit @Title 下单
|
||||
func (o *order) Submit(ctx context.Context, channelId string, args ArgsOrderSubmit) (reply ReplyOrderSubmit, err error) {
|
||||
xClient, err := client.GetClient(o)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = xClient.Call(context.WithValue(ctx, share.ReqMetaDataKey, map[string]string{"channelId": channelId}), "Submit", args, &reply)
|
||||
return
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package wholesale
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.oa00.com/supply-chain/service/client"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
const (
|
||||
OrderCancelStatusSuccess = 1 // 取消成功
|
||||
OrderCancelStatusFail = 2 // 取消失败
|
||||
)
|
||||
|
||||
type order struct {
|
||||
}
|
||||
type ArgsOrderSplit struct {
|
||||
Source source // 商品来源
|
||||
ParentSourceOrderSn string // 上级订单号
|
||||
OrderSubs []OrderSub // 子订单
|
||||
}
|
||||
type OrderSub struct {
|
||||
SourceOrderSn string // 供应商订单号
|
||||
FreightFee decimal.Decimal // 运费
|
||||
OrderFee decimal.Decimal // 订单金额
|
||||
Skus []OrderSplitSkuItem // 拆分订单sku
|
||||
}
|
||||
type OrderSplitSkuItem struct {
|
||||
SourceSkuId string
|
||||
Quantity uint
|
||||
SupplyPrice decimal.Decimal
|
||||
}
|
||||
|
||||
// Split @Title 拆单
|
||||
func (o *order) Split(ctx context.Context, args ArgsOrderSplit) (err error) {
|
||||
xClient, err := client.GetClient(o)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
reply := 0
|
||||
err = xClient.Call(ctx, "Split", args, &reply)
|
||||
return
|
||||
}
|
Loading…
Reference in new issue