diff --git a/business/jxcallback/orderman/orderman.go b/business/jxcallback/orderman/orderman.go index 8c9e2176b..c6d902311 100644 --- a/business/jxcallback/orderman/orderman.go +++ b/business/jxcallback/orderman/orderman.go @@ -22,7 +22,8 @@ const ( ) var ( - ErrCanNotFindOrder = errors.New("找不到相应订单") + ErrCanNotFindOrder = errors.New("找不到相应订单") + ErrCanNotFindWaybill = errors.New("找不到相应运单") ) var ( diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 3269df500..4f10b1244 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -106,3 +106,18 @@ func (w *OrderManager) addWaybillStatus(bill *model.Waybill, db orm.Ormer, addPa } return isDuplicated, err } + +func (c *OrderManager) LoadWaybill(vendorWaybillID string, waybillVendorID int) (bill *model.Waybill, err error) { + db := orm.NewOrm() + bill = &model.Waybill{ + VendorWaybillID: vendorWaybillID, + WaybillVendorID: waybillVendorID, + } + if err = db.Read(bill, "VendorWaybillID", "WaybillVendorID"); err != nil { + if err == orm.ErrNoRows { + err = ErrCanNotFindWaybill + } + globals.SugarLogger.Infof("LoadWaybill vendorWaybillID:%s failed with error:%v", vendorWaybillID, err) + } + return bill, err +} diff --git a/business/partner/partner.go b/business/partner/partner.go index 5dd08ccb2..579e4af12 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -43,6 +43,8 @@ type IOrderManager interface { LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) + + LoadWaybill(vendorWaybillID string, waybillVendorID int) (bill *model.Waybill, err error) } type IPurchasePlatformHandler interface { diff --git a/business/partner/purchase/elm/order.go b/business/partner/purchase/elm/order.go index eca53b3d2..a6920b80f 100644 --- a/business/partner/purchase/elm/order.go +++ b/business/partner/purchase/elm/order.go @@ -15,7 +15,6 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" - "git.rosy.net.cn/jx-callback/legacy/freshfood" ) const ( @@ -237,7 +236,8 @@ func (c *PurchaseHandler) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg) StatusTime: utils.Timestamp2Time(msg.UpdateTime), } if globals.ReallyCallPlatformAPI { - freshfood.FreshFoodAPI.ELMClientUrgeOrder(msg.OrderID) + // freshfood.FreshFoodAPI.ELMClientUrgeOrder(msg.OrderID) + c.ClientUrgeOrder(msg.OrderID) } return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus) } diff --git a/business/partner/purchase/elm/order_legacy_urge.go b/business/partner/purchase/elm/order_legacy_urge.go new file mode 100644 index 000000000..a6ab32f94 --- /dev/null +++ b/business/partner/purchase/elm/order_legacy_urge.go @@ -0,0 +1,51 @@ +package elm + +import ( + "github.com/KenmyZhang/aliyun-communicate" + + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/globals" +) + +const ( + ELM_SMS_SIGN_NAME = "好菜鲜生" //饿了么短信推送的签名 + ELM_SMS_REMINDERS_DAIPEISHONG_TEMPLATECODE = "SMS_135028810" //饿了么待配送模板ID + ELM_SMS_REMINDERS_PEISHOGNZHONG_TEMPLATECODE = "SMS_139225187" //饿了么配送中模板ID +) + +func (c *PurchaseHandler) ClientUrgeOrder(orderID string) (err error) { + go func() (err error) { + globals.SugarLogger.Debugf("ClientUrgeOrder orderID:%s", orderID) + order, err2 := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDELM) + if err = err2; err == nil { + templateCode := "" + var templateParams map[string]interface{} + if order.Status == model.OrderStatusFinishedPickup { + templateCode = ELM_SMS_REMINDERS_DAIPEISHONG_TEMPLATECODE + templateParams = map[string]interface{}{ + "name": order.ConsigneeName, + } + } else if order.Status == model.OrderStatusDelivering { + bill, err2 := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) + if err = err2; err == nil { + templateCode = ELM_SMS_REMINDERS_PEISHOGNZHONG_TEMPLATECODE + templateParams = map[string]interface{}{ + "name": order.ConsigneeName, + "number": bill.CourierMobile, + } + } + } + if templateCode != "" { + smsClient := aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/") + _, err = smsClient.Execute(globals.AliKey, globals.AliSecret, order.ConsigneeMobile, ELM_SMS_SIGN_NAME, templateCode, string(utils.MustMarshal(templateParams))) + } + } + if err != nil { + globals.SugarLogger.Warnf("ClientUrgeOrder orderID:%s failed with error:%v", orderID, err) + } + return err + }() + return err +} diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 8760e8330..57ef30953 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -11,7 +11,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" - "git.rosy.net.cn/jx-callback/legacy/freshfood" ) var ( @@ -46,11 +45,9 @@ func (c *PurchaseHandler) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi } else { status := c.callbackMsg2Status(msg) if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment { - if false { //globals.ReallyCallPlatformAPI { - freshfood.FreshFoodAPI.JDOrderComment(msg) - } - if err := c.onOrderComment(msg); err != nil { - // return jdapi.Err2CallbackResponse(err, status.VendorStatus) + if globals.ReallyCallPlatformAPI { + // freshfood.FreshFoodAPI.JDOrderComment(msg) + c.onOrderComment(msg) } } err := partner.CurOrderManager.OnOrderStatusChanged(status) diff --git a/business/partner/purchase/jd/order_legacy_comment.go b/business/partner/purchase/jd/order_legacy_comment.go index 08b4e345e..4cd4ca505 100644 --- a/business/partner/purchase/jd/order_legacy_comment.go +++ b/business/partner/purchase/jd/order_legacy_comment.go @@ -121,17 +121,17 @@ func (c *PurchaseHandler) onOrderComment(msg *jdapi.CallbackOrderMsg) (err error } if err == nil { if isNewComment { - globals.SugarLogger.Debug("fuck1") err = dao.CreateEntity(db, comment) } else { - globals.SugarLogger.Debug("fuck2") _, err = dao.UpdateEntity(db, comment) } } - globals.SugarLogger.Debugf("onOrderComment err:%v", err) } } } + if err != nil { + globals.SugarLogger.Warnf("onOrderComment failed with error:%v", err) + } return err }() return err