diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index b1c11f057..5a84a4b5f 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -252,19 +252,30 @@ func GetComplaintReasons() (complaintReasonList []*dadaapi.ComplaintReason) { return complaintReasonList } -func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, waybillVendorID string, complaintID int) (err error) { - wayBillList, err := dao.GetComplaintList(dao.GetDB(), vendorOrderID, "") +func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, waybillVendorID string, complaintID int, waybillID string) (err error) { + wayBillList, err := dao.GetComplaintList(dao.GetDB(), vendorOrderID, waybillID) if err != nil { return err } if len(wayBillList) != model.YES { return fmt.Errorf("订单所属运单不存在,或运单为分配骑手,无法投诉") } + if err == nil && len(wayBillList) > 0 { - for _, v := range wayBillList { - if utils.Int2Str(v.WaybillVendorID) == waybillVendorID { - p := partner.GetDeliveryPlatformFromVendorID(wayBillList[0].WaybillVendorID).Handler - err = p.ComplaintRider(v, complaintID, complaintReasonsMap[complaintID]) + switch wayBillList[0].WaybillVendorID { + case model.VendorIDFengNiao, model.VendorIDDada, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDSFPS: + tripartiteDelivery := partner.GetDeliveryPlatformFromVendorID(wayBillList[0].WaybillVendorID) + if tripartiteDelivery != nil { + err = tripartiteDelivery.Handler.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID]) + } else { + err = fmt.Errorf("投诉三方配送获取运单失败") + } + case model.VendorIDMTWM, model.VendorIDDD, model.VendorIDJD, model.VendorIDEBAI, model.VendorIDTaoVegetable: + platformDelivery := partner.GetPurchaseOrderHandlerFromVendorID(wayBillList[0].WaybillVendorID) + if platformDelivery != nil { + err = platformDelivery.ComplaintRider(wayBillList[0].VendorOrderID, complaintID, complaintReasonsMap[complaintID]) + } else { + err = fmt.Errorf("投诉平台配送获取运单失败") } } } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index a7aaf1a0e..f9751d934 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1300,7 +1300,7 @@ func GetComplaintList(db *DaoDB, orderId string, vendorWaybillId string) ([]*mod param = append(param, vendorWaybillId) } - sql += ` AND waybill_vendor_id IN (?,?,?) AND courier_name <> '' AND courier_mobile <> '' ORDER BY waybill_created_at ` + sql += ` AND waybill_vendor_id IN (?,?,?) ` param = append(param, model.VendorIDFengNiao, model.VendorIDDada, model.VendorIDMTPS) var data []*model.Waybill diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index 17d73aeb6..09c34caf0 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -85,8 +85,7 @@ func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, } func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { - err = api.FnAPI.ComplaintRider(bill.VendorOrderID, bill.VendorWaybillID, complaintReson2FnResonMap[resonID], resonContent) - return err + return api.FnAPI.ComplaintRider(bill.VendorOrderID, bill.VendorWaybillID, complaintReson2FnResonMap[resonID], resonContent) } // 创建蜂鸟配送订单 diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index fb2ea1b55..b48d10d47 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -796,7 +796,7 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G } func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { - return err + return fmt.Errorf("饿了么暂无投诉骑手API") } // 转自配送时取消非专送混合送门店取消理由 diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index 30124e11a..ef35d475c 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -166,12 +166,29 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia } // 只有有售后订单就更新此订单的结算信息 + var db = dao.GetDB() if utils.Str2Int(orderStatus.VendorStatus) == ebaiapi.OrderPartRefundSuccess { orderData, err2 := api.EbaiAPI.OrderPartRefundGet(orderStatus.RefVendorOrderID) if err2 == nil && utils.MustInterface2Int64(orderData["shop_fee"]) != model.NO { goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDEBAI) goodsOrder.TotalShopMoney = utils.MustInterface2Int64(orderData["shop_fee"]) - dao.UpdateEntity(dao.GetDB(), goodsOrder, "TotalShopMoney") + // 门店结算小于等于50为扣点 + afsSkuList, _ := dao.GetOrderRefundSkuList(db, []string{goodsOrder.VendorOrderID}) + for _, v := range goodsOrder.Skus { + for _, v2 := range afsSkuList { + if v.VendorSkuID == v2.VendorSkuID && v2.IsAfsOrder == model.YES { + switch goodsOrder.EarningType { + case model.EarningTypeQuote: // 报价 + goodsOrder.EarningPrice = goodsOrder.EarningPrice - (v.ShopPrice * int64(v2.Count)) + case model.EarningTypePoints: + afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(v2.AfsOrderID, v2.VendorID) + goodsOrder.EarningPrice = goodsOrder.EarningPrice - afsOrder.AfsTotalShopMoney + } + } + } + } + + dao.UpdateEntity(dao.GetDB(), goodsOrder, "TotalShopMoney", "EarningPrice") } } if utils.Str2Int(orderStatus.VendorStatus) == ebaiapi.OrderUserCancelMerchantAgreed { @@ -181,23 +198,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia afs.Flag = model.YES dao.UpdateEntity(dao.GetDB(), afs, "Status", "VendorStatus", "Flag") - //skuList, _ := dao.GetSimpleOrderSkus(db, orderStatus.RefVendorOrderID, nil) - //totalSkuCount := 0 - //for _, v := range skuList { - // totalSkuCount += v.Count - //} - // - //financialSku, _ := dao.GetOrderRefundSkuList(db, []string{orderStatus.RefVendorOrderID}) - //refundSkuCount := 0 - //for _, v := range financialSku { - // refundSkuCount += v.Count - //} - //if totalSkuCount == refundSkuCount { - // goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, orderStatus.VendorID) - // goodsOrder.Status = model.OrderStatusCanceled - // goodsOrder.VendorStatus = orderStatus.VendorStatus - // dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") - //} } retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil) diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index e579f9959..5e80b35bd 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -908,7 +908,7 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G } func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { - return err + return fmt.Errorf("如果想投诉美团外卖骑手,请拨打美团客服热线:10107888") } // GetCancelDeliveryReason 转自配送时取消非专送混合送门店取消理由 diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index 0b1f09273..402936939 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -252,20 +252,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } mergedStoreStatus := jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus) - // 平台状态和本地状态相同且都为禁用时不再更新 - vendorStatus := bizStatusMtwm2JX(remoteStoreInfo.OpenLevel, remoteStoreInfo.IsOnline) - if vendorStatus == mergedStoreStatus && mergedStoreStatus == model.StoreStatusDisabled { - return nil - } - name = remoteStoreInfo.Name if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 { if storeDetail.VendorStoreName != "" { name = storeDetail.VendorStoreName } - // else { - // name = jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM) - // } } store := fmt.Sprintf("门店id:%d,门店名称:%s,第三方门店状态:%d,本地修改前门店状态%d,本地门店修改后状态:%d,第三方平台Id(美团):%s", storeID, remoteStoreInfo.Name, remoteStoreInfo.IsOnline, storeDetail.Status, mergedStoreStatus, storeDetail.VendorOrgCode) event.AddOperateEvent(jxcontext.AdminCtx, jxcontext.AdminCtx.GetTrackInfo(), store, "", "", 10, "UpdateStore") @@ -288,10 +279,15 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin errList.AddErr(mtapi.PoiSave(storeDetail.VendorStoreID, params)) } if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 { + // 平台状态和本地状态相同且都为禁用时不再更新 + vendorStatus := bizStatusMtwm2JX(remoteStoreInfo.OpenLevel, remoteStoreInfo.IsOnline) + if vendorStatus == mergedStoreStatus && mergedStoreStatus == model.StoreStatusDisabled { + return nil + } + errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, mergedStoreStatus)) } errList.AddErr(p.UpdateStoreOpTime(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, storeDetail.GetOpTimeList())) - // errList.AddErr(p.UpdateStoreBoxFee(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)) return errList.GetErrListAsOne() } diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 9b321682a..9f6b590a3 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -906,7 +906,7 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G } func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { - return err + return fmt.Errorf("淘宝暂未对接配送API") } // GetCancelDeliveryReason 转自配送时取消非专送混合送门店取消理由 diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index ace05f2b5..46688fdbe 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -990,7 +990,7 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G } func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { - return err + return fmt.Errorf("抖店暂不提供投诉骑手API") } // GetCancelDeliveryReason 转自配送时取消非专送混合送门店取消理由 diff --git a/controllers/jx_order.go b/controllers/jx_order.go index fa97393f5..7593aaf49 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -1018,13 +1018,14 @@ func (c *OrderController) GetComplaintReasons() { // @Param token header string true "认证token" // @Param vendorOrderID formData string true "订单ID" // @Param waybillVendorID formData string true "运单所属厂商ID" +// @Param waybillID formData string false "运单ID" // @Param complaintID formData int true "投诉原因ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /ComplaintRider [post] func (c *OrderController) ComplaintRider() { c.callComplaintRider(func(params *tOrderComplaintRiderParams) (retVal interface{}, errCode string, err error) { - err = orderman.ComplaintRider(params.Ctx, params.VendorOrderID, params.WaybillVendorID, params.ComplaintID) + err = orderman.ComplaintRider(params.Ctx, params.VendorOrderID, params.WaybillVendorID, params.ComplaintID, params.WaybillID) return retVal, "", err }) }