Merge branch 'master' of git.oa00.com:supply-chain/service

finance
黄伟 2 years ago
commit aa60a12f4d

@ -26,6 +26,7 @@ const (
ErrorOrderCancelError Error = 11020 // 订单取消失败 ErrorOrderCancelError Error = 11020 // 订单取消失败
ErrorAfterServiceLogisticsAddressError Error = 11021 // 售后寄回地址获取失败 ErrorAfterServiceLogisticsAddressError Error = 11021 // 售后寄回地址获取失败
ErrorAfterServiceLogisticsAddressReturnError Error = 11022 // 售后寄回地址已回传 ErrorAfterServiceLogisticsAddressReturnError Error = 11022 // 售后寄回地址已回传
ErrorWholesaleBatchOrderStartNumErr Error = 13101 // 商品未达到最小起批量
) )
var ErrorCodes = map[Error]string{ var ErrorCodes = map[Error]string{
@ -51,6 +52,7 @@ var ErrorCodes = map[Error]string{
ErrorOrderCancelError: "订单取消失败", ErrorOrderCancelError: "订单取消失败",
ErrorAfterServiceLogisticsAddressError: "售后寄回地址获取失败", ErrorAfterServiceLogisticsAddressError: "售后寄回地址获取失败",
ErrorAfterServiceLogisticsAddressReturnError: "售后寄回地址已回传", ErrorAfterServiceLogisticsAddressReturnError: "售后寄回地址已回传",
ErrorWholesaleBatchOrderStartNumErr: "商品未达到最小起批量",
} }
func (e Error) Error() string { func (e Error) Error() string {

@ -193,3 +193,17 @@ func (g *goods) FindBySkuIds(ctx context.Context, skuIds []uint) (reply []ReplyB
err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply) err = xClient.Call(ctx, "FindBySkuIds", skuIds, &reply)
return return
} }
type ArgsGoodsChange struct {
GoodsIds []uint // 商品id
}
// Change @Title 商品信息变动
func (g *goods) Change(ctx context.Context, args ArgsGoodsChange) (err error) {
xClient, err := client.GetClient(g)
if err != nil {
return err
}
reply := 0
return xClient.Call(ctx, "Change", args, &reply)
}

@ -362,6 +362,7 @@ type ArgsSkuChangeData struct {
Unit string // 销售单位 Unit string // 销售单位
UpcCode string // 商品条码 UpcCode string // 商品条码
Source source // 商品来源 Source source // 商品来源
Imgs []string // 商品图片 第一张主图
Specifications []SkuSpecification // 商品参数信息 Specifications []SkuSpecification // 商品参数信息
} }

@ -1,6 +1,7 @@
package channel package channel
type Channel struct { type Channel struct {
Sku sku Sku sku
Mq mq 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,67 @@
package _interface
import (
"context"
"github.com/shopspring/decimal"
)
type OrderInterface interface {
// FreightFee 获取运费
FreightFee(ctx context.Context, args ArgsOrderFreightFee, freightFee *ReplyOrderFreightFee) error
// Submit 下单
Submit(ctx context.Context, args ArgsOrderSubmit, sourceOrderSn *string) error
// LadingBill @Title 提单
LadingBill(ctx context.Context, orderSn string, reply *int) error
// Close @Title 关闭订单
Close(ctx context.Context, orderSn string, reply *int) error
// Cancel @Title 取消订单
Cancel(ctx context.Context, args ArgsOrderCancel, reply *int) error
// Trajectory @Title 物流轨迹
Trajectory(ctx context.Context, orderSn string, reply *[]ReplyTrajectory) error
// Finish @Title 确认收货
Finish(ctx context.Context, orderSn string, reply *int) error
}
type ArgsOrderCancel struct {
OrderSn string // 订单编号
Reason string // 取消原因
}
type ArgsOrderFreightFee struct {
Skus []OrderFreightFeeSkuItem // 商品信息
Address string // 地址
}
type ReplyOrderFreightFee struct {
FreightFee decimal.Decimal // 运费
ErrMsg string // 错误信息
}
type OrderFreightFeeSkuItem struct {
SourceSkuId string // 源skuId
SourceSkuPrice decimal.Decimal // 采购价
Quantity uint // 数量(箱)
}
type ArgsOrderSubmit struct {
OrderSn uint64 // 订单号
Skus []OrderFreightFeeSkuItem // 商品信息
Address string // 地址
Receiver OrderReceiver // 收件信息
UserIp string // 用户ip
}
type OrderReceiver struct {
Name string // 姓名
Phone string // 手机号
Email string // 邮件
ZipCode string // 邮编
}
type ReplyTrajectory struct {
LogisticsName string `json:"logisticsName"`
WaybillCode string `json:"waybillCode"`
Steps []PackageStep `json:"steps"`
}
type PackageStep struct {
State string `json:"state"`
Content string `json:"content"`
OperatorAt int64 `json:"operatorAt"`
}

@ -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
}

@ -10,6 +10,7 @@ type Wholesale struct {
Category category Category category
Source sourceRpc Source sourceRpc
Sku sku Sku sku
Order order
SkuAudit skuAudit SkuAudit skuAudit
Setting setting.Setting Setting setting.Setting
Channel channel.Channel Channel channel.Channel

Loading…
Cancel
Save