修改骑手投诉功能

This commit is contained in:
邹宗楠
2023-12-28 18:17:59 +08:00
parent cc22a42237
commit eaa06168d7
10 changed files with 49 additions and 42 deletions

View File

@@ -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("投诉平台配送获取运单失败")
}
}
}

View File

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

View File

@@ -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)
}
// 创建蜂鸟配送订单

View File

@@ -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")
}
// 转自配送时取消非专送混合送门店取消理由

View File

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

View File

@@ -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 转自配送时取消非专送混合送门店取消理由

View File

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

View File

@@ -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 转自配送时取消非专送混合送门店取消理由

View File

@@ -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 转自配送时取消非专送混合送门店取消理由