- all call CallFuncLogError add order info
- callLegacyMsgHandler, callNewMsgHandler and generateLegacyJxOrder config - call legacy lefted msg handler in new process(elm urge order and bad comment on jd)
This commit is contained in:
@@ -41,7 +41,7 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.Update(status, "DuplicatedCount")
|
||||
return err
|
||||
}, "addOrderOrWaybillStatus update DuplicatedCount")
|
||||
}, "addOrderOrWaybillStatus update DuplicatedCount, status:%v", status)
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/scheduler"
|
||||
"git.rosy.net.cn/jx-callback/legacy/freshfood"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -117,7 +118,7 @@ func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel
|
||||
return elmapi.Err2CallbackResponse(controller.OrderManager.OnOrderStatusChanged(status), status.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *OrderController) getOrderInfo(orderID string) (order *model.GoodsOrder, err error) {
|
||||
func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
|
||||
result, err := api.ElmAPI.GetOrder(orderID)
|
||||
if err == nil {
|
||||
phoneList := result["phoneList"].([]interface{})
|
||||
@@ -180,7 +181,7 @@ func (c *OrderController) getOrderInfo(orderID string) (order *model.GoodsOrder,
|
||||
//
|
||||
func (c *OrderController) onOrderNew(msg map[string]interface{}) (response *elmapi.CallbackResponse) {
|
||||
// todo 这里应该可以直接用msg里的内容,而不用再次去查
|
||||
order, err := c.getOrderInfo(msg["orderId"].(string))
|
||||
order, err := c.GetOrder(msg["orderId"].(string))
|
||||
if err == nil {
|
||||
order.VendorStatus = c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid)
|
||||
order.Status = model.OrderStatusNew
|
||||
@@ -203,6 +204,9 @@ func (c *OrderController) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg)
|
||||
VendorStatus: utils.Int2Str(msg.MsgType),
|
||||
StatusTime: utils.Timestamp2Time(msg.UpdateTime),
|
||||
}
|
||||
if globals.ReallyCallPlatformAPI {
|
||||
freshfood.FreshFoodAPI.ELMClientUrgeOrder(msg.OrderID)
|
||||
}
|
||||
return elmapi.Err2CallbackResponse(controller.OrderManager.OnOrderStatusChanged(status), status.VendorStatus)
|
||||
}
|
||||
|
||||
@@ -224,9 +228,6 @@ func (c *OrderController) spliltCompositeState(compositeState string) (state str
|
||||
|
||||
// PurchasePlatformHandler
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
globals.SugarLogger.Infof("AcceptOrRefuseOrder order:%v", order)
|
||||
return nil
|
||||
|
||||
if isAcceptIt {
|
||||
err = api.ElmAPI.ConfirmOrder(order.VendorOrderID)
|
||||
} else {
|
||||
@@ -238,30 +239,18 @@ func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
// 饿了么没有拣货这个状态,直接返回成功
|
||||
// 真实流程中也不会调用这个方法,因为接收订单后状态会直接转移到已拣货
|
||||
func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("PickedUpGoods order:%v", order)
|
||||
return nil
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *OrderController) Swtich2SelfDeliver(vendorOrderID string) (err error) {
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver order:%v", vendorOrderID)
|
||||
return nil
|
||||
|
||||
return api.ElmAPI.DeliveryBySelfLite(vendorOrderID)
|
||||
func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
return api.ElmAPI.DeliveryBySelfLite(order.VendorOrderID)
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("SelfDeliverDelievering order:%v", order)
|
||||
return nil
|
||||
|
||||
return api.ElmAPI.StartDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("SelfDeliverDelievered order:%v", order)
|
||||
return nil
|
||||
|
||||
return api.ElmAPI.CompleteDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/scheduler"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"git.rosy.net.cn/jx-callback/legacy/freshfood"
|
||||
)
|
||||
|
||||
type OrderController struct {
|
||||
@@ -49,6 +50,11 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
|
||||
status.Status = model.OrderStatusCanceled
|
||||
case jdapi.OrderStatusUserApplyCancel:
|
||||
status.Status = model.OrderStatusApplyCancel
|
||||
case jdapi.OrderStatusAddComment, jdapi.OrderStatusModifyComment:
|
||||
status.Status = model.OrderStatusUnknown
|
||||
if globals.ReallyCallPlatformAPI {
|
||||
freshfood.FreshFoodAPI.JDOrderComment(msg)
|
||||
}
|
||||
default:
|
||||
status.Status = model.OrderStatusUnknown
|
||||
}
|
||||
@@ -61,12 +67,12 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *model.GoodsOrder, err error) {
|
||||
result, err := api.JdAPI.QuerySingleOrder(msg.BillID)
|
||||
func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
|
||||
result, err := api.JdAPI.QuerySingleOrder(orderID)
|
||||
// globals.SugarLogger.Info(result)
|
||||
if err == nil {
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: msg.BillID,
|
||||
VendorOrderID: orderID,
|
||||
VendorID: model.VendorIDJD,
|
||||
VendorStoreID: result["produceStationNo"].(string),
|
||||
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["produceStationNoIsv"]), 0)),
|
||||
@@ -77,7 +83,7 @@ func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *mode
|
||||
CoordinateType: model.CoordinateTypeMars,
|
||||
BuyerComment: utils.FilterMb4(strings.Trim(utils.Interface2String(result["orderBuyerRemark"]), "\n\r\t ")),
|
||||
ExpectedDeliveredTime: utils.Str2TimeWithDefault(utils.Interface2String(result["orderPreEndDeliveryTime"]), utils.DefaultTimeValue),
|
||||
VendorStatus: msg.StatusID,
|
||||
VendorStatus: utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])),
|
||||
OrderSeq: int(utils.MustInterface2Int64(result["orderNum"])),
|
||||
StatusTime: utils.Str2Time(result["orderPurchaseTime"].(string)),
|
||||
OriginalData: utils.FilterMb4(string(utils.MustMarshal(result))),
|
||||
@@ -103,7 +109,7 @@ func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *mode
|
||||
for _, product2 := range result["product"].([]interface{}) {
|
||||
product := product2.(map[string]interface{})
|
||||
sku := &model.OrderSku{
|
||||
VendorOrderID: msg.BillID,
|
||||
VendorOrderID: orderID,
|
||||
VendorID: model.VendorIDJD,
|
||||
Count: int(utils.MustInterface2Int64(product["skuCount"])),
|
||||
SkuID: int(utils.Str2Int64WithDefault(utils.Interface2String(product["skuIdIsv"]), 0)),
|
||||
@@ -128,7 +134,7 @@ func (c *OrderController) getOrderInfo(msg *jdapi.CallbackOrderMsg) (order *mode
|
||||
|
||||
//
|
||||
func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
|
||||
order, err := c.getOrderInfo(msg)
|
||||
order, err := c.GetOrder(msg.BillID)
|
||||
if err == nil {
|
||||
order.Status = model.OrderStatusNew
|
||||
err = controller.OrderManager.OnOrderNew(order)
|
||||
@@ -140,7 +146,7 @@ func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
|
||||
}
|
||||
|
||||
func (c *OrderController) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse {
|
||||
order, err := c.getOrderInfo(msg)
|
||||
order, err := c.GetOrder(msg.BillID)
|
||||
if err == nil {
|
||||
order.Status = model.OrderStatusAdjust
|
||||
err = controller.OrderManager.OnOrderAdjust(order)
|
||||
@@ -166,41 +172,26 @@ func (c *OrderController) callbackMsg2Status(msg *jdapi.CallbackOrderMsg) *model
|
||||
|
||||
// PurchasePlatformHandler
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
globals.SugarLogger.Infof("AcceptOrRefuseOrder order:%v", order.VendorOrderID)
|
||||
return nil
|
||||
|
||||
_, err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("PickedUpGoods order:%v", order)
|
||||
return nil
|
||||
|
||||
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID)
|
||||
return c.translateOrderRelatedErr(err)
|
||||
}
|
||||
|
||||
func (c *OrderController) Swtich2SelfDeliver(vendorOrderID string) (err error) {
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver order:%v", vendorOrderID)
|
||||
return nil
|
||||
|
||||
_, err = api.JdAPI.ModifySellerDelivery(vendorOrderID)
|
||||
func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID)
|
||||
return c.translateOrderRelatedErr(err)
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("SelfDeliverDelievering order:%v", order)
|
||||
return nil
|
||||
|
||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID)
|
||||
return c.translateOrderRelatedErr(err)
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Infof("SelfDeliverDelievered order:%v", order)
|
||||
return nil
|
||||
|
||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -60,14 +60,14 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err = db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order")
|
||||
}, "OnAdjustOrder delete order, orderID:%s", order.VendorOrderID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err = db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||
return err
|
||||
}, "OnAdjustOrder delete order_sku")
|
||||
}, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -82,7 +82,7 @@ func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (
|
||||
isDuplicated, err := c.addOrderStatus(orderStatus, nil)
|
||||
if err == nil && !isDuplicated {
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus)
|
||||
if globals.HandleLegacyJxOrder {
|
||||
if globals.GenerateLegacyJxOrder {
|
||||
c.legacyJxOrderStatusChanged(orderStatus, nil)
|
||||
}
|
||||
}
|
||||
@@ -116,7 +116,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
|
||||
baseapi.SugarLogger.Infof("insert order_sku error:%v", err)
|
||||
} else {
|
||||
db.Commit()
|
||||
if globals.HandleLegacyJxOrder {
|
||||
if globals.GenerateLegacyJxOrder {
|
||||
c.legacyWriteJxOrder(order, db, isAdjust)
|
||||
}
|
||||
}
|
||||
@@ -221,7 +221,7 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", orderStatus.VendorOrderID).Filter("vendor_id", orderStatus.VendorID).Update(params)
|
||||
return err
|
||||
}, "update order")
|
||||
}, "update order, status:%v", orderStatus)
|
||||
}
|
||||
return isDuplicated, err
|
||||
}
|
||||
@@ -249,6 +249,6 @@ func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill) (err error)
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", bill.VendorOrderID).Filter("vendor_id", bill.OrderVendorID).Update(params)
|
||||
return err
|
||||
}, "update order")
|
||||
}, "update order, bill%v", bill)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err
|
||||
weixinmsg.NotifyWaybillStatus(bill, order)
|
||||
}
|
||||
}
|
||||
if globals.HandleLegacyJxOrder {
|
||||
if globals.GenerateLegacyJxOrder {
|
||||
w.legacyWaybillStatusChanged(bill, db)
|
||||
}
|
||||
}
|
||||
@@ -106,7 +106,7 @@ func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer,
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.QueryTable("waybill").Filter("vendor_waybill_id", bill.VendorWaybillID).Filter("waybill_vendor_id", bill.WaybillVendorID).Update(params)
|
||||
return err
|
||||
}, "update waybill status")
|
||||
}, "update waybill status, bill:%v", bill)
|
||||
}
|
||||
return isDuplicated, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user