From 4eea870713cf1516dcaac2dbb54ad5cb5a7e4141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 22 May 2020 08:39:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E8=B0=83=E6=95=B4=E5=8D=95?= =?UTF-8?q?=E4=B8=8D=E8=87=AA=E5=8A=A8=E5=90=8C=E6=84=8F=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=8D=95=E5=BE=AE=E4=BF=A1=E6=A8=A1=E6=9D=BF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 7 +++- business/jxutils/weixinmsg/weixinmsg.go | 38 +++++++++++++++++++ business/model/dao/dao_order.go | 11 ++++++ business/partner/purchase/mtwm/order.go | 10 ++++- 4 files changed, 63 insertions(+), 3 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 750a63555..1a3df3005 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1358,7 +1358,12 @@ func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) { utils.CallFuncAsync(func() { order = setFakeActualPayPrice(order) netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) - weixinmsg.NotifyNewOrder(order) + //目前暂且认为AdjustCount > 0 就是调整单 + if order.AdjustCount > 0 { + weixinmsg.NotifyAdjustOrder(order) + } else { + weixinmsg.NotifyNewOrder(order) + } smsmsg.NotifyNewOrder(order) OrderProfitWarning(order) smsmsg.NotifyNewUserOrder(order) diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index 306dd8fb0..87795f53d 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -44,6 +44,7 @@ const ( WX_TEMPLATE_VENDERCOLOR_BAD_COMMENTS = "#4F4DA0" WX_NEWORDER_TEMPLATE_ID = "_DtNGwmOeR6TkkTVUblxLIlkV2MAPOX57TkvfdqG6nY" //微信新订单推送 + WX_ADJUSTORDER_TEMPLATE_ID = "N5rmV2-PDf3opjkv23IdLc76VnFThr_uOKSh5FzT13M" //微信调整订单推送 WX_MTPS_DELIVERY_GRABDONE_TEMPLATE_ID = "h4dkON6AgnHz1XmaksEUB_8Bcir4V8MSexUhC149pPE" //微信美团配送员接单推送 WX_MTPS_DELIVERY_DONE_TEMPLATE_ID = "YXdCrQAHZlcZX1htYUiarrLmtkmKAjp7rynjwObgODo" //微信美团配送员配送完成推送 WX_MTPS_UNABLE_DELIVER_TEMPLATE_ID = "ZFph5Hp7oLlrzVRXbsKIC_StmaBeB9Dlp4tlHeAmUQ8" //微信美团配送配送能力不足推送 @@ -718,3 +719,40 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs [] } return "", err } + +func NotifyAdjustOrder(order *model.GoodsOrder) (err error) { + globals.SugarLogger.Debugf("NotifyAdjustOrder orderID:%s", order.VendorOrderID) + if order.VendorID == model.VendorIDELM { + return nil + } + + if !model.IsOrderSolid(order) { + globals.SugarLogger.Infof("NotifyAdjustOrder orderID:%s is not solid", order.VendorOrderID) + return nil + } + sb := new(strings.Builder) + sb.WriteString("老板,") + sb.WriteString(order.ConsigneeName) + sb.WriteString("调整了订单商品,请及时查看!") + sb.WriteString(getOrderDetailBrief(order)) + data := map[string]interface{}{ + "first": map[string]interface{}{ + "value": sb.String(), + "color": WX_NEW_ORDER_TEMPLATE_COLOR, + }, + "keyword1": map[string]interface{}{ + "value": jxutils.IntPrice2Standard(order.NewEarningPrice), + "color": WX_NEW_ORDER_TEMPLATE_COLOR, + }, + "keyword2": map[string]interface{}{ + "value": utils.Time2Str(order.CreatedAt), + "color": WX_NEW_ORDER_TEMPLATE_COLOR, + }, + "keyword3": map[string]interface{}{ + "value": model.OrderStatusName[order.Status], + "color": WX_NEW_ORDER_TEMPLATE_COLOR, + }, + } + storeID := jxutils.GetSaleStoreIDFromOrder(order) + return SendMsgToStore(storeID, WX_ADJUSTORDER_TEMPLATE_ID, globals.WxBackstageHost+fmt.Sprintf("%s%d", WX_TO_ORDER_PAGE_URL, storeID), WX_MINI_TO_ORDER_PAGE_URL, data) +} diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 0f94c9f07..fc8994645 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1270,3 +1270,14 @@ func GetMatterChildOrders(db *DaoDB, vendorOrderID string) (goods []*model.Goods err = GetRows(db, &goods, sql, sqlParams) return goods, err } + +func GetSimpleOrder(db *DaoDB, vendorOrderID string) (goods *model.GoodsOrder, err error) { + sql := ` + SELECT * + FROM goods_order + WHERE vendor_order_id = ? + ` + sqlParams := []interface{}{vendorOrderID} + err = GetRow(db, &goods, sql, sqlParams) + return goods, err +} diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 06e8fff29..71f6e81c9 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -396,8 +396,14 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) (orderSta if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund { if notifyType == mtwmapi.NotifyTypePartyApply { if globals.EnableMtwmStoreWrite { - // api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "请联系商户,让商户发起订单调整") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单 - api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") + goods, err := dao.GetSimpleOrder(dao.GetDB(), orderID) + if err == nil { + if goods.Status < model.OrderStatusDelivering { + api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") + } else { + api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "商品配送中,请联系门店。") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单 + } + } } } else if notifyType == mtwmapi.NotifyTypeSuccess { vendorStatus = fakeOrderAdjustFinished