Files
jx-callback/business/partner/delivery/tiktok_store/waybill.go
richboo111 c81346d0f7 1
2023-01-31 14:38:28 +08:00

243 lines
11 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package tiktok_store
//
//import (
// "errors"
// "git.rosy.net.cn/baseapi/platformapi/mtpsapi"
// shop_getStoreDetail_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_getStoreDetail/request"
// superm_createVirtualMobile_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_createVirtualMobile/response"
// "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
// "git.rosy.net.cn/baseapi/utils"
// "git.rosy.net.cn/jx-callback/business/jxutils"
// "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
// "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"
// "git.rosy.net.cn/jx-callback/globals"
// "git.rosy.net.cn/jx-callback/globals/api"
// "time"
//)
//
//var (
// curDeliveryHandler *DeliveryHandler
//)
//
//type DeliveryHandler struct {
//}
//
//func init() {
// if api.TiktokStore != nil {
// curDeliveryHandler = new(DeliveryHandler)
// partner.RegisterDeliveryPlatform(curDeliveryHandler, true)
// }
//}
//
//func (c *DeliveryHandler) GetVendorID() int {
// return model.VendorIDDYPS
//}
//
//func (c *DeliveryHandler) CreateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (vendorStoreID string, status int, err error) {
// return "", 0, errors.New("抖店暂不支持此操作")
//}
//
//func (c *DeliveryHandler) GetStore(ctx *jxcontext.Context, storeID int, vendorStoreID string) (storeDetail *dao.StoreDetail2, err error) {
// relInfo, err := dao.GetStoreDetailForDD(dao.GetDB(), storeID, model.VendorIDDD, vendorStoreID, "")
// if err != nil {
// return nil, errors.New("获取抖音平台账号信息失败,请重试")
// }
// apiObj := getAPI(relInfo.VendorOrgCode)
// if storeInfo, err := apiObj.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
// StoreId: vendorStoreID,
// }); err == nil {
// storeDetail = &dao.StoreDetail2{
// Store: model.Store{
// Name: storeInfo.StoreDetail.Store.Name,
// Tel1: storeInfo.StoreDetail.Store.Contact,
// Address: storeInfo.StoreDetail.Store.Address,
// Lng: jxutils.StandardCoordinate2Int(utils.Str2Float64(storeInfo.StoreDetail.Store.Longitude)),
// Lat: jxutils.StandardCoordinate2Int(utils.Str2Float64(storeInfo.StoreDetail.Store.Latitude)),
// },
// VendorID: model.VendorIDDYPS,
// VendorStoreID: utils.Int64ToStr(storeInfo.StoreDetail.Store.StoreId),
// CourierStatus: int(storeInfo.StoreDetail.Store.State),
// }
// } else {
// globals.SugarLogger.Debugf("GetStoreDetail err %s", err)
// }
// return storeDetail, err
//}
//
//func (c *DeliveryHandler) IsErrStoreNotExist(err error) bool {
// return false
//}
//
//func (c *DeliveryHandler) IsErrStoreExist(err error) bool {
// return false
//}
//
//// 呼叫运力并发货
//func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
// return nil, nil
// //relInfo, err := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, model.VendorIDDD, "")
// //if err != nil {
// // return nil, errors.New("获取抖音平台账号信息失败,请重试")
// //}
// //apiObj := getAPI(relInfo.VendorOrgCode)
// //if order.VendorID != model.VendorIDDD {
// // return nil, errors.New("非抖音平台店铺不可发抖音配送")
// //}
// //bill = &model.Waybill{
// // VendorOrderID: order.VendorOrderID,
// // OrderVendorID: order.VendorID,
// // VendorWaybillID: order.VendorOrderID, //抖音配送订单号即运单号
// // WaybillVendorID: model.VendorIDDYPS,
// //}
// //if dispatcherFee, err := apiObj.GetDispatcherInfo(int64(order.StoreID), order.VendorOrderID, tiktok_api.DispatcherFeeTypeCall); err == nil {
// // bill.DesiredFee = dispatcherFee
// //}
// //if err := apiObj.ShopOrderDispatcher(utils.Str2Int64(order.VendorStoreID), order.VendorOrderID, tiktok_api.DispatcherFeeTypeCall); err != nil {
// // return nil, err
// //}
// //delivery.OnWaybillCreated(bill)
// //return bill, nil
//}
//
//func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
// return nil
// //params := make(map[string]interface{}, 0)
// //params["vendorOrderID"] = bill.VendorOrderID
// //if localOrder, _, err := dao.GetOrders(dao.GetDB(), nil, false, false, "", "", false, []int{0}, false, "", params, 0, 0); err != nil {
// // return errors.New("取消运单时获取平台门店ID失败请重试")
// //} else {
// // if err = getAPI(bill.VendorOrgCode).ShopOrderDispatcher(utils.Str2Int64(localOrder[0].VendorStoreID), bill.VendorOrderID, tiktok_api.DispatcherFeeTypeCancel); err != nil {
// // return fmt.Errorf("抖音配送取消运力失败:%v", err)
// // }
// // bill.Status = model.WaybillStatusCanceled
// // bill.Remark = cancelReason
// // partner.CurOrderManager.OnWaybillStatusChanged(bill)
// //}
// //return err
//}
//
//func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) {
// return nil, nil
// //relInfo, err := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, model.VendorIDDD, "")
// //if err != nil {
// // return nil, errors.New("获取抖音平台账号信息失败,请重试")
// //}
// //if dispatcherFee, err := getAPI(relInfo.VendorOrgCode).GetDispatcherInfo(utils.Str2Int64(relInfo.VendorStoreID), order.VendorOrderID, tiktok_api.DispatcherFeeTypeCall); err == nil {
// // deliveryFeeInfo = &partner.WaybillFeeInfo{}
// // deliveryFeeInfo.DeliveryFee = dispatcherFee
// //}
// //return deliveryFeeInfo, err
//}
//func getDispatcherFee(storeID int64, vendorOrderID string, dispatcherType int32) int64 {
// if relInfo, err := dao.GetStoreDetailForDD(dao.GetDB(), 0, model.VendorIDDD, utils.Int64ToStr(storeID), ""); err != nil {
// return 0
// } else {
// if dispatcherFee, err := getAPI(relInfo.VendorOrgCode).GetDispatcherInfo(storeID, vendorOrderID, dispatcherType); err == nil {
// return 0
// } else {
// return dispatcherFee
// }
// }
//}
//func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
// return errors.New("抖店配送暂不支持此操作")
//}
//
//func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) {
// orderInfo, _, err := dao.GetOrders(dao.GetDB(), []int64{utils.Str2Int64(orderId)}, false, false, "", "", false, []int{0}, false, "", nil, 0, 0)
// if err != nil {
// return nil, errors.New("获取本地门店账号信息失败,请重试")
// }
// if waybill, err := getAPI(orderInfo[0].VendorOrgCode).GetShipmentInfo(utils.Str2Int64(orderId), deliveryId, tiktok_api.ShipmentTypeInvoice); err != nil {
// return nil, err
// } else {
// rider = &mtpsapi.RiderInfo{
// OrderId: orderId,
// ThirdCarrierOrderId: mtPeisongId,
// CourierName: waybill.RiderName,
// CourierPhone: waybill.RiderPhone,
// LogisticsProviderCode: mtpsapi.DYPsCode,
// LogisticsStatus: int(waybill.ShipmentStatus),
// LogisticsContext: tiktok_api.ShipmentStatus[waybill.ShipmentStatus],
// Latitude: waybill.RiderLatitude,
// Longitude: waybill.RiderLongitude,
// }
// }
// globals.SugarLogger.Debugf("DYPS GetRiderInfo rider======%s", utils.Format4Output(rider, false))
// return rider, nil
//}
//
//func CreateVirtualMobile(shopOrderID int64) (*superm_createVirtualMobile_response.SupermCreateVirtualMobileData, error) {
// if orderInfo, _, err := dao.GetOrders(dao.GetDB(), []int64{shopOrderID}, false, false, "", "", false, []int{0}, false, "", nil, 0, 0); err != nil {
// return nil, errors.New("获取本地门店账号信息失败,请重试")
// } else {
// if visMobile, err := getAPI(orderInfo[0].VendorOrgCode).CreateVirtualMobile(shopOrderID); err != nil {
// return nil, err
// } else {
// return visMobile, nil
// }
// }
//}
//
////订单状态回调
//func OnWaybillMsg(tag, orderId string, data interface{}) (response *tiktok_api.CallbackResponse) {
// req := data.(tiktok_api.ShipmentInfoData)
// param := &model.Waybill{
// VendorOrderID: utils.Int64ToStr(req.ShopOrderID),
// VendorWaybillID: req.TrackNo,
// VendorWaybillID2: utils.Int64ToStr(req.AfterSaleID),
// WaybillVendorID: model.VendorIDDYPS,
// OrderVendorID: model.VendorIDDD,
// CourierName: req.RiderName,
// CourierMobile: req.RiderPhone,
// VendorStatus: utils.Int64ToStr(req.ShipmentStatus),
// StatusTime: utils.Str2Time(req.OccurredTime),
// Remark: "",
// }
// if req.OccurredTime == "" {
// param.StatusTime = time.Now()
// }
// dispatcherFee := getDispatcherFee(req.ShopID, utils.Int64ToStr(req.ShopOrderID), tiktok_api.DispatcherFeeTypeCall)
// switch req.ShipmentStatus {
// case tiktok_api.ShipmentStatusCalling: //1 骑手呼叫中
// param.DesiredFee = dispatcherFee
// param.Status = model.WaybillStatusNew //5 待调度
// case tiktok_api.ShipmentStatusReceived: //2 骑手已接单
// param.DesiredFee = dispatcherFee
// param.Status = model.WaybillStatusCourierAssigned
// param.Remark = req.RiderName + "," + req.RiderPhone
// case tiktok_api.ShipmentStatusArrived: //3 骑手已到达取货点
// param.DesiredFee = dispatcherFee
// param.Status = model.WaybillStatusCourierArrived //80 到店
// param.Remark = tiktok_api.ShipmentStatus[req.ShipmentStatus]
// case tiktok_api.ShipmentStatusDelivering: //4 配送中
// param.Status = model.WaybillStatusDelivering
// param.Remark = tiktok_api.ShipmentStatus[req.ShipmentStatus]
// case tiktok_api.ShipmentStatusRejected, tiktok_api.ShipmentStatusReturning, tiktok_api.ShipmentStatusReturned: //5 收货人已拒收,6 返回中,7 返回完成
// param.Status = model.WaybillStatusDeliverFailed
// param.Remark = tiktok_api.ShipmentStatus[req.ShipmentStatus]
// case tiktok_api.ShipmentStatusDelivered: // 8 订单妥投
// param.Status = model.WaybillStatusDelivered
// param.Remark = tiktok_api.ShipmentStatus[req.ShipmentStatus]
// case tiktok_api.ShipmentStatusCanceled: //9 订单取消
// param.Status = model.WaybillStatusCanceled
// param.Remark = tiktok_api.ShipmentStatus[req.ShipmentStatus]
// default:
// globals.SugarLogger.Warnf("onWaybillMsg unknown shipmentStatus:%v", req.ShipmentStatus)
// }
// globals.SugarLogger.Debugf("DYPS onWaybillMsg param=====%s", utils.Format4Output(param, false))
// if err := partner.CurOrderManager.OnWaybillStatusChanged(param); err != nil {
// return tiktok_api.CallbackResponseErr(false)
// }
// return tiktok_api.CallbackResponseErr(true)
//}
//
////以下为辅助函数
//func getAPI(appOrgCode string) (apiObj *tiktok_api.API) {
// apiObj = partner.CurAPIManager.GetAPI(model.VendorIDDD, appOrgCode).(*tiktok_api.API)
// return apiObj
//}