调整代码结构,修改美团配送

This commit is contained in:
邹宗楠
2022-03-04 09:49:12 +08:00
parent 9b9c44fd5d
commit 896f5d68b1
7 changed files with 243 additions and 223 deletions

View File

@@ -157,6 +157,7 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
}
newPrice = maxFee
}
// 门店支出运费
expend, lastFee, _ := partner.CurStoreAcctManager.GetStoreAcctExpendLastCreateWayBillFee(order.VendorOrderID)
if int(newPrice) > lastFee {
partner.CurStoreAcctManager.InsertStoreAcctExpendAndUpdateStoreAcctBalance(ctx, jxutils.GetSaleStoreIDFromOrder(order), int(model.Waybill{}.DesiredFee), partner.StoreAcctTypeExpendCreateWaybill2ndMore, order.VendorOrderID, expend.ID) //int(newPrice)-lastFee

View File

@@ -252,22 +252,26 @@ func (c *DeliveryHandler) getBillParams(db *dao.DaoDB, order *model.GoodsOrder)
// IDeliveryPlatformHandler
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
db := dao.GetDB()
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDDada, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
// 判断配送平台是否被关闭
vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDDada, "", model.VendorOrgTypeDelivery)
if err != nil {
return nil, err
}
if len(vendorOrgCode) > 0 && vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
// 获取达达第三方订单参数
billParams, err := c.getBillParams(db, order)
if err == nil {
//if globals.EnableStoreWrite
{
// 达达要求第二次创建运单,调用函数不同。所以查找两天内有无相同订单号的运单
var waybillList []*model.Waybill
err2 := dao.GetRows(db, &waybillList, `
if err != nil {
return nil, err
}
// 达达要求第二次创建运单,调用函数不同。所以查找两天内有无相同订单号的运单
var waybillList []*model.Waybill
err = dao.GetRows(db, &waybillList, `
SELECT *
FROM waybill
WHERE waybill_created_at > DATE_ADD(NOW(), interval -2 day)
@@ -275,47 +279,52 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
AND waybill_vendor_id = ?
ORDER BY id DESC
`, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), model.VendorIDDada)
var result *dadaapi.CreateOrderResponse
if err = err2; err == nil && len(waybillList) > 0 && waybillList[0].Status != model.WaybillStatusFailed {
// 再次创建
globals.SugarLogger.Debugf("CreateWaybill orderID:%s len(waybillList)=%d use ReaddOrder", order.VendorOrderID, len(waybillList))
if err = delivery.CallCreateWaybillPolicy(waybillList[0].ActualFee, maxDeliveryFee, order, model.VendorIDDada); err != nil {
return nil, err
}
// result, err = api.DadaAPI.ReaddOrder(billParams, addParams)
result, err = api.DadaAPI.ReaddOrder(billParams)
} else {
// 第一次创建
if err != nil {
globals.SugarLogger.Warnf("CreateWaybill orderID:%s error:%v", order.VendorOrderID, err)
}
if false {
result, err = api.DadaAPI.AddOrder(billParams)
} else {
if result, err = api.DadaAPI.QueryDeliverFee(billParams); err != nil {
return nil, err
}
if err = delivery.CallCreateWaybillPolicy(jxutils.StandardPrice2Int(result.Fee), maxDeliveryFee, order, model.VendorIDDada); err != nil {
return nil, err
}
err = api.DadaAPI.AddOrderAfterQuery(result.DeliveryNo)
}
}
if err == nil && result != nil {
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
WaybillVendorID: model.VendorIDDada,
DesiredFee: jxutils.StandardPrice2Int(result.Fee),
ActualFee: jxutils.StandardPrice2Int(result.Fee),
}
delivery.OnWaybillCreated(bill)
}
}
//else {
// err = fmt.Errorf("测试环境不能真正创建运单")
//}
if err != nil {
return nil, err
}
// 检查两天内是否有订单
var result *dadaapi.CreateOrderResponse
if len(waybillList) > 0 && waybillList[0].Status != model.WaybillStatusFailed {
globals.SugarLogger.Debugf("CreateWaybill orderID:%s len(waybillList)=%d use ReaddOrder", order.VendorOrderID, len(waybillList))
// 检索达达配送费阀值
if err = delivery.CallCreateWaybillPolicy(waybillList[0].ActualFee, maxDeliveryFee, order, model.VendorIDDada); err != nil {
return nil, err
}
// 重新发送订单
result, err = api.DadaAPI.ReaddOrder(billParams)
if err != nil {
globals.SugarLogger.Warnf("CreateWaybill orderID:%s error:%v", order.VendorOrderID, err)
return nil, err
}
} else {
// 第一次发布订单(预发布,先查询订单运费获取平台订单号,在调用查询订单后接口发布订单)
// 查询达达订单费用
if result, err = api.DadaAPI.QueryDeliverFee(billParams); err != nil {
return nil, err
}
// 阀值警报
if err = delivery.CallCreateWaybillPolicy(jxutils.StandardPrice2Int(result.Fee), maxDeliveryFee, order, model.VendorIDDada); err != nil {
return nil, err
}
// 真实发布订单
if err = api.DadaAPI.AddOrderAfterQuery(result.DeliveryNo); err != nil {
globals.SugarLogger.Warnf("CreateWaybill for Dada order err , orderID:%s error:%v", order.VendorOrderID, err)
return nil, err
}
}
if result == nil {
return nil, errors.New("达达配送,平台调用错误,无订单数据返回")
}
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
WaybillVendorID: model.VendorIDDada,
DesiredFee: jxutils.StandardPrice2Int(result.Fee),
ActualFee: jxutils.StandardPrice2Int(result.Fee),
}
delivery.OnWaybillCreated(bill)
return bill, err
}

View File

@@ -140,6 +140,7 @@ func CalculateBillDeliveryFee(bill *model.Waybill) (deliveryFee, addFee int64) {
return deliveryFee, addFee
}
// 日志提示检查订单运费
func OnWaybillCreated(waybill *model.Waybill) {
deliveryFee := int64(math.Max(float64(waybill.DesiredFee), float64(waybill.ActualFee)))
if deliveryFee > alarmFee {

View File

@@ -87,90 +87,99 @@ func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, reson
return err
}
// 创建蜂鸟配送订单
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
var (
db = dao.GetDB()
)
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDFengNiao, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
db := dao.GetDB()
// 检查配送平台是否被禁用
vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDFengNiao, "", model.VendorOrgTypeDelivery)
if err != nil {
return nil, err
}
storeDetail, err := dao.GetStoreDetail(db, order.StoreID, order.VendorID, order.VendorOrgCode)
deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err == nil {
if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDFengNiao); err != nil {
return nil, err
}
params := &fnpsapi.CreateOrderParam{
PartnerOrderCode: order.VendorOrderID,
NotifyURL: globals.FnNotifyURL,
ChainStoreCode: utils.Int2Str(jxutils.GetSaleStoreIDFromOrder(order)),
OrderType: 1, //即时达
TransportInfo: &fnpsapi.TransportInfo{
TransportName: order.StoreName,
TransportAddress: storeDetail.Address,
TransportLongitude: jxutils.IntCoordinate2Standard(storeDetail.Lng),
TransportLatitude: jxutils.IntCoordinate2Standard(storeDetail.Lat),
PositionSource: 3,
TransportTel: storeDetail.Tel1,
},
OrderAddTime: order.OrderCreatedAt.UnixNano() / 1e6,
OrderTotalAmount: jxutils.IntPrice2Standard(order.SalePrice),
OrderActualAmount: jxutils.IntPrice2Standard(order.ActualPayPrice),
OrderWeight: float64(jxutils.IntWeight2Float(order.Weight)),
OrderRemark: utils.FilterMb4("客户电话:" + order.ConsigneeMobile + "," + order.BuyerComment + "取货失败或配送遇到问题请联系18048531223禁止未配送直接完成定单"),
IsInvoiced: 0,
OrderPaymentStatus: 1,
OrderPaymentMethod: 1,
IsAgentPayment: 0,
GoodsCount: order.GoodsCount,
ReceiverInfo: &fnpsapi.ReceiverInfo{
ReceiverName: order.ConsigneeName,
ReceiverAddress: order.ConsigneeAddress,
ReceiverLongitude: jxutils.IntCoordinate2Standard(order.ConsigneeLng),
ReceiverLatitude: jxutils.IntCoordinate2Standard(order.ConsigneeLat),
ReceiverPrimaryPhone: order.ConsigneeMobile,
ReceiverSecondPhone: order.ConsigneeMobile2,
PositionSource: 3,
},
SerialNumber: model.VendorNames[order.VendorID] + " #" + utils.Int2Str(order.OrderSeq),
}
var skuInfo []*fnpsapi.ItemsJSON
for _, v := range order.Skus {
skuInfo = append(skuInfo, &fnpsapi.ItemsJSON{
ItemID: utils.Int2Str(v.SkuID),
ItemName: v.SkuName,
ItemQuantity: v.Count,
ItemPrice: jxutils.IntPrice2Standard(v.SalePrice),
ItemActualPrice: jxutils.IntPrice2Standard(v.SalePrice),
})
}
params.ItemsJSON = skuInfo
//要求饿百的订单要传来源
if order.VendorID == model.VendorIDEBAI {
params.OrderSource = "109"
params.ChannelOrderCode = order.VendorOrderID
}
err = api.FnAPI.CreateOrder(params)
if err == nil {
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
VendorWaybillID: "",
VendorWaybillID2: "",
WaybillVendorID: model.VendorIDFengNiao,
DesiredFee: deliveryFee,
}
delivery.OnWaybillCreated(bill)
} else {
globals.SugarLogger.Debugf("CreateWaybill failed, orderID:%s, billParams:%v, error:%v", order.VendorOrderID, params, err)
}
if len(vendorOrgCode) > 0 && vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
// 购物平台信息
storeDetail, err := dao.GetStoreDetail(db, order.StoreID, order.VendorID, order.VendorOrgCode)
// 自定义配送费
deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err != nil {
return nil, err
}
if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDFengNiao); err != nil {
return nil, err
}
// 蜂鸟入参结构体
params := &fnpsapi.CreateOrderParam{
PartnerOrderCode: order.VendorOrderID,
NotifyURL: globals.FnNotifyURL,
ChainStoreCode: utils.Int2Str(jxutils.GetSaleStoreIDFromOrder(order)),
OrderType: 1, //即时达
TransportInfo: &fnpsapi.TransportInfo{
TransportName: order.StoreName,
TransportAddress: storeDetail.Address,
TransportLongitude: jxutils.IntCoordinate2Standard(storeDetail.Lng),
TransportLatitude: jxutils.IntCoordinate2Standard(storeDetail.Lat),
PositionSource: 3,
TransportTel: storeDetail.Tel1,
},
OrderAddTime: order.OrderCreatedAt.UnixNano() / 1e6,
OrderTotalAmount: jxutils.IntPrice2Standard(order.SalePrice),
OrderActualAmount: jxutils.IntPrice2Standard(order.ActualPayPrice),
OrderWeight: float64(jxutils.IntWeight2Float(order.Weight)),
OrderRemark: utils.FilterMb4("客户电话:" + order.ConsigneeMobile + "," + order.BuyerComment + "取货失败或配送遇到问题请联系18048531223禁止未配送直接完成定单"),
IsInvoiced: 0,
OrderPaymentStatus: 1,
OrderPaymentMethod: 1,
IsAgentPayment: 0,
GoodsCount: order.GoodsCount,
ReceiverInfo: &fnpsapi.ReceiverInfo{
ReceiverName: order.ConsigneeName,
ReceiverAddress: order.ConsigneeAddress,
ReceiverLongitude: jxutils.IntCoordinate2Standard(order.ConsigneeLng),
ReceiverLatitude: jxutils.IntCoordinate2Standard(order.ConsigneeLat),
ReceiverPrimaryPhone: order.ConsigneeMobile,
ReceiverSecondPhone: order.ConsigneeMobile2,
PositionSource: 3,
},
SerialNumber: model.VendorNames[order.VendorID] + " #" + utils.Int2Str(order.OrderSeq),
}
var skuInfo []*fnpsapi.ItemsJSON
for _, v := range order.Skus {
skuInfo = append(skuInfo, &fnpsapi.ItemsJSON{
ItemID: utils.Int2Str(v.SkuID),
ItemName: v.SkuName,
ItemQuantity: v.Count,
ItemPrice: jxutils.IntPrice2Standard(v.SalePrice),
ItemActualPrice: jxutils.IntPrice2Standard(v.SalePrice),
})
}
params.ItemsJSON = skuInfo
//要求饿百的订单要传来源
if order.VendorID == model.VendorIDEBAI {
params.OrderSource = "109"
params.ChannelOrderCode = order.VendorOrderID
}
// 创建蜂鸟订单
err = api.FnAPI.CreateOrder(params)
if err != nil {
globals.SugarLogger.Debugf("CreateWaybill failed, orderID:%s, billParams:%v, error:%v", order.VendorOrderID, params, err)
return nil, err
}
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
VendorWaybillID: "",
VendorWaybillID2: "",
WaybillVendorID: model.VendorIDFengNiao,
DesiredFee: deliveryFee,
}
delivery.OnWaybillCreated(bill)
return bill, err
}

View File

@@ -191,101 +191,98 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
// IDeliveryPlatformHandler美团配送
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
db := dao.GetDB()
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDMTPS, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
// 检查配送平台是否被禁用
vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDFengNiao, "", model.VendorOrgTypeDelivery)
if err != nil {
return nil, err
}
if len(vendorOrgCode) > 0 && vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
// 自定义计算预估费用
deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err == nil {
if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDMTPS); err != nil {
return nil, err
//deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
//if err != nil {
// return nil, err
//}
// 运费预警
//if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDMTPS); err != nil {
// return nil, err
//}
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
billParams := &mtpsapi.CreateOrderByShopParam{
OrderID: jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID),
DeliveryServiceCode: mtpsapi.DeliveryServiceCodeRapid,
ReceiverName: utils.FilterMb4(order.ConsigneeName),
ReceiverAddress: utils.FilterMb4(order.ConsigneeAddress),
ReceiverPhone: order.ConsigneeMobile,
CoordinateType: model.CoordinateTypeMars,
ReceiverLng: jxutils.StandardCoordinate2Int(lngFloat),
ReceiverLat: jxutils.StandardCoordinate2Int(latFloat),
GoodsValue: jxutils.IntPrice2Standard(order.ActualPayPrice), // todo 超价处理
GoodsWeight: float64(jxutils.IntWeight2Float(limitOrderWeight(order.Weight))),
// ExpectedDeliveryTime: order.ExpectedDeliveredTime.Unix(),
OrderType: mtpsapi.OrderTypeASAP,
}
// 获取送货单id
if billParams.DeliveryID, err = c.getDeliveryID(order, db); err != nil {
return nil, err
}
// 获取商铺id
if billParams.ShopID, err = c.getMTPSShopID(order, db); err != nil {
return nil, err
}
// 获取美团入参结构体
goods := &mtpsapi.GoodsDetail{
Goods: []*mtpsapi.GoodsItem{},
}
goodItemMap := map[string]*mtpsapi.GoodsItem{}
for _, sku := range order.Skus {
goodItem := &mtpsapi.GoodsItem{
GoodCount: sku.Count,
GoodPrice: jxutils.IntPrice2Standard(sku.SalePrice),
}
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
billParams := &mtpsapi.CreateOrderByShopParam{
OrderID: jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID),
DeliveryServiceCode: mtpsapi.DeliveryServiceCodeRapid,
ReceiverName: utils.FilterMb4(order.ConsigneeName),
ReceiverAddress: utils.FilterMb4(order.ConsigneeAddress),
ReceiverPhone: order.ConsigneeMobile,
CoordinateType: model.CoordinateTypeMars,
ReceiverLng: jxutils.StandardCoordinate2Int(lngFloat),
ReceiverLat: jxutils.StandardCoordinate2Int(latFloat),
GoodsValue: jxutils.IntPrice2Standard(order.ActualPayPrice), // todo 超价处理
GoodsWeight: float64(jxutils.IntWeight2Float(limitOrderWeight(order.Weight))),
// ExpectedDeliveryTime: order.ExpectedDeliveredTime.Unix(),
OrderType: mtpsapi.OrderTypeASAP,
}
if billParams.DeliveryID, err = c.getDeliveryID(order, db); err == nil {
if billParams.ShopID, err = c.getMTPSShopID(order, db); err == nil {
globals.SugarLogger.Debug(billParams.ShopID)
goods := &mtpsapi.GoodsDetail{
Goods: []*mtpsapi.GoodsItem{},
}
goodItemMap := map[string]*mtpsapi.GoodsItem{}
for _, sku := range order.Skus {
goodItem := &mtpsapi.GoodsItem{
GoodCount: sku.Count,
GoodPrice: jxutils.IntPrice2Standard(sku.SalePrice),
}
goodItem.GoodName, goodItem.GoodUnit = jxutils.GetNameAndUnitFromSkuName(sku.SkuName)
// 好像SKU名不能重复否则会报错尝试处理一下
if item, ok := goodItemMap[goodItem.GoodName]; !ok {
goods.Goods = append(goods.Goods, goodItem)
goodItemMap[goodItem.GoodName] = goodItem
} else {
item.GoodCount += goodItem.GoodCount
}
}
// addParams := map[string]interface{}{
// "note": utils.FilterMb4(order.BuyerComment),
// "goods_detail": string(utils.MustMarshal(goods)),
// "goods_pickup_info": fmt.Sprintf("%s第%d号单", model.VendorChineseNames[order.VendorID], order.OrderSeq),
// "poi_seq": fmt.Sprintf("#%d", order.OrderSeq),
// }
// storeTel := ""
// storeID := jxutils.GetSaleStoreIDFromOrder(order)
// storeDeatail, _ := dao.GetStoreDetail(db, storeID, order.VendorID)
// if storeDeatail.Tel2 != "" {
// storeTel = ",门店电话:" + storeDeatail.Tel2
// }
billParams.Note = utils.FilterMb4("客户电话:" + order.ConsigneeMobile + "," + order.BuyerComment + "取货失败或配送遇到问题请联系18048531223禁止未配送直接完成定单")
billParams.GoodsDetail = string(utils.MustMarshal(goods))
billParams.GoodsPickupInfo = fmt.Sprintf("%s第%d号单", model.VendorChineseNames[order.VendorID], order.OrderSeq)
billParams.PoiSeq = fmt.Sprintf("#%d", order.OrderSeq)
//if globals.EnableStoreWrite
{
// 通知美团订单,获取返回订单配送费
result, err2 := api.MtpsAPI.CreateOrderByShop2(billParams)
if err = err2; err == nil {
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
VendorWaybillID: result.MtPeisongID,
VendorWaybillID2: utils.Int64ToStr(result.DeliveryID),
WaybillVendorID: model.VendorIDMTPS,
DesiredFee: int64(result.DeliveryFee * 100),
}
// 当前运单总费大于配送阈值15日志打印提示
delivery.OnWaybillCreated(bill)
globals.SugarLogger.Debug("============================================>", billParams.ShopID)
} else {
globals.SugarLogger.Debugf("CreateWaybill failed, orderID:%s, billParams:%v, error:%v", order.VendorOrderID, billParams, err)
}
}
//else {
// err = fmt.Errorf("测试环境不能真正创建运单")
//}
}
goodItem.GoodName, goodItem.GoodUnit = jxutils.GetNameAndUnitFromSkuName(sku.SkuName)
// 好像SKU名不能重复否则会报错尝试处理一下
if item, ok := goodItemMap[goodItem.GoodName]; !ok {
goods.Goods = append(goods.Goods, goodItem)
goodItemMap[goodItem.GoodName] = goodItem
} else {
item.GoodCount += goodItem.GoodCount
}
}
billParams.Note = utils.FilterMb4("客户电话:" + order.ConsigneeMobile + "," + order.BuyerComment + "取货失败或配送遇到问题请联系18048531223禁止未配送直接完成定单")
billParams.GoodsDetail = string(utils.MustMarshal(goods))
billParams.GoodsPickupInfo = fmt.Sprintf("%s第%d号单", model.VendorChineseNames[order.VendorID], order.OrderSeq)
billParams.PoiSeq = fmt.Sprintf("#%d", order.OrderSeq)
if !globals.EnableStoreWrite {
return nil, fmt.Errorf("测试环境不能真正创建运单")
}
// 通知美团订单,获取返回订单配送费
result, err := api.MtpsAPI.CreateOrderByShop2(billParams)
if err != nil {
globals.SugarLogger.Debugf("CreateWaybill failed, orderID:%s, billParams:%v, error:%v", order.VendorOrderID, billParams, err)
return nil, err
}
bill = &model.Waybill{
VendorOrderID: order.VendorOrderID,
OrderVendorID: order.VendorID,
VendorWaybillID: result.MtPeisongID,
VendorWaybillID2: utils.Int64ToStr(result.DeliveryID),
WaybillVendorID: model.VendorIDMTPS,
DesiredFee: utils.Float64TwoInt64(result.DeliveryFee),
}
// 当前运单总费大于配送阈值15日志打印提示
delivery.OnWaybillCreated(bill)
return bill, err
}

View File

@@ -278,7 +278,7 @@ enableJdStoreWrite = true
enableEbaiStoreWrite = true
enableMtwmStoreWrite = true
enableWscStoreWrite = true
enableYbStoreWrite = true
enableYbStoreWrite = true
enableJdShopWrite = true
disableWeimob = false
@@ -331,7 +331,7 @@ enableStoreWrite = true
enableJdStoreWrite = true
enableEbaiStoreWrite = true
enableMtwmStoreWrite = true
enableYbStoreWrite = true
enableYbStoreWrite = true
enableJdShopWrite = true
mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605"

View File

@@ -14,6 +14,9 @@ func Init() {
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
// 本地测试服调试
//orm.RegisterDataBase("default", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
//orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
orm.RegisterModel(new(legacymodel.Config))
orm.RegisterModel(new(legacymodel.BlackClient))