- use new jx to process jd bad comment and elm urge order

This commit is contained in:
gazebo
2018-10-09 10:14:28 +08:00
parent 818a7d95b1
commit 7f2d829914
7 changed files with 78 additions and 12 deletions

View File

@@ -22,7 +22,8 @@ const (
)
var (
ErrCanNotFindOrder = errors.New("找不到相应订单")
ErrCanNotFindOrder = errors.New("找不到相应订单")
ErrCanNotFindWaybill = errors.New("找不到相应运单")
)
var (

View File

@@ -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
}

View File

@@ -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 {

View File

@@ -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)
}

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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