This commit is contained in:
苏尹岚
2020-08-17 18:24:44 +08:00
parent 5a659f694b
commit ccbe089f96
8 changed files with 167 additions and 24 deletions

View File

@@ -258,3 +258,5 @@ func (c *OrderManager) UpdataOrderFinancialInfo(orderFinancial *model.OrderFinan
// orderFinancial 和 OrderSkuFinancial 数据计算完毕,准备进行更新
return err
}

View File

@@ -383,7 +383,10 @@ func ModifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (e
dao.SetStoreSkuSyncStatus(db, order.VendorID, []int{order.FromStoreID}, []int{sku.SkuID}, model.SyncFlagStockMask)
}
}
checkDefendPriceOrder(db, jxutils.GetSaleStoreIDFromOrder(order), sku.SkuID)
realStock := checkPriceDefendOrderByStock(db, jxutils.GetSaleStoreIDFromOrder(order), sku.SkuID, stock, storeSku.JxPrice)
if realStock != -1 {
stock = realStock
}
}
storeSku.Stock = stock
dao.UpdateEntity(db, storeSku, "Stock")
@@ -400,15 +403,44 @@ func filterOrderInfo(order *model.GoodsOrder) {
order.ConsigneeAddress = strings.ReplaceAll(order.ConsigneeAddress, "·", "")
}
func checkDefendPriceOrder(db *dao.DaoDB, storeID, skuID int) {
func checkPriceDefendOrderByStock(db *dao.DaoDB, storeID, skuID, stock, jxPrice int) (realStock int) {
var (
issue = 0
sumStock = 0
)
if time.Now().Hour() >= 22 {
issue = utils.Str2Int(time.Now().AddDate(0, 0, 1).Format("20060102"))
} else {
issue = utils.Str2Int(time.Now().Format("20060102"))
priceDefends, _ := dao.GetPriceDefendOrder(db, []int{storeID}, []int{skuID}, []int{jxutils.GetDefendPriceIssue()}, 0, 1, 0)
if len(priceDefends) == 0 {
return -1
}
for _, v := range priceDefends {
sumStock += v.Count
}
//如果现库存小于等于用户守价的库存,就要开始了
//如果小于,要按照守价时间的先后来决定
//如果等于就刚好全部成功然后库存清0
if stock < sumStock {
tStock := stock
for _, v := range priceDefends {
if tStock <= v.Count {
tStock -= v.Count
v.IsSuccess = model.YES
v.RealPrice = int64(jxPrice)
dao.UpdateEntity(db, v, "IsSuccess", "RealPrice")
} else {
continue
}
}
realStock = tStock
} else if stock == sumStock {
for _, v := range priceDefends {
v.IsSuccess = model.YES
v.RealPrice = int64(jxPrice)
dao.UpdateEntity(db, v, "IsSuccess", "RealPrice")
}
realStock = 0 //库存清0
} else {
realStock = -1
}
return realStock
}
func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.DaoDB, storePayPercentage, changePriceType int) (err error) {