Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -8,7 +8,6 @@ import (
|
||||
order_logisticsAdd_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAdd/request"
|
||||
order_orderDetail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/response"
|
||||
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/delivery/tiktok_store"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -267,7 +266,7 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re
|
||||
//抖音运单处理
|
||||
if msgId == tiktokShop.CallbackShipmentInfoChange {
|
||||
//msgId-骑手运单号 orderId-抖音店铺ID msg-回调运单参数
|
||||
return tiktok_store.OnWaybillMsg(msgId, orderId, msg)
|
||||
return c.onWaybillMsg(msgId, orderId, msg)
|
||||
}
|
||||
// 待支付订单将不做处理/支付订单待处理(抖音风控)
|
||||
if msgId == tiktokShop.CallbackCreatedOrderMsgTagId || msgId == tiktokShop.CallbackWaitOrderMsgTagId {
|
||||
|
||||
@@ -1,53 +1,108 @@
|
||||
package tiktok_store
|
||||
|
||||
//
|
||||
//var (
|
||||
// VendorWaybillStatus2StatusMap = map[string]int{
|
||||
// mtwmapi.WaybillStatusWait4Delivery: model.WaybillStatusNew,
|
||||
// mtwmapi.WaybillStatusPending: model.WaybillStatusPending,
|
||||
// mtwmapi.WaybillStatusAccepted: model.WaybillStatusAccepted,
|
||||
// mtwmapi.WaybillStatusCourierArrived: model.WaybillStatusCourierArrived,
|
||||
// mtwmapi.WaybillStatusPickedup: model.WaybillStatusDelivering,
|
||||
// mtwmapi.WaybillStatusDelivered: model.WaybillStatusDelivered,
|
||||
// mtwmapi.WaybillStatusCanceled: model.WaybillStatusCanceled,
|
||||
// }
|
||||
//)
|
||||
//
|
||||
//func (p *PurchaseHandler) GetWaybillStatusFromVendorStatus(vendorStatus string) int {
|
||||
// if status, ok := VendorWaybillStatus2StatusMap[vendorStatus]; ok {
|
||||
// return status
|
||||
// }
|
||||
// return model.WaybillStatusUnknown
|
||||
//}
|
||||
//
|
||||
//func (c *PurchaseHandler) onWaybillMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) {
|
||||
// waybill := c.callbackMsg2Waybill(msg)
|
||||
// err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
|
||||
// if err == nil && waybill.Status == model.WaybillStatusDelivering {
|
||||
// c.postFakeMsg(waybill.VendorOrderID, FakeMsgType, mtwmapi.OrderStatusDelivering)
|
||||
// }
|
||||
// return mtwmapi.Err2CallbackResponse(err, "")
|
||||
//}
|
||||
//
|
||||
//func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal *model.Waybill) {
|
||||
// orderID := GetOrderIDFromMsg(msg)
|
||||
// vendorStatus := msg.FormData.Get("logistics_status")
|
||||
// retVal = &model.Waybill{
|
||||
// VendorOrderID: orderID,
|
||||
// OrderVendorID: model.VendorIDMTWM,
|
||||
// VendorWaybillID: orderID,
|
||||
// WaybillVendorID: model.VendorIDMTWM,
|
||||
// CourierName: msg.FormData.Get("dispatcher_name"),
|
||||
// CourierMobile: msg.FormData.Get("dispatcher_mobile"),
|
||||
// VendorStatus: vendorStatus,
|
||||
// Status: c.GetWaybillStatusFromVendorStatus(vendorStatus),
|
||||
// StatusTime: getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("time"))),
|
||||
// Remark: "",
|
||||
//
|
||||
// VendorOrgCode: msg.AppID,
|
||||
// }
|
||||
// if retVal.StatusTime == utils.DefaultTimeValue {
|
||||
// retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp")))
|
||||
// }
|
||||
// return retVal
|
||||
//}
|
||||
import (
|
||||
"errors"
|
||||
superm_getStoreAutoCallRiderInfo_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_getStoreAutoCallRiderInfo/response"
|
||||
superm_setStoreAutoCallRider_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_setStoreAutoCallRider/request"
|
||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
)
|
||||
|
||||
var (
|
||||
VendorWaybillStatus2StatusMap = map[int]int{
|
||||
tiktok_api.ShipmentStatusCalling: model.WaybillStatusNew,
|
||||
tiktok_api.ShipmentStatusReceived: model.WaybillStatusAccepted,
|
||||
tiktok_api.ShipmentStatusArrived: model.WaybillStatusCourierArrived,
|
||||
tiktok_api.ShipmentStatusDelivering: model.WaybillStatusDelivering,
|
||||
tiktok_api.ShipmentStatusRejected: model.WaybillStatusRejected,
|
||||
tiktok_api.ShipmentStatusReturning: model.WaybillStatusReturning,
|
||||
tiktok_api.ShipmentStatusReturned: model.WaybillStatusReturned,
|
||||
tiktok_api.ShipmentStatusDelivered: model.WaybillStatusCanceled,
|
||||
tiktok_api.ShipmentStatusCanceled: model.WaybillStatusDelivered,
|
||||
}
|
||||
)
|
||||
|
||||
func (p *PurchaseHandler) GetWaybillStatusFromVendorStatus(vendorStatus string) int {
|
||||
if status, ok := VendorWaybillStatus2StatusMap[utils.Str2Int(vendorStatus)]; ok {
|
||||
return status
|
||||
}
|
||||
return model.WaybillStatusUnknown
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) onWaybillMsg(tag, orderId string, data interface{}) *tiktok_api.CallbackResponse {
|
||||
waybill := c.callbackMsg2Waybill(tag, orderId, data)
|
||||
if localOrder, _, err := dao.GetOrders(dao.GetDB(), nil, false, false, "", "", false, []int{0}, false, "",
|
||||
map[string]interface{}{
|
||||
"vendorOrderID": waybill.VendorOrderID,
|
||||
}, 0, 0); err == nil {
|
||||
err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
|
||||
if err == nil && waybill.Status == model.WaybillStatusDelivering {
|
||||
c.postFakeMsg(waybill.VendorOrderID, FakeMsgType, utils.Int2Str(tiktok_api.ShipmentStatusDelivering), localOrder[0].VendorStoreID)
|
||||
}
|
||||
return tiktok_api.Err2CallbackResponse(err, "")
|
||||
}
|
||||
return tiktok_api.Err2CallbackResponse(nil, "")
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interface{}) (retVal *model.Waybill) {
|
||||
req := data.(tiktok_api.ShipmentInfoData)
|
||||
vendorOrgCode, _ := dao.GetStoreDetailForDD(dao.GetDB(), 0, model.VendorIDDD, utils.Int64ToStr(req.ShopID), "")
|
||||
return &model.Waybill{
|
||||
VendorOrderID: utils.Int64ToStr(req.ShopOrderID),
|
||||
OrderVendorID: model.VendorIDDD,
|
||||
VendorWaybillID: req.TrackNo,
|
||||
WaybillVendorID: model.VendorIDDYPS,
|
||||
CourierName: req.RiderName,
|
||||
CourierMobile: req.RiderPhone,
|
||||
VendorStatus: utils.Int64ToStr(req.ShipmentStatus),
|
||||
Status: c.GetWaybillStatusFromVendorStatus(utils.Int64ToStr(req.ShipmentStatus)),
|
||||
StatusTime: getTimeFromTimestamp(utils.Str2Int64(req.OccurredTime)),
|
||||
Remark: "",
|
||||
VendorOrgCode: vendorOrgCode.VendorOrgCode,
|
||||
}
|
||||
}
|
||||
|
||||
//设置自动呼叫运力
|
||||
func SetStoreAutoCallRider(vendorOrgCode, opType string, storeID int64) error {
|
||||
if opType == tiktok_api.AutoCallRiderOpen {
|
||||
if err := getAPI(vendorOrgCode, 0, "").SetStoreAutoCallRider(&superm_setStoreAutoCallRider_request.SupermSetStoreAutoCallRiderParam{
|
||||
StoreID: storeID,
|
||||
OpType: opType,
|
||||
ServiceType: tiktok_api.ServiceTypeDelayCall,
|
||||
DelayTime: tiktok_api.AutoCallDelayTime15,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := getAPI(vendorOrgCode, 0, "").SetStoreAutoCallRider(&superm_setStoreAutoCallRider_request.SupermSetStoreAutoCallRiderParam{
|
||||
StoreID: storeID,
|
||||
OpType: opType,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//批量查询自动呼叫运力配置
|
||||
func GetStoreAutoCallRiderInfo(vendorOrgCode string, storeIDs []int64) (autoCallInfos map[int64]*superm_getStoreAutoCallRiderInfo_response.AutoCallInfo, err error) {
|
||||
if len(storeIDs) == 0 {
|
||||
return nil, errors.New("门店ID为空,请检查")
|
||||
}
|
||||
errList := errlist.ErrList{}
|
||||
for _, i := range storeIDs {
|
||||
if autoCallInfo, err := getAPI(vendorOrgCode, 0, "").GetStoreAutoCallRiderInfo(i); err != nil {
|
||||
errList.AddErr(err)
|
||||
} else {
|
||||
autoCallInfos[i] = autoCallInfo
|
||||
}
|
||||
}
|
||||
if errList.GetErrListAsOne() != nil {
|
||||
return nil, errList.GetErrListAsOne()
|
||||
}
|
||||
return autoCallInfos, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user