- mtwm save order related status

This commit is contained in:
gazebo
2018-11-30 15:45:34 +08:00
parent d47f1bd41b
commit f2e45c24a8
6 changed files with 46 additions and 8 deletions

View File

@@ -129,7 +129,6 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.
order.ID = 0 order.ID = 0
order.WaybillVendorID = model.VendorIDUnknown order.WaybillVendorID = model.VendorIDUnknown
order.OrderFinishedAt = utils.DefaultTimeValue order.OrderFinishedAt = utils.DefaultTimeValue
order.OrderCreatedAt = order.StatusTime
// hardcode 兼容京东消息错序问题 // hardcode 兼容京东消息错序问题
orderStatus := &model.OrderStatus{} orderStatus := &model.OrderStatus{}
@@ -144,6 +143,7 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.
order.VendorStatus = orderStatus.VendorStatus order.VendorStatus = orderStatus.VendorStatus
order.StatusTime = orderStatus.StatusTime order.StatusTime = orderStatus.StatusTime
} }
order.OrderCreatedAt = order.StatusTime
// globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order) // globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
db.Begin() db.Begin()
@@ -166,7 +166,7 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.
for _, sku := range order.Skus { for _, sku := range order.Skus {
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)," sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, sku.SkuID, sku.JxSkuID, sku.SkuName, params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, sku.SkuID, sku.JxSkuID, sku.SkuName,
sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.StatusTime) sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.OrderCreatedAt)
} }
sql = sql[:len(sql)-1] + ";" sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil { if _, err = db.Raw(sql, params...).Exec(); err != nil {

View File

@@ -56,6 +56,7 @@ func Init() {
model.VendorIDJD: api.JdAPI, model.VendorIDJD: api.JdAPI,
model.VendorIDELM: api.ElmAPI, model.VendorIDELM: api.ElmAPI,
model.VendorIDEBAI: api.EbaiAPI, model.VendorIDEBAI: api.EbaiAPI,
model.VendorIDMTWM: api.MtwmAPI,
} }
CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler) CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler)
for k, v := range partner.PurchasePlatformHandlers { for k, v := range partner.PurchasePlatformHandlers {

View File

@@ -22,7 +22,7 @@ type PurchaseHandler struct {
func init() { func init() {
curPurchaseHandler = new(PurchaseHandler) curPurchaseHandler = new(PurchaseHandler)
// partner.RegisterPurchasePlatform(curPurchaseHandler) partner.RegisterPurchasePlatform(curPurchaseHandler)
} }
func (c *PurchaseHandler) GetVendorID() int { func (c *PurchaseHandler) GetVendorID() int {

View File

@@ -131,7 +131,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or
orderID := GetOrderIDFromMsg(msg) orderID := GetOrderIDFromMsg(msg)
vendorStatus := "" vendorStatus := ""
remark := "" remark := ""
statusTime := time.Now().Unix() statusTime := utils.Str2Int64(msg.Data.Get("timestamp"))
switch msg.Cmd { switch msg.Cmd {
case mtwmapi.MsgTypeUserUrgeOrder, mtwmapi.MsgTypeOrderModified, mtwmapi.MsgTypeOrderFinancial: case mtwmapi.MsgTypeUserUrgeOrder, mtwmapi.MsgTypeOrderModified, mtwmapi.MsgTypeOrderFinancial:
vendorStatus = msg.Cmd vendorStatus = msg.Cmd
@@ -161,6 +161,40 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or
return orderStatus return orderStatus
} }
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite {
if isAcceptIt {
err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID))
} else {
err = api.MtwmAPI.OrderCancel(utils.Str2Int64(order.VendorOrderID))
}
}
return err
}
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID))
}
return nil
}
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
return err
}
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
return nil
}
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
return err
}
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
return err
}
func getTimeFromTimestamp(timeStamp int64) time.Time { func getTimeFromTimestamp(timeStamp int64) time.Time {
if timeStamp < 1538103149 { // 立即达订单给的是1而不是空01538103149不是特殊值只是一个任意之前的时间这样写可以处理 if timeStamp < 1538103149 { // 立即达订单给的是1而不是空01538103149不是特殊值只是一个任意之前的时间这样写可以处理
return utils.DefaultTimeValue return utils.DefaultTimeValue

View File

@@ -32,6 +32,7 @@ func (c *PurchaseHandler) onWaybillMsg(msg *mtwmapi.CallbackMsg) (response *mtwm
func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal *model.Waybill) { func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal *model.Waybill) {
orderID := GetOrderIDFromMsg(msg) orderID := GetOrderIDFromMsg(msg)
vendorStatus := msg.Data.Get("logistics_status")
retVal = &model.Waybill{ retVal = &model.Waybill{
VendorOrderID: orderID, VendorOrderID: orderID,
OrderVendorID: model.VendorIDMTWM, OrderVendorID: model.VendorIDMTWM,
@@ -39,7 +40,8 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal
WaybillVendorID: model.VendorIDMTWM, WaybillVendorID: model.VendorIDMTWM,
CourierName: msg.Data.Get("dispatcher_name"), CourierName: msg.Data.Get("dispatcher_name"),
CourierMobile: msg.Data.Get("dispatcher_mobile"), CourierMobile: msg.Data.Get("dispatcher_mobile"),
VendorStatus: msg.Data.Get("logistics_status"), VendorStatus: vendorStatus,
Status: c.GetWaybillStatusFromVendorStatus(vendorStatus),
StatusTime: getTimeFromTimestamp(utils.Str2Int64(msg.Data.Get("time"))), StatusTime: getTimeFromTimestamp(utils.Str2Int64(msg.Data.Get("time"))),
Remark: "", Remark: "",
} }

View File

@@ -2,6 +2,7 @@ package controllers
import ( import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego" "github.com/astaxie/beego"
) )
@@ -12,10 +13,10 @@ type MtwmController struct {
func (c *MtwmController) onCallbackMsg(msgType string) { func (c *MtwmController) onCallbackMsg(msgType string) {
c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "") c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "")
_, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request) msg, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request)
if callbackResponse == nil { if callbackResponse == nil {
// callbackResponse = mtwm.OnOrderCallbackMsg(msg) callbackResponse = mtwm.OnOrderCallbackMsg(msg)
callbackResponse = mtwmapi.Err2CallbackResponse(nil, "") // callbackResponse = mtwmapi.Err2CallbackResponse(nil, "")
} }
c.Data["json"] = callbackResponse c.Data["json"] = callbackResponse
c.ServeJSON() c.ServeJSON()