From cc4b438983034909ae996d9acd1bd97bbd9856fa Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 28 May 2019 10:50:11 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=85=B3=E9=94=AE=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E5=8F=91=E5=BE=AE=E4=BF=A1=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch_afs.go | 3 + business/jxutils/weixinmsg/weixinmsg.go | 57 ++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch_afs.go b/business/jxcallback/scheduler/defsch/defsch_afs.go index 917428a81..7e3044ca2 100644 --- a/business/jxcallback/scheduler/defsch/defsch_afs.go +++ b/business/jxcallback/scheduler/defsch/defsch_afs.go @@ -1,6 +1,7 @@ package defsch import ( + "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/msghub" ) @@ -9,6 +10,7 @@ func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err if order.Status == model.AfsOrderStatusWait4Approve { if !isPending { msghub.OnNewWait4ApproveAfsOrder(order) + weixinmsg.NotifyAfsOrderStatus(order) } } return err @@ -18,6 +20,7 @@ func (s *DefScheduler) OnAfsOrderStatusChanged(order *model.AfsOrder, status *mo if status.Status == model.AfsOrderStatusWait4ReceiveGoods { if !isPending { msghub.OnKeyAfsOrderStatusChanged(order) + weixinmsg.NotifyAfsOrderStatus(order) } } return err diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index c73fa1fa3..12f057f5d 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -5,6 +5,8 @@ import ( "strings" "time" + "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" @@ -49,7 +51,10 @@ const ( WX_NORMAL_STORE_MSG_TEMPLATE_ID = "7ngcTFYiUFw66BMzIYntM1tpy-xZkJwlcCT5pVtXwtw" WX_CHANGE_APPROVED_TEMPLATE_ID = "gIG2olBZtQbjXmp6doNB_dESu60By5xuXYOGxksLv3Y" WX_CHANGE_REJECTED_TEMPLATE_ID = "tn2QXWi4HtSIwaztmtN6Bb2uzNL-jBxWltCZTDNJuYE" - WS_ORDER_CANCLED_TEMPLATE_ID = "iFozwiCsQdMs7VTiPXoBne45jKIQkoyxdGHSeAExP9U" + WX_ORDER_CANCLED_TEMPLATE_ID = "iFozwiCsQdMs7VTiPXoBne45jKIQkoyxdGHSeAExP9U" + + WX_AFS_ORDER_WAIT4APPROVE_TEMPLATE_ID = "X29udtANvhX6x1Lyh-T40NGNjRXBbUj5oSBTfDhZAqU" + WX_AFS_ORDER_STATUS_CHANGED_TEMPLATE_ID = "99T33rrXX0VboO1hljs4x8dDoLiSj3QX_rOikPHIXkg" ) var ( @@ -305,7 +310,7 @@ func NotifyUserApplyCancel(order *model.GoodsOrder, cancelReason string) (err er }, } storeID := jxutils.GetSaleStoreIDFromOrder(order) - return SendMsgToStore(storeID, WS_ORDER_CANCLED_TEMPLATE_ID, "", "", data) + return SendMsgToStore(storeID, WX_ORDER_CANCLED_TEMPLATE_ID, "", "", data) } @@ -449,6 +454,54 @@ func NotifyStoreMessage(storeID, msgID, msgStatusID int, title, content string) return SendMsgToStore(storeID, templateID, fileURL, fmt.Sprintf(WX_MINI_TO_SHOW_MSG, msgID, msgStatusID), data) } +func NotifyAfsOrderStatus(afsOrder *model.AfsOrder) (err error) { + globals.SugarLogger.Debugf("NotifyAfsOrderStatus orderID:%s", afsOrder.VendorOrderID) + if afsOrder.VendorID == model.VendorIDELM { + return nil + } + + var templateID, comment string + if afsOrder.Status == model.AfsOrderStatusWait4Approve { + templateID = WX_AFS_ORDER_WAIT4APPROVE_TEMPLATE_ID + comment = "您有新售后单,请尽快处理" + } else if afsOrder.Status == model.AfsOrderStatusWait4ReceiveGoods { + templateID = WX_AFS_ORDER_STATUS_CHANGED_TEMPLATE_ID + comment = "商家您好!如顾客商品已成功退回,请点击确认收货" + } else { + return err + } + order, err := partner.CurOrderManager.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID) + if err != nil { + return err + } + + data := map[string]interface{}{ + "first": map[string]interface{}{ + "value": fmt.Sprintf("%s 第%d号订单,订单编号:%s", model.VendorChineseNames[afsOrder.VendorID], order.OrderSeq, afsOrder.VendorOrderID), + "color": WX_HIGHLEVEL_TEMPLATE_COLOR2, + }, + "keyword1": map[string]interface{}{ + "value": afsOrder.AfsOrderID, + "color": WX_TEMPLATE_VENDERCOLOR_JDDJ, + }, + "keyword2": map[string]interface{}{ + "value": model.OrderStatusName[afsOrder.Status], + "color": WX_HIGHLEVEL_TEMPLATE_COLOR, + }, + "keyword3": map[string]interface{}{ + "value": utils.Time2Str(afsOrder.CreatedAt), + "color": venderColors[order.VendorID], + }, + "remark": map[string]interface{}{ + "value": comment, + "color": WX_NEW_ORDER_TEMPLATE_COLOR, + }, + } + storeID := jxutils.GetSaleStoreIDFromAfsOrder(afsOrder) + err = SendMsgToStore(storeID, templateID, globals.WxBackstageHost+fmt.Sprintf("%s%d", WX_TO_ORDER_PAGE_URL, storeID), WX_MINI_TO_ORDER_PAGE_URL, data) + return err +} + func FormatDeliveryTime(order *model.GoodsOrder) string { var tmpTime time.Time if order.ExpectedDeliveredTime == utils.DefaultTimeValue {