|
|
|
package supply
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"github.com/shopspring/decimal"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
// QueueSkuPriceChange 商品价格变动
|
|
|
|
queueSkuPriceChange = "supplySkuPriceChange:%s"
|
|
|
|
// QueueSkuChange 商品信息变动
|
|
|
|
queueSkuChange = "supplySkuChange:%s"
|
|
|
|
// queueOrderSplit 订单拆单
|
|
|
|
queueOrderSplit = "supplyOrderSplit:%s"
|
|
|
|
// queueOrderChange 订单变更
|
|
|
|
queueOrderCancel = "supplyOrderCancel:%s"
|
|
|
|
// queueOrderStockOut 订单出库
|
|
|
|
queueOrderStockOut = "supplyOrderStockOut:%s"
|
|
|
|
// queueOrderFinish 订单出库
|
|
|
|
queueOrderFinish = "supplyOrderFinish:%s"
|
|
|
|
|
|
|
|
// 订阅地址
|
|
|
|
mqSubscribe = "/mq/subscribe" // 订阅mq
|
|
|
|
|
|
|
|
OrderCancelSuccess = 1 // 取消成功
|
|
|
|
OrderCancelFail = 2 // 取消失败
|
|
|
|
OrderCancelReject = 3 // 拒收/商家主动取消
|
|
|
|
)
|
|
|
|
|
|
|
|
type mq struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
// Subscribe @Title 订阅mq
|
|
|
|
func (m *mq) Subscribe(name string) (err error) {
|
|
|
|
var reply interface{}
|
|
|
|
err = exec(mqSubscribe, map[string]string{
|
|
|
|
"name": name,
|
|
|
|
}, &reply)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
type skuMessage struct {
|
|
|
|
SkuId uint `json:"skuId"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// SkuPriceChangeQueue @Title 商品价格变动
|
|
|
|
func (m *mq) SkuPriceChangeQueue() string {
|
|
|
|
return getQuesuName(queueSkuPriceChange)
|
|
|
|
}
|
|
|
|
|
|
|
|
// SkuChangeQueue @Title 商品变动
|
|
|
|
func (m *mq) SkuChangeQueue() string {
|
|
|
|
return getQuesuName(queueSkuChange)
|
|
|
|
}
|
|
|
|
|
|
|
|
type OrderSplit struct {
|
|
|
|
OrderSn string `json:"orderSn"`
|
|
|
|
RootOrderSn string `json:"rootOrderSn"`
|
|
|
|
ParentOrderSn string `json:"parentOrderSn"`
|
|
|
|
FreightFee decimal.Decimal `json:"freightFee"`
|
|
|
|
OrderFee decimal.Decimal `json:"orderFee"`
|
|
|
|
Skus []OrderSplitSkuItem `json:"skus"`
|
|
|
|
}
|
|
|
|
type OrderSplitSkuItem struct {
|
|
|
|
SkuId uint `json:"skuId"`
|
|
|
|
Quantity uint `json:"quantity"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// OrderSplit @Title 订单拆单
|
|
|
|
func (m *mq) OrderSplit() string {
|
|
|
|
return getQuesuName(queueOrderSplit)
|
|
|
|
}
|
|
|
|
|
|
|
|
type OrderCancel struct {
|
|
|
|
OrderSn string `json:"orderSn"`
|
|
|
|
ParentOrderSn string `json:"parentOrderSn"`
|
|
|
|
RootOrderSn string `json:"rootOrderSn"`
|
|
|
|
Status uint `json:"status"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// OrderCancel @Title 订单取消
|
|
|
|
func (m *mq) OrderCancel() string {
|
|
|
|
return getQuesuName(queueOrderCancel)
|
|
|
|
}
|
|
|
|
|
|
|
|
type OrderStockOut struct {
|
|
|
|
OrderSn string `json:"orderSn"`
|
|
|
|
ParentOrderSn string `json:"parentOrderSn"`
|
|
|
|
RootOrderSn string `json:"rootOrderSn"`
|
|
|
|
Packages []Package `json:"packages"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Package struct {
|
|
|
|
LogisticsCode string `json:"logisticsCode"` // 物流编码
|
|
|
|
LogisticsName string `json:"logisticsName"` // 物流名称
|
|
|
|
WaybillCode string `json:"waybillCode"` // 运单号
|
|
|
|
}
|
|
|
|
|
|
|
|
// OrderStockOut @Title 订单出库
|
|
|
|
func (m *mq) OrderStockOut() string {
|
|
|
|
return getQuesuName(queueOrderStockOut)
|
|
|
|
}
|
|
|
|
|
|
|
|
type OrderFinish struct {
|
|
|
|
OrderSn string `json:"orderSn"`
|
|
|
|
ParentOrderSn string `json:"parentOrderSn"`
|
|
|
|
RootOrderSn string `json:"rootOrderSn"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// OrderFinish @Title 订单完成
|
|
|
|
func (m *mq) OrderFinish() string {
|
|
|
|
return getQuesuName(queueOrderFinish)
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Title 获取队列名称
|
|
|
|
func getQuesuName(queue string) string {
|
|
|
|
return fmt.Sprintf(queue, Api.Config.AppKey)
|
|
|
|
}
|