冲突
This commit is contained in:
@@ -194,6 +194,33 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
|
||||
}
|
||||
}
|
||||
}
|
||||
//更新订单new_earning_price
|
||||
if order.EarningType == model.EarningTypePoints {
|
||||
waybill, _ := c.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||
store, _ := c.LoadStoreDetail(jxutils.GetSaleStoreIDFromOrder(order), order.VendorID)
|
||||
if waybill == nil {
|
||||
// if order.VendorID == model.VendorIDJDShop || order.VendorID == model.VendorIDJX {
|
||||
// if order.NewEarningPrice == 0 || order.NewEarningPrice != order.TotalShopMoney*int64(100-store.PayPercentage)/int64(100) {
|
||||
// order.NewEarningPrice = order.TotalShopMoney * int64(100-store.PayPercentage) / int64(100)
|
||||
// }
|
||||
// } else {
|
||||
if order.NewEarningPrice == 0 || order.NewEarningPrice != order.TotalShopMoney*int64(100-store.PayPercentage/2)/int64(100) {
|
||||
order.NewEarningPrice = order.TotalShopMoney * int64(100-store.PayPercentage/2) / int64(100)
|
||||
}
|
||||
// }
|
||||
} else {
|
||||
// if order.VendorID == model.VendorIDJDShop || order.VendorID == model.VendorIDJX {
|
||||
// if order.NewEarningPrice == 0 || order.NewEarningPrice != (order.TotalShopMoney-waybill.DesiredFee)*int64(100-store.PayPercentage)/int64(100) {
|
||||
// order.NewEarningPrice = (order.TotalShopMoney - waybill.DesiredFee) * int64(100-store.PayPercentage) / int64(100)
|
||||
// }
|
||||
// } else {
|
||||
if order.NewEarningPrice == 0 || order.NewEarningPrice != (order.TotalShopMoney-waybill.DesiredFee)*int64(100-store.PayPercentage/2)/int64(100) {
|
||||
order.NewEarningPrice = (order.TotalShopMoney - waybill.DesiredFee) * int64(100-store.PayPercentage/2) / int64(100)
|
||||
}
|
||||
// }
|
||||
}
|
||||
dao.UpdateEntity(db, order, "NewEarningPrice")
|
||||
}
|
||||
}
|
||||
} else if orderStatus.Status == model.OrderStatusCanceled {
|
||||
//如果取消订单则要把库存加回去
|
||||
@@ -437,6 +464,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
|
||||
v.ShopPrice = v.SalePrice * 70 / 100
|
||||
}
|
||||
}
|
||||
v.SkuName = jxutils.ComposeSkuNameOriginal(skuBindInfo.Prefix, skuBindInfo.Name, skuBindInfo.Comment, skuBindInfo.Unit, skuBindInfo.SpecQuality, skuBindInfo.SpecUnit, 0)
|
||||
v.Weight = skuBindInfo.Weight // 以本地信息中的WEIGHT为准
|
||||
//饿鲜达的订单做一下处理
|
||||
if strings.Contains(order.StoreName, model.ExdStoreName) {
|
||||
@@ -1314,29 +1342,29 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
|
||||
order.StoreID = storeID
|
||||
order.StoreName = stores[0].Name
|
||||
order.VendorStoreID = storeMaps[0].VendorStoreID
|
||||
//如果是立即达的订单,要判断一下送达时间是否在门店营业时间范围内
|
||||
//如果是立即达的订单,要判断一下下单时间是否在门店营业时间范围内
|
||||
//若没有,则要把这个订单变成定时达,预计送达时间改为门店的营业时间
|
||||
//如果门店没有营业时间,则直接报错
|
||||
if order.BusinessType == model.BusinessTypeImmediate {
|
||||
store := stores[0]
|
||||
var (
|
||||
opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, order.ExpectedDeliveredTime)
|
||||
opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, order.ExpectedDeliveredTime)
|
||||
closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, order.ExpectedDeliveredTime)
|
||||
closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, order.ExpectedDeliveredTime)
|
||||
expectedTime = order.ExpectedDeliveredTime
|
||||
opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, order.OrderCreatedAt)
|
||||
opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, order.OrderCreatedAt)
|
||||
closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, order.OrderCreatedAt)
|
||||
closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, order.OrderCreatedAt)
|
||||
orderCreatedAt = order.OrderCreatedAt
|
||||
)
|
||||
if store.OpenTime1 == 0 || store.CloseTime1 == 0 {
|
||||
return "", fmt.Errorf("该门店没有营业时间,不能接单!门店:[%v]", storeID)
|
||||
}
|
||||
if !(expectedTime.Sub(opentime1) >= 0 && expectedTime.Sub(closetime1) <= 0) {
|
||||
if !(orderCreatedAt.Sub(opentime1) >= 0 && orderCreatedAt.Sub(closetime1) <= 0) {
|
||||
if store.OpenTime2 != 0 && store.CloseTime2 != 0 {
|
||||
if !(expectedTime.Sub(opentime2) >= 0 && expectedTime.Sub(closetime2) <= 0) {
|
||||
if expectedTime.Sub(opentime1) < 0 {
|
||||
if !(orderCreatedAt.Sub(opentime2) >= 0 && orderCreatedAt.Sub(closetime2) <= 0) {
|
||||
if orderCreatedAt.Sub(opentime1) < 0 {
|
||||
order.ExpectedDeliveredTime = opentime1
|
||||
order.BusinessType = model.BusinessTypeDingshida
|
||||
} else {
|
||||
if expectedTime.Sub(opentime2) < 0 {
|
||||
if orderCreatedAt.Sub(opentime2) < 0 {
|
||||
order.ExpectedDeliveredTime = opentime2
|
||||
} else {
|
||||
order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1)
|
||||
@@ -1345,7 +1373,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if expectedTime.Sub(opentime1) < 0 {
|
||||
if orderCreatedAt.Sub(opentime1) < 0 {
|
||||
order.ExpectedDeliveredTime = opentime1
|
||||
} else {
|
||||
order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1)
|
||||
@@ -1506,3 +1534,23 @@ func AdjustJdsOrderSimple(ctx *jxcontext.Context, vendorOrderID string, skuID in
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func UpdateWaybillDesiredFee(ctx *jxcontext.Context, vendorOrderID string, desiredFee int) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
)
|
||||
order, _ := dao.GetSimpleOrder(db, vendorOrderID)
|
||||
if order == nil {
|
||||
return fmt.Errorf("未找到该订单!orderID: %v", vendorOrderID)
|
||||
}
|
||||
bill, err := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if bill == nil {
|
||||
return fmt.Errorf("未找到此订单对应的运单!orderID: %v", vendorOrderID)
|
||||
}
|
||||
bill.DesiredFee = int64(desiredFee)
|
||||
_, err = dao.UpdateEntity(db, bill, "DesiredFee")
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -41,9 +41,9 @@ const (
|
||||
minute2Schedule3rdCarrier4Ebai = 30 // 饿百的最少转自配送需要的时间(分钟)
|
||||
minMinute2Schedule3rdCarrier = 5 // 转三方配送最少等待时间(分钟)
|
||||
|
||||
time2AutoPickupMin = 14 * time.Minute // 自动拣货等待时间,这个只有在没有PickDeadline信息才有用,否则会根据PickDeadline设置
|
||||
second2AutoPickupGap = 60 //随机60秒
|
||||
time2AutoPickupAhead = 20 * time.Second // 有最后拣货时间的提前值
|
||||
time2AutoPickupMin = 14 * time.Minute // 自动拣货等待时间,这个只有在没有PickDeadline信息才有用,否则会根据PickDeadline设置
|
||||
second2AutoPickupGap = 60 //随机60秒
|
||||
time2AutoPickupAhead = 120 * time.Second // 有最后拣货时间的提前值
|
||||
|
||||
switch2SelfDeliverRetryGap = 3 * time.Second // 转自送失败尝试的时间间隙
|
||||
switch2SelfDeliverRetryCount = 2 // 转自送失败尝试次数
|
||||
@@ -1180,7 +1180,7 @@ func (s *DefScheduler) updateOrderByBill(order *model.GoodsOrder, bill *model.Wa
|
||||
if bill.Status == model.WaybillStatusDelivered {
|
||||
storeDetail, _ := partner.CurOrderManager.LoadStoreDetail(jxutils.GetSaleStoreIDFromOrder(order), order.VendorID)
|
||||
if storeDetail != nil {
|
||||
jxutils.RefreshOrderEarningPrice2(order, storeDetail.PayPercentage)
|
||||
jxutils.RefreshOrderEarningPrice3(order, storeDetail.PayPercentage, bill)
|
||||
updateFields = append(updateFields, "NewEarningPrice")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user