订单结算价根据活动结算价修改

This commit is contained in:
苏尹岚
2020-05-06 16:15:43 +08:00
parent 726e5c0686
commit 9233c75053
2 changed files with 67 additions and 47 deletions

View File

@@ -364,17 +364,28 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
salePrice = 0 salePrice = 0
} }
v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, salePrice, storePayPercentage) v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, salePrice, storePayPercentage)
//重复购买有结算价的商品需要拆分第一个商品按结算价后面的商品按shopprice 或者 saleprice,然后把原来的商品信息删了 //TODO 重复购买有结算价的商品需要拆分第一个商品按结算价后面的商品按shopprice 或者 saleprice, 2020-05-06
if v.Count > 1 && v.EarningPrice != 0 { if v.Count > 1 {
sku := v storeID := 0
sku.Count = v.Count - 1 if order.StoreID == 0 {
v.Count = 1 storeID = order.JxStoreID
if v.ShopPrice < v.SalePrice {
sku.EarningPrice = v.ShopPrice
} else { } else {
sku.EarningPrice = v.SalePrice storeID = order.StoreID
}
result, _ := dao.GetEffectiveActStoreSkuInfo(db, 0, nil, 0, []int{storeID}, []int{v.SkuID}, order.OrderCreatedAt, order.OrderCreatedAt)
if len(result) > 0 {
if result[0].EarningPrice != 0 {
sku := v
sku.Count = v.Count - 1
v.Count = 1
if v.ShopPrice < v.SalePrice {
sku.EarningPrice = v.ShopPrice
} else {
sku.EarningPrice = v.SalePrice
}
orderSkus = append(orderSkus, sku)
}
} }
orderSkus = append(orderSkus, sku)
} }
} }
// 直营店始终按比例结算,不考虑活动与结算表 // 直营店始终按比例结算,不考虑活动与结算表

View File

@@ -332,44 +332,53 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
order.SkuInfo2 += ";" + skuStr1 order.SkuInfo2 += ";" + skuStr1
} }
} else if v.SkuCount2 > 1 { } else if v.SkuCount2 > 1 {
if v.SkuEarningPrice != 0 { storeID := 0
skuStr1 := strings.Join([]string{ if v.StoreID == 0 {
utils.Int2Str(v.SkuID), storeID = v.JxStoreID
utils.Int2Str(v.SkuCount2), } else {
utils.Int2Str(v.SkuShopPrice), storeID = v.StoreID
utils.Int2Str(v.SkuSalePrice), }
utils.Int2Str(v.SkuEarningPrice), result, _ := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, nil, 0, []int{storeID}, []int{v.SkuID}, v.OrderCreatedAt, v.OrderCreatedAt)
}, ",") if len(result) > 0 {
skuStr2 := strings.Join([]string{ if result[0].EarningPrice != 0 {
utils.Int2Str(v.SkuID), skuStr1 := strings.Join([]string{
utils.Int2Str(1), utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuShopPrice), utils.Int2Str(v.SkuCount2),
utils.Int2Str(v.SkuSalePrice), utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuEarningPrice), utils.Int2Str(v.SkuSalePrice),
}, ",") utils.Int2Str(v.SkuEarningPrice),
price := 0 }, ",")
if v.SkuShopPrice < v.SkuSalePrice { skuStr2 := strings.Join([]string{
price = v.SkuShopPrice utils.Int2Str(v.SkuID),
} else { utils.Int2Str(1),
price = v.SkuSalePrice utils.Int2Str(v.SkuShopPrice),
} utils.Int2Str(v.SkuSalePrice),
skuStr3 := strings.Join([]string{ utils.Int2Str(v.SkuEarningPrice),
utils.Int2Str(v.SkuID), }, ",")
utils.Int2Str(v.SkuCount2 - 1), price := 0
utils.Int2Str(v.SkuShopPrice), if v.SkuShopPrice < v.SkuSalePrice {
utils.Int2Str(v.SkuSalePrice), price = v.SkuShopPrice
utils.Int2Str(price), } else {
}, ",") price = v.SkuSalePrice
if order == nil || v.ID != order.ID { }
order = v skuStr3 := strings.Join([]string{
v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] utils.Int2Str(v.SkuID),
v.Status2 = model.OrderStatusName[v.Status] utils.Int2Str(v.SkuCount2 - 1),
v.SkuInfo = skuStr1 utils.Int2Str(v.SkuShopPrice),
v.SkuInfo2 = skuStr2 + ";" + skuStr3 utils.Int2Str(v.SkuSalePrice),
orders2 = append(orders2, v) utils.Int2Str(price),
} else { }, ",")
order.SkuInfo += ";" + skuStr1 if order == nil || v.ID != order.ID {
order.SkuInfo2 += ";" + skuStr2 + ";" + skuStr3 order = v
v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID]
v.Status2 = model.OrderStatusName[v.Status]
v.SkuInfo = skuStr1
v.SkuInfo2 = skuStr2 + ";" + skuStr3
orders2 = append(orders2, v)
} else {
order.SkuInfo += ";" + skuStr1
order.SkuInfo2 += ";" + skuStr2 + ";" + skuStr3
}
} }
} else { } else {
skuStr1 := strings.Join([]string{ skuStr1 := strings.Join([]string{