物料订单如果是新店,袋子的处理

This commit is contained in:
苏尹岚
2020-03-12 11:57:34 +08:00
parent 06be899545
commit 6a48c92aa4

View File

@@ -467,6 +467,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
var (
result *orderman.OrderCount
sum int
flag = false //新店袋子拆分当个参数
)
if fromStoreID != 0 {
result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID)
@@ -505,57 +506,80 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
} else { //以下else为物料订单袋子金额和数量处理
if jxSku.SkuID == 6039382 {
if result.Count == 0 && result.Flag { //这个条件被认为是新店,袋子限量
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 {
jxSku.SalePrice = 1
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
if !flag {
jxSku.SalePrice = 1
jxSku.Count = 1
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
if jxSku.Count > 1 {
jxSku2 := *jxSku
jxSku2.SalePrice = jxSku.SalePrice
jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100)))
jxSku.SalePrice = 1
jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100)))
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
jxSku2.Count = jxSku2.Count - 1
outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2)
outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count)
outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count)
}
flag = true
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
}
} else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 {
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 {
jxSku.SalePrice = 1
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
jxSku2 := *jxSku
jxSku2.SalePrice = jxSku.SalePrice
jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200)))
jxSku.SalePrice = 1
jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200)))
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2)
outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count)
outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count)
}
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
if jxSku.SkuID == 6039382 {
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 {
jxSku.SalePrice = 1
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
jxSku2 := *jxSku
jxSku2.SalePrice = jxSku.SalePrice
jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100)))
jxSku.SalePrice = 1
jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100)))
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2)
outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count)
outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count)
}
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
}
} else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 {
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 {
jxSku.SalePrice = 1
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
jxSku2 := *jxSku
jxSku2.SalePrice = jxSku.SalePrice
jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200)))
jxSku.SalePrice = 1
jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200)))
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2)
outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count)
outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count)
}
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
}
} else {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
}
}
outJxOrder.Weight += jxSku.Count * jxSku.Weight