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

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
}
v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, salePrice, storePayPercentage)
//重复购买有结算价的商品需要拆分第一个商品按结算价后面的商品按shopprice 或者 saleprice,然后把原来的商品信息删了
if v.Count > 1 && v.EarningPrice != 0 {
sku := v
sku.Count = v.Count - 1
v.Count = 1
if v.ShopPrice < v.SalePrice {
sku.EarningPrice = v.ShopPrice
//TODO 重复购买有结算价的商品需要拆分第一个商品按结算价后面的商品按shopprice 或者 saleprice, 2020-05-06
if v.Count > 1 {
storeID := 0
if order.StoreID == 0 {
storeID = order.JxStoreID
} 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
}
} else if v.SkuCount2 > 1 {
if v.SkuEarningPrice != 0 {
skuStr1 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuCount2),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(v.SkuEarningPrice),
}, ",")
skuStr2 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(1),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(v.SkuEarningPrice),
}, ",")
price := 0
if v.SkuShopPrice < v.SkuSalePrice {
price = v.SkuShopPrice
} else {
price = v.SkuSalePrice
}
skuStr3 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuCount2 - 1),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(price),
}, ",")
if order == nil || v.ID != order.ID {
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
storeID := 0
if v.StoreID == 0 {
storeID = v.JxStoreID
} else {
storeID = v.StoreID
}
result, _ := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, nil, 0, []int{storeID}, []int{v.SkuID}, v.OrderCreatedAt, v.OrderCreatedAt)
if len(result) > 0 {
if result[0].EarningPrice != 0 {
skuStr1 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuCount2),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(v.SkuEarningPrice),
}, ",")
skuStr2 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(1),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(v.SkuEarningPrice),
}, ",")
price := 0
if v.SkuShopPrice < v.SkuSalePrice {
price = v.SkuShopPrice
} else {
price = v.SkuSalePrice
}
skuStr3 := strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuCount2 - 1),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(price),
}, ",")
if order == nil || v.ID != order.ID {
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 {
skuStr1 := strings.Join([]string{