From 64f26c00172145e9c053cdfa3e8cdae5e9c50bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 4 May 2023 15:48:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E6=96=B0=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E4=BF=A1=E6=81=AF(=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B4=B9,=E4=BF=9D=E9=99=A9=E8=B4=B9),?= =?UTF-8?q?=E9=85=8D=E9=80=81=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/basesch/basesch_ext.go | 12 ++++- business/partner/delivery/rider.go | 47 ++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index c7df132cb..610d298c3 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -230,7 +230,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s ) waybills, _ := dao.GetWaybills(db, order.VendorOrderID) //美团的订单如果是同意全部退款,要取消所有三方运单并停止调度 - if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX { + if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX || order.VendorID == model.VendorIDEBAI { var ( afsCount, orderCount int ) @@ -255,6 +255,16 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s order.VendorStatus = utils.Int2Str(model.OrderStatusCanceled) partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"}) } + if afsCount == orderCount && order.VendorID == model.VendorIDEBAI { + order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled + order.Status = model.OrderStatusCanceled + order.VendorStatus = "10" // 饿百取消订单 + partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"}) + for _, v := range waybills { + c.CancelWaybill(v, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) + } + + } } if order.EarningType == model.EarningTypePoints { var ( diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 6194b1268..15618643d 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -20,6 +20,33 @@ import ( "git.rosy.net.cn/jx-callback/globals" ) +var ( + // 换成京西结算账号 + jxSettleIdMap = map[int64]bool{ + // 菜市 + 7030017: true, + 7974502: true, + 100639968: true, + 100715370: true, + 100822700: true, + 101093797: true, + 102715080: true, + 102114997: true, + 102641826: true, + 102651220: true, + // 果园啊 + 6572945: true, + 6772759: true, + 101968432: true, + 102101411: true, + 102176700: true, + 102369597: true, + 102416681: true, + 102924441: true, + 103376926: true, + } +) + // 订单骑手信息推送:将获取到的三方配送订单,且订单状态为配送中的订单,将配送人员的信息返回给订单方 // 该方法为定时任务,没五分钟推送一次订单消息,订单状态发生变化时 //配送状态code,如下提供配送状态枚举值, @@ -397,18 +424,36 @@ func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) er taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { storeListValue := batchItemList[0].([]*model.StoreMap) for _, v := range storeListValue { - storeOrder, err := mtwm.GetAPI(v.VendorOrgCode, v.StoreID, v.VendorStoreID).GetStoreBillList(&mtwmapi.Bill{ + storeOrder, settleId, err := mtwm.GetAPI(v.VendorOrgCode, v.StoreID, v.VendorStoreID).GetStoreBillList(&mtwmapi.Bill{ AppPoiCode: v.VendorStoreID, StartDate: from, EndDate: to, Offset: 0, Limit: 200, }) + globals.SugarLogger.Debugf("==========order lens : %d,settleID :%d,err:%v", len(storeOrder), settleId, err) if err != nil { + globals.SugarLogger.Debugf("GetStoreBillList err : %v", err) return nil, err } + // 如果收款账户为京西的收款账户,则此门店不是服务商(否则是服务商,使用门店发单[需要自己的账户充值金额才行]!) + if settleId != model.NO && jxSettleIdMap[settleId] { + globals.SugarLogger.Debugf("=================================1") + brandSql := `UPDATE store_map s SET s.create_delivery_type = ?,s.is_service = ? WHERE g.vendor_store_id = ? AND d.deleted_at = ?` + if _, err := dao.ExecuteSQL(db, brandSql, []interface{}{model.NO, model.NO, v.VendorStoreID, utils.DefaultTimeValue}...); err != nil { + globals.SugarLogger.Debugf("将门店修改为非服务商和系统发单: %v", err) + } + } else { + globals.SugarLogger.Debugf("=================================1.1") + brandSql := `UPDATE store_map s SET s.create_delivery_type = ?,s.is_service = ? WHERE g.vendor_store_id = ? AND d.deleted_at = ?` + if _, err := dao.ExecuteSQL(db, brandSql, []interface{}{model.YES, model.YES, v.VendorStoreID, utils.DefaultTimeValue}...); err != nil { + globals.SugarLogger.Debugf("将门店修改为服务商和门店发单: %v", err) + } + } + globals.SugarLogger.Debugf("=================================2") for _, so := range storeOrder { + globals.SugarLogger.Debugf("=================================so : %s", utils.Format4Output(so, false)) // 更新订单的结算信息 if so.PlatformSettlement > 0 { goodsOrderSql := `UPDATE goods_order g SET g.total_shop_money = ? WHERE g.vendor_order_id = ? `