物料订单计算袋子
This commit is contained in:
@@ -8,6 +8,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
|
||||
@@ -122,6 +124,14 @@ var (
|
||||
7: "七",
|
||||
}
|
||||
dayList = []string{"今天", "明天", "后天"}
|
||||
|
||||
bagMap = map[int]int{
|
||||
6039382: 100,
|
||||
6039383: 200,
|
||||
6039384: 200,
|
||||
6039387: 200,
|
||||
6039390: 200,
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -422,6 +432,10 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
outJxOrder.StoreName = storeDetail.Name
|
||||
|
||||
skus := formalizeSkus(jxOrder.Skus)
|
||||
err = matterSkusLimited(skus, fromStoreID)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
// 允许空商品列表(一般用于测试配送地址,门店信息是否合适)
|
||||
if len(skus) > 0 {
|
||||
var skuIDs []int
|
||||
@@ -485,7 +499,23 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
}
|
||||
if jxSku != nil {
|
||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||
if fromStoreID == 0 {
|
||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||
} else {
|
||||
if bagMap[jxSku.SkuID] != 0 {
|
||||
if jxSku.Count > 1 {
|
||||
for i := 0; i < jxSku.Count; i++ {
|
||||
if i == 0 {
|
||||
outJxOrder.OrderPrice += 1
|
||||
} else {
|
||||
outJxOrder.OrderPrice += jxSku.SalePrice
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||
}
|
||||
}
|
||||
outJxOrder.Weight += jxSku.Count * jxSku.Weight
|
||||
}
|
||||
}
|
||||
@@ -537,6 +567,22 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
return outJxOrder, deliveryAddress, err
|
||||
}
|
||||
|
||||
func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) {
|
||||
result, err := orderman.GetMatterStoreOrderCount(nil, storeID)
|
||||
sum := 0
|
||||
if result.Count != 0 {
|
||||
for _, sku := range skus {
|
||||
if bagMap[sku.SkuID] != 0 {
|
||||
sum += bagMap[sku.SkuID] * sku.Count
|
||||
}
|
||||
}
|
||||
if sum-200 < result.Count {
|
||||
return fmt.Errorf("订单背心袋订购数量过多,请按照实际销量购买!,大概销量:[%v],购买数量:[%v]", result.Count, sum)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx) (order *model.GoodsOrder, err error) {
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: utils.Int64ToStr(jxOrder.OrderID),
|
||||
|
||||
Reference in New Issue
Block a user