From f2e45c24a82d6846d382984aeb21eb0932afbccb Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Nov 2018 15:45:34 +0800 Subject: [PATCH] - mtwm save order related status --- business/jxcallback/orderman/order.go | 4 +-- business/jxstore/cms/sync.go | 1 + business/partner/purchase/mtwm/mtwm.go | 2 +- business/partner/purchase/mtwm/order.go | 36 ++++++++++++++++++++++- business/partner/purchase/mtwm/waybill.go | 4 ++- controllers/mtwm_callback.go | 7 +++-- 6 files changed, 46 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 2b23fe5ad..d0bc61d3a 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -129,7 +129,6 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm. order.ID = 0 order.WaybillVendorID = model.VendorIDUnknown order.OrderFinishedAt = utils.DefaultTimeValue - order.OrderCreatedAt = order.StatusTime // hardcode 兼容京东消息错序问题 orderStatus := &model.OrderStatus{} @@ -144,6 +143,7 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm. order.VendorStatus = orderStatus.VendorStatus order.StatusTime = orderStatus.StatusTime } + order.OrderCreatedAt = order.StatusTime // globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order) db.Begin() @@ -166,7 +166,7 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm. for _, sku := range order.Skus { sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)," 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] + ";" if _, err = db.Raw(sql, params...).Exec(); err != nil { diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 2fb5db9e0..0083782ae 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -56,6 +56,7 @@ func Init() { model.VendorIDJD: api.JdAPI, model.VendorIDELM: api.ElmAPI, model.VendorIDEBAI: api.EbaiAPI, + model.VendorIDMTWM: api.MtwmAPI, } CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler) for k, v := range partner.PurchasePlatformHandlers { diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index ab572b2b4..34e86d5af 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -22,7 +22,7 @@ type PurchaseHandler struct { func init() { curPurchaseHandler = new(PurchaseHandler) - // partner.RegisterPurchasePlatform(curPurchaseHandler) + partner.RegisterPurchasePlatform(curPurchaseHandler) } func (c *PurchaseHandler) GetVendorID() int { diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 246e8ffa6..3be8d2604 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -131,7 +131,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or orderID := GetOrderIDFromMsg(msg) vendorStatus := "" remark := "" - statusTime := time.Now().Unix() + statusTime := utils.Str2Int64(msg.Data.Get("timestamp")) switch msg.Cmd { case mtwmapi.MsgTypeUserUrgeOrder, mtwmapi.MsgTypeOrderModified, mtwmapi.MsgTypeOrderFinancial: vendorStatus = msg.Cmd @@ -161,6 +161,40 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or 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 { if timeStamp < 1538103149 { // 立即达订单给的是1(而不是空,0),1538103149不是特殊值,只是一个任意之前的时间,这样写可以处理 return utils.DefaultTimeValue diff --git a/business/partner/purchase/mtwm/waybill.go b/business/partner/purchase/mtwm/waybill.go index 340ce063a..3aa3f60c3 100644 --- a/business/partner/purchase/mtwm/waybill.go +++ b/business/partner/purchase/mtwm/waybill.go @@ -32,6 +32,7 @@ func (c *PurchaseHandler) onWaybillMsg(msg *mtwmapi.CallbackMsg) (response *mtwm func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal *model.Waybill) { orderID := GetOrderIDFromMsg(msg) + vendorStatus := msg.Data.Get("logistics_status") retVal = &model.Waybill{ VendorOrderID: orderID, OrderVendorID: model.VendorIDMTWM, @@ -39,7 +40,8 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal WaybillVendorID: model.VendorIDMTWM, CourierName: msg.Data.Get("dispatcher_name"), 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"))), Remark: "", } diff --git a/controllers/mtwm_callback.go b/controllers/mtwm_callback.go index f59826ef4..5c371a93a 100644 --- a/controllers/mtwm_callback.go +++ b/controllers/mtwm_callback.go @@ -2,6 +2,7 @@ package controllers import ( "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" "github.com/astaxie/beego" ) @@ -12,10 +13,10 @@ type MtwmController struct { func (c *MtwmController) onCallbackMsg(msgType string) { c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "") - _, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request) + msg, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request) if callbackResponse == nil { - // callbackResponse = mtwm.OnOrderCallbackMsg(msg) - callbackResponse = mtwmapi.Err2CallbackResponse(nil, "") + callbackResponse = mtwm.OnOrderCallbackMsg(msg) + // callbackResponse = mtwmapi.Err2CallbackResponse(nil, "") } c.Data["json"] = callbackResponse c.ServeJSON()