1
This commit is contained in:
@@ -82,6 +82,11 @@ const (
|
|||||||
)
|
)
|
||||||
const BrandIdChengShan = 142 // 成山农场品牌id
|
const BrandIdChengShan = 142 // 成山农场品牌id
|
||||||
|
|
||||||
|
const (
|
||||||
|
DefMaxDeliveryFee = 1500 // 创建运单最高价
|
||||||
|
AlarmFee = 1500 // 配送费报警阈值
|
||||||
|
)
|
||||||
|
|
||||||
type VendorInfo struct {
|
type VendorInfo struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
|
||||||
|
|||||||
@@ -323,12 +323,6 @@ func (c *DeliveryHandler) getBillParams(db *dao.DaoDB, order *model.GoodsOrder)
|
|||||||
}
|
}
|
||||||
if billParams.ShopNo, err = c.getDadaShopID(order, db); err == nil {
|
if billParams.ShopNo, err = c.getDadaShopID(order, db); err == nil {
|
||||||
if billParams.CityCode, err = c.getDataCityCodeFromOrder(order, db); err == nil {
|
if billParams.CityCode, err = c.getDataCityCodeFromOrder(order, db); err == nil {
|
||||||
// storeTel := ""
|
|
||||||
// storeID := jxutils.GetSaleStoreIDFromOrder(order)
|
|
||||||
// storeDeatail, _ := dao.GetStoreDetail(db, storeID, order.VendorID)
|
|
||||||
// if storeDeatail.Tel2 != "" {
|
|
||||||
// storeTel = ",门店电话:" + storeDeatail.Tel2
|
|
||||||
// }
|
|
||||||
billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
||||||
billParams.Info = fmt.Sprintf("%s第%d号订单, %s", model.VendorChineseNames[order.VendorID], order.OrderSeq, utils.FilterMb4("客户电话:"+order.ConsigneeMobile+","+order.BuyerComment+"配送遇到问题,可联系18048531223取消配送单。"))
|
billParams.Info = fmt.Sprintf("%s第%d号订单, %s", model.VendorChineseNames[order.VendorID], order.OrderSeq, utils.FilterMb4("客户电话:"+order.ConsigneeMobile+","+order.BuyerComment+"配送遇到问题,可联系18048531223取消配送单。"))
|
||||||
billParams.CargoType = dadaapi.CargoTypeFresh
|
billParams.CargoType = dadaapi.CargoTypeFresh
|
||||||
@@ -339,7 +333,7 @@ func (c *DeliveryHandler) getBillParams(db *dao.DaoDB, order *model.GoodsOrder)
|
|||||||
return billParams, err
|
return billParams, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// IDeliveryPlatformHandler
|
// CreateWaybill IDeliveryPlatformHandler
|
||||||
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
|
||||||
|
|||||||
@@ -18,13 +18,11 @@ const (
|
|||||||
warningWeight = 50 * 1000 // 克
|
warningWeight = 50 * 1000 // 克
|
||||||
// maxDiffFee2Mtps = 200 // 与美团配送最多差价
|
// maxDiffFee2Mtps = 200 // 与美团配送最多差价
|
||||||
// maxAddFee = 200 // 最大增加费用,单位为分,超过不发三方配送了
|
// maxAddFee = 200 // 最大增加费用,单位为分,超过不发三方配送了
|
||||||
defMaxDeliveryFee = 10000 // 创建运单最高价
|
|
||||||
alarmFee = 1500 // 配送费报警阈值
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee int64, order *model.GoodsOrder, waybillVendorID int) (err error) {
|
func CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee int64, order *model.GoodsOrder, waybillVendorID int) (err error) {
|
||||||
if maxDeliveryFee <= 0 || maxDeliveryFee > defMaxDeliveryFee {
|
if maxDeliveryFee <= 0 || maxDeliveryFee > model.DefMaxDeliveryFee {
|
||||||
maxDeliveryFee = defMaxDeliveryFee
|
maxDeliveryFee = model.DefMaxDeliveryFee
|
||||||
}
|
}
|
||||||
if deliveryFee > maxDeliveryFee {
|
if deliveryFee > maxDeliveryFee {
|
||||||
errStr := fmt.Sprintf("超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(deliveryFee), jxutils.IntPrice2StandardCurrencyString(maxDeliveryFee))
|
errStr := fmt.Sprintf("超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(deliveryFee), jxutils.IntPrice2StandardCurrencyString(maxDeliveryFee))
|
||||||
@@ -139,8 +137,8 @@ func CalculateBillDeliveryFee(bill *model.Waybill) (deliveryFee, addFee int64) {
|
|||||||
// 日志提示检查订单运费
|
// 日志提示检查订单运费
|
||||||
func OnWaybillCreated(waybill *model.Waybill) {
|
func OnWaybillCreated(waybill *model.Waybill) {
|
||||||
deliveryFee := int64(math.Max(float64(waybill.DesiredFee), float64(waybill.ActualFee)))
|
deliveryFee := int64(math.Max(float64(waybill.DesiredFee), float64(waybill.ActualFee)))
|
||||||
if deliveryFee > alarmFee {
|
if deliveryFee > model.AlarmFee {
|
||||||
globals.SugarLogger.Infof("[运营]%s订单, orderID:%s, 成功创建%s运单:%s, 配送费:%s太高(大于%s),请知悉!", model.VendorChineseNames[waybill.OrderVendorID], waybill.VendorOrderID,
|
globals.SugarLogger.Infof("[运营]%s订单, orderID:%s, 成功创建%s运单:%s, 配送费:%s太高(大于%s),请知悉!", model.VendorChineseNames[waybill.OrderVendorID], waybill.VendorOrderID,
|
||||||
model.VendorChineseNames[waybill.WaybillVendorID], waybill.VendorWaybillID, jxutils.IntPrice2StandardCurrencyString(deliveryFee), jxutils.IntPrice2StandardCurrencyString(alarmFee))
|
model.VendorChineseNames[waybill.WaybillVendorID], waybill.VendorWaybillID, jxutils.IntPrice2StandardCurrencyString(deliveryFee), jxutils.IntPrice2StandardCurrencyString(model.AlarmFee))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,6 +100,15 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
|
|||||||
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取配送费
|
||||||
|
fee, err := c.GetWaybillFee(order)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if fee.DeliveryFee >= model.DefMaxDeliveryFee {
|
||||||
|
return nil, fmt.Errorf("蜂鸟超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(fee.DeliveryFee), jxutils.IntPrice2StandardCurrencyString(model.DefMaxDeliveryFee))
|
||||||
|
}
|
||||||
|
|
||||||
// 蜂鸟入参结构体
|
// 蜂鸟入参结构体
|
||||||
parameter := &fnpsapi.CreateOrderReqParam{
|
parameter := &fnpsapi.CreateOrderReqParam{
|
||||||
PartnerOrderCode: order.VendorOrderID,
|
PartnerOrderCode: order.VendorOrderID,
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
|
|||||||
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
// 检查配送平台是否被禁用
|
// 检查配送平台是否被禁用
|
||||||
vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDFengNiao, "", model.VendorOrgTypeDelivery)
|
vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDMTPS, "", model.VendorOrgTypeDelivery)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -331,6 +331,14 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
|
|||||||
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fee, err := c.GetWaybillFee(order)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if fee.DeliveryFee >= model.DefMaxDeliveryFee {
|
||||||
|
return nil, fmt.Errorf("美团配送超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(fee.DeliveryFee), jxutils.IntPrice2StandardCurrencyString(model.DefMaxDeliveryFee))
|
||||||
|
}
|
||||||
|
|
||||||
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
|
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
|
||||||
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
||||||
billParams := &mtpsapi.CreateOrderByShopParam{
|
billParams := &mtpsapi.CreateOrderByShopParam{
|
||||||
|
|||||||
@@ -89,6 +89,14 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
|
|||||||
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fee, err := d.GetWaybillFee(order)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if fee.DeliveryFee >= model.DefMaxDeliveryFee {
|
||||||
|
return nil, fmt.Errorf("顺丰超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(fee.DeliveryFee), jxutils.IntPrice2StandardCurrencyString(model.DefMaxDeliveryFee))
|
||||||
|
}
|
||||||
|
|
||||||
store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")
|
store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -139,6 +139,14 @@ func (d DeliveryHandler) IsErrStoreExist(err error) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
|
||||||
|
fee, err := d.GetWaybillFee(order)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if fee.DeliveryFee >= model.DefMaxDeliveryFee {
|
||||||
|
return nil, fmt.Errorf("顺丰超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(fee.DeliveryFee), jxutils.IntPrice2StandardCurrencyString(model.DefMaxDeliveryFee))
|
||||||
|
}
|
||||||
|
|
||||||
//获取门店老板详情
|
//获取门店老板详情
|
||||||
storeOwner, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")
|
storeOwner, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user