Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -117,12 +117,14 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
riderInfo, err = handlerInfo.Handler.GetRiderInfo(v.VendorOrderID, 0, v.VendorWaybillID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("Get Order waybill rider info err FN/DADA/SFPS :%v", err)
|
||||
continue
|
||||
}
|
||||
} else if v.WaybillVendorID == model.VendorIDMTPS {
|
||||
if v.VendorWaybillID != "" {
|
||||
riderInfo, err = handlerInfo.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("Get Order waybill rider info err MT:%v", err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -326,8 +328,7 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *utils.RiderInfo) {
|
||||
|
||||
waybill2, err := cms.GetSToURidingDistance2(jxutils.IntCoordinate2Standard(storeDetail.Lng), jxutils.IntCoordinate2Standard(storeDetail.Lat), jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), fakeWayBill.VendorOrderID)
|
||||
if err != nil {
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "高德地图骑行方案获取错误:", utils.Format4Output(err.Error(), false))
|
||||
return
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "百度地图骑行方案获取错误:", utils.Format4Output(err.Error(), false))
|
||||
}
|
||||
courierCoordinate := strings.Split(waybill2.CourierCoordinate, ",")
|
||||
if len(courierCoordinate) < 2 && fakeWayBill.Status < model.WaybillStatusDelivered {
|
||||
|
||||
@@ -281,7 +281,7 @@ func (d DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo
|
||||
}
|
||||
|
||||
func (d DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
|
||||
return nil
|
||||
return fmt.Errorf("顺丰暂未实现投诉")
|
||||
}
|
||||
|
||||
// GetDeliverLiquidatedDamages 获取取消运单违约金
|
||||
|
||||
@@ -927,7 +927,7 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo
|
||||
}
|
||||
|
||||
// 获取骑手坐标最后一个
|
||||
lng, lat, _ := api.GetDeliveryPath(utils.Str2Int64(orderId), orderInfo.VendorOrderID)
|
||||
lng, lat, _ := api.GetDeliveryPath(utils.Str2Int64(orderId), orderInfo.VendorStoreID)
|
||||
status.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(int(lng)))
|
||||
status.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(int(lat)))
|
||||
return status, nil
|
||||
|
||||
@@ -66,6 +66,8 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
|
||||
func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
|
||||
var err error
|
||||
orderStatus := c.callbackAfsMsg2Status(msg)
|
||||
globals.SugarLogger.Debugf("=================msg := %s", utils.Format4Output(msg, false))
|
||||
globals.SugarLogger.Debugf("=================orderStatus := %s", utils.Format4Output(orderStatus, false))
|
||||
needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew
|
||||
if !needCallNew {
|
||||
_, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID)
|
||||
@@ -146,6 +148,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
|
||||
if orderStatus.Status == model.AfsOrderStatusFinished {
|
||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||
}
|
||||
globals.SugarLogger.Debugf("afsOrder=============== : %s", utils.Format4Output(afsOrder, false))
|
||||
globals.SugarLogger.Debugf("orderStatus=============== : %s", utils.Format4Output(orderStatus, false))
|
||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||
}
|
||||
} else {
|
||||
@@ -183,7 +187,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (order
|
||||
OrderType: model.OrderTypeAfsOrder,
|
||||
RefVendorOrderID: utils.Int64ToStr(refundData.OrderID),
|
||||
RefVendorID: model.VendorIDMTWM,
|
||||
VendorStatus: fmt.Sprintf("%s:%d", refundData.NotifyType, refundData.ResType),
|
||||
VendorStatus: refundData.Status, // fmt.Sprintf("%s:%d", refundData.NotifyType, refundData.ResType),
|
||||
Status: c.GetAfsStatusFromVendorStatus(refundData.ResType, refundData.NotifyType),
|
||||
StatusTime: utils.Timestamp2Time(refundData.Timestamp),
|
||||
Remark: refundData.Reason,
|
||||
@@ -193,10 +197,22 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (order
|
||||
} else {
|
||||
orderStatus.VendorOrderID = orderStatus.RefVendorOrderID
|
||||
}
|
||||
if refundData.NotifyType == "" && refundData.ResType == model.NO {
|
||||
orderStatus.VendorStatus = "用户申请退货且退款"
|
||||
}
|
||||
// 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消
|
||||
if refundData.Status == "21" {
|
||||
orderStatus.Status = model.AfsOrderStatusFinished
|
||||
orderStatus.VendorStatus += "," + refundData.Status
|
||||
}
|
||||
return orderStatus
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(resType int, notifyType string) int {
|
||||
// 当resType为0且notifyType为空的时候,是退货退款,之前是未处理这个,现在退货退款默认成退款未处理
|
||||
if notifyType == "" {
|
||||
notifyType = mtwmapi.NotifyTypeApply
|
||||
}
|
||||
status := AfsVendorStatus2StatusMap[notifyType]
|
||||
if status == model.AfsOrderStatusWait4Approve && resType != mtwmapi.ResTypePending {
|
||||
status = model.AfsOrderStatusNew
|
||||
|
||||
@@ -3,6 +3,8 @@ package tao_vegetable
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -249,7 +251,7 @@ func PushDelivererChangeInfo(order *model.GoodsOrder, bill *model.Waybill, deliv
|
||||
LogisticsNo: utils.String2Pointer(bill.VendorWaybillID),
|
||||
},
|
||||
}
|
||||
return getAPI(order.VendorOrgCode, 0, "").DelivererChange(param)
|
||||
return getAPI(order.VendorOrgCode, order.JxStoreID, order.VendorStoreID).DelivererChange(param)
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) {
|
||||
@@ -498,24 +500,25 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
|
||||
// PickupGoods 拣货
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||
var err2 error
|
||||
if isSelfDelivery {
|
||||
param, err := orderStatusChangeNotice(order, tao_vegetable.OrderStatusPickedUp)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||
err = api.DeliveryFinish(param)
|
||||
if err != nil && strings.Contains(err.Error(), "并发操作,执行失败,请重试") {
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
err2 = api.DeliveryFinish(param)
|
||||
} else if err != nil {
|
||||
return err
|
||||
for i := 0; i < 3; i++ {
|
||||
err2 := api.DeliveryFinish(param)
|
||||
if err2 != nil {
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
err = err2
|
||||
continue
|
||||
}
|
||||
if err2 == nil {
|
||||
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil && err2 != nil {
|
||||
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -579,7 +582,36 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
|
||||
// SelfDeliverDelivered 自配送订单送达
|
||||
func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
param := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDeliveryOver)
|
||||
return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param)
|
||||
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||
err = api.DeliveryFinish(param)
|
||||
// 这个是因为自动拣货失败出现订单状态为更新,无法设置送达
|
||||
if err != nil && strings.Contains(err.Error(), "当前状态不允许更新") {
|
||||
errMap := make(map[string]interface{}, 0)
|
||||
|
||||
pickupErr := c.PickupGoods(order, true, userName) // 自动拣货
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
deliverErr := c.Swtich2SelfDeliver(order, userName) // 出库
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
deliveringErr := c.SelfDeliverDelivering(order, userName) // 配送中
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
deliveredErr := c.Swtich2SelfDelivered(order, userName) // 送达
|
||||
if pickupErr != nil {
|
||||
errMap["pickupErr"] = pickupErr
|
||||
}
|
||||
if deliverErr != nil {
|
||||
errMap["deliverErr"] = deliverErr
|
||||
}
|
||||
if deliveringErr != nil {
|
||||
errMap["deliveringErr"] = deliveringErr
|
||||
}
|
||||
if deliveredErr != nil {
|
||||
errMap["deliveredErr"] = deliveredErr
|
||||
}
|
||||
if len(errMap) > 0 {
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘宝订单拣货异常,导致设置送达错误:", utils.Format4Output(errMap, false))
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) {
|
||||
|
||||
Reference in New Issue
Block a user