package cc.mrbird.febs.common.enumerates; 
 | 
  
 | 
import lombok.Getter; 
 | 
  
 | 
import java.math.BigDecimal; 
 | 
//商品星级 
 | 
@Getter 
 | 
public enum StarRatingEnum { 
 | 
    /** 
 | 
     * 定级规则 
 | 
     *      大于最小值,小于等于最大值 
 | 
     */ 
 | 
    NORMAL("普通",0,30,1), 
 | 
    ONE_STAR("一星",30,50,2), 
 | 
    TWO_STAR("二星",50,100,3), 
 | 
    THREE_STAR("三星",100,200,4); 
 | 
  
 | 
    private String name; 
 | 
  
 | 
    private Integer minValue; 
 | 
  
 | 
    private Integer maxValue; 
 | 
  
 | 
    private Integer code; 
 | 
  
 | 
    StarRatingEnum(String name,Integer minValue, Integer maxValue,Integer code) { 
 | 
        this.name = name; 
 | 
        this.minValue = minValue; 
 | 
        this.maxValue = maxValue; 
 | 
        this.code = code; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据商品原价获取对应的商品星级 
 | 
     * @param price 
 | 
     * @return 
 | 
     */ 
 | 
    public String belongStarRating(String price){ 
 | 
        String name = StarRatingEnum.NORMAL.name; 
 | 
        BigDecimal priceBig = new BigDecimal(price).setScale(2,BigDecimal.ROUND_DOWN); 
 | 
        for (StarRatingEnum starRatingEnum : StarRatingEnum.values()) { 
 | 
            BigDecimal minValue = new BigDecimal(starRatingEnum.minValue).setScale(2, BigDecimal.ROUND_DOWN); 
 | 
            BigDecimal maxValue = new BigDecimal(starRatingEnum.maxValue).setScale(2, BigDecimal.ROUND_DOWN); 
 | 
            if(priceBig.compareTo(minValue) > 0 && priceBig.compareTo(maxValue) <= 0){ 
 | 
                name = starRatingEnum.name; 
 | 
            } 
 | 
        } 
 | 
        return name; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据输入的商品星级获取对应的Code 
 | 
     * @param name 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer getGoodsStarCode(String name){ 
 | 
        Integer code = 0; 
 | 
        for(StarRatingEnum starRatingEnum : StarRatingEnum.values()){ 
 | 
            if(starRatingEnum.name.equals(name)){ 
 | 
                code = starRatingEnum.code; 
 | 
            } 
 | 
        } 
 | 
        return  code; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取商品可以设置的最小价格 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer getMinValue(){ 
 | 
        Integer totalMinvalue = 0; 
 | 
        for(StarRatingEnum starRatingEnum : StarRatingEnum.values()){ 
 | 
            if(starRatingEnum.minValue < totalMinvalue){ 
 | 
                totalMinvalue = starRatingEnum.minValue; 
 | 
            } 
 | 
        } 
 | 
        return totalMinvalue; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取商品可以设置的最大价格 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer getMaxValue(){ 
 | 
        Integer totalMaxValue = 0; 
 | 
        for(StarRatingEnum starRatingEnum : StarRatingEnum.values()){ 
 | 
            if(starRatingEnum.maxValue > totalMaxValue){ 
 | 
                totalMaxValue = starRatingEnum.maxValue; 
 | 
            } 
 | 
        } 
 | 
        return totalMaxValue; 
 | 
    } 
 | 
  
 | 
    public static void main(String[] args) { 
 | 
        String s = StarRatingEnum.NORMAL.belongStarRating(String.valueOf(100)); 
 | 
        System.out.println(s); 
 | 
    } 
 | 
} 
 |