fix
This commit is contained in:
		
							parent
							
								
									cef191a6e4
								
							
						
					
					
						commit
						0ea48b53c8
					
				@ -157,22 +157,18 @@ func (l *GetSizeByProductLogic) GetSecondChildrenList(tag model.FsTags, product
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		if len(stepNum) > len(stepPrice) {
 | 
			
		||||
			return nil, errors.New(fmt.Sprintf("stepNum count not eq stepPrice count: product size id :%d ,product price id :%d", productSize.Id, price.Id))
 | 
			
		||||
		if len(stepNum) == 0 || len(stepPrice) == 0 {
 | 
			
		||||
			return nil, errors.New(fmt.Sprintf("stepNum count or stepPrice count is empty: product size id :%d ,product price id :%d", productSize.Id, price.Id))
 | 
			
		||||
		}
 | 
			
		||||
		for i := 0; i < 3; i++ {
 | 
			
		||||
			// 最小购买数量小于 最大阶梯数量+5
 | 
			
		||||
			if int(price.MinBuyNum) < (stepNum[len(stepNum)-1] + 5) {
 | 
			
		||||
				priceList = append(priceList, types.PriceObj{
 | 
			
		||||
					Num:   int(price.MinBuyNum * price.EachBoxNum),
 | 
			
		||||
					Price: l.GetPrice(int(price.MinBuyNum), stepNum, stepPrice),
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		index := 0
 | 
			
		||||
		// 最小购买数量小于 最大阶梯数量+5
 | 
			
		||||
		for int(price.MinBuyNum) < (stepNum[len(stepNum)-1]+5) && index < 3 {
 | 
			
		||||
			priceList = append(priceList, types.PriceObj{
 | 
			
		||||
				Num:   int(price.MinBuyNum * price.EachBoxNum),
 | 
			
		||||
				Price: l.GetPrice(int(price.MinBuyNum), stepNum, stepPrice),
 | 
			
		||||
			})
 | 
			
		||||
			price.MinBuyNum++
 | 
			
		||||
		}
 | 
			
		||||
		//如果不够三个则追加伪数据
 | 
			
		||||
		for len(priceList) < 3 {
 | 
			
		||||
			priceList = append(priceList, types.PriceObj{Num: 1, Price: 0})
 | 
			
		||||
			index++
 | 
			
		||||
		}
 | 
			
		||||
		data := types.ChildrenObj{
 | 
			
		||||
			Id:        productSize.Id,
 | 
			
		||||
@ -184,9 +180,15 @@ func (l *GetSizeByProductLogic) GetSecondChildrenList(tag model.FsTags, product
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
func (l *GetSizeByProductLogic) GetPrice(minBuyNum int, stepNum []int, stepPrice []int) float64 {
 | 
			
		||||
	if minBuyNum > stepNum[len(stepNum)-1] {
 | 
			
		||||
		return float64(stepPrice[len(stepPrice)-1]) / float64(100)
 | 
			
		||||
	}
 | 
			
		||||
	for k, v := range stepNum {
 | 
			
		||||
		if minBuyNum <= v {
 | 
			
		||||
			return float64(stepPrice[k]) / float64(100)
 | 
			
		||||
			if k <= (len(stepPrice) - 1) {
 | 
			
		||||
				return float64(stepPrice[k]) / float64(100)
 | 
			
		||||
			}
 | 
			
		||||
			return float64(stepPrice[len(stepPrice)-1]) / float64(100)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return float64(stepPrice[len(stepPrice)-1]) / float64(100)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user