This commit is contained in:
laodaming 2023-07-12 10:40:11 +08:00
parent 55eabd5cae
commit cf59a03129

View File

@ -206,8 +206,8 @@ func (l *GetProductInfoLogic) GetProductInfo(req *types.GetProductInfoReq, useri
//循环阶梯价计算 //循环阶梯价计算
type MaterialSizePrice struct { type MaterialSizePrice struct {
Items []interface{} `json:"items"` Items []interface{} `json:"items"`
MinPrice string `json:"min_price"` MinPrice float64 `json:"min_price"`
MaxPrice string `json:"max_price"` MaxPrice float64 `json:"max_price"`
} }
mapMaterialSizePrice := make(map[string]*MaterialSizePrice) mapMaterialSizePrice := make(map[string]*MaterialSizePrice)
//循环处理组装模板信息 //循环处理组装模板信息
@ -337,14 +337,18 @@ func (l *GetProductInfoLogic) GetProductInfo(req *types.GetProductInfoReq, useri
for *priceItem.MinBuyNum < int64(stepNumSlice[lenStepNum-1]+5) { for *priceItem.MinBuyNum < int64(stepNumSlice[lenStepNum-1]+5) {
price := step_price.GetCentStepPrice(int(*priceItem.MinBuyNum), stepNumSlice, stepPriceSlice) price := step_price.GetCentStepPrice(int(*priceItem.MinBuyNum), stepNumSlice, stepPriceSlice)
mapMaterialSizePriceKey := l.getMapMaterialSizePriceKey(*priceItem.MaterialId, *priceItem.SizeId) mapMaterialSizePriceKey := l.getMapMaterialSizePriceKey(*priceItem.MaterialId, *priceItem.SizeId)
minPriceStr := fmt.Sprintf("%.2f", float64(stepPriceSlice[lenStepPrice-1])/100)
minPrice, _ := strconv.ParseFloat(minPriceStr, 64)
maxPriceStr := fmt.Sprintf("%.2f", float64(stepPriceSlice[0])/100)
maxPrice, _ := strconv.ParseFloat(maxPriceStr, 64)
if _, ok := mapMaterialSizePrice[mapMaterialSizePriceKey]; ok { if _, ok := mapMaterialSizePrice[mapMaterialSizePriceKey]; ok {
mapMaterialSizePrice[mapMaterialSizePriceKey].Items = append(mapMaterialSizePrice[mapMaterialSizePriceKey].Items, map[string]interface{}{ mapMaterialSizePrice[mapMaterialSizePriceKey].Items = append(mapMaterialSizePrice[mapMaterialSizePriceKey].Items, map[string]interface{}{
"num": *priceItem.MinBuyNum, "num": *priceItem.MinBuyNum,
"total_num": *priceItem.MinBuyNum * (*priceItem.EachBoxNum), "total_num": *priceItem.MinBuyNum * (*priceItem.EachBoxNum),
"price": price, "price": price,
}) })
mapMaterialSizePrice[mapMaterialSizePriceKey].MinPrice = fmt.Sprintf("%.2f", float64(stepPriceSlice[lenStepPrice-1])/100) mapMaterialSizePrice[mapMaterialSizePriceKey].MinPrice = minPrice
mapMaterialSizePrice[mapMaterialSizePriceKey].MaxPrice = fmt.Sprintf("%.2f", float64(stepPriceSlice[0])/100) mapMaterialSizePrice[mapMaterialSizePriceKey].MaxPrice = maxPrice
} else { } else {
items := map[string]interface{}{ items := map[string]interface{}{
"num": *priceItem.MinBuyNum, "num": *priceItem.MinBuyNum,
@ -353,8 +357,8 @@ func (l *GetProductInfoLogic) GetProductInfo(req *types.GetProductInfoReq, useri
} }
mapMaterialSizePrice[mapMaterialSizePriceKey] = &MaterialSizePrice{ mapMaterialSizePrice[mapMaterialSizePriceKey] = &MaterialSizePrice{
Items: []interface{}{items}, Items: []interface{}{items},
MinPrice: fmt.Sprintf("%.2f", float64(stepPriceSlice[lenStepPrice-1])/100), MinPrice: minPrice,
MaxPrice: fmt.Sprintf("%.2f", float64(stepPriceSlice[0])/100), MaxPrice: maxPrice,
} }
} }
*priceItem.MinBuyNum++ *priceItem.MinBuyNum++