| | |
| | | import lombok.Getter; |
| | | |
| | | import java.math.BigDecimal; |
| | | //商品星级 |
| | | @Getter |
| | | public enum StarRatingEnum { |
| | | /** |
| | | * 定级规则 |
| | | * 大于最小值,小于等于最大值 |
| | | */ |
| | | NORMAL("普通",0,30), |
| | | ONE_STAR("一星",30,50), |
| | | TWO_STAR("二星",50,100), |
| | | THREE_STAR("三星",100,200); |
| | | NORMAL("普通",0,30,1), |
| | | ONE_STAR("一星",30,50,2), |
| | | TWO_STAR("二星",50,100,3), |
| | | THREE_STAR("三星",100,200,4); |
| | | |
| | | private String name; |
| | | |
| | |
| | | |
| | | private Integer maxValue; |
| | | |
| | | StarRatingEnum(String name,Integer minValue, 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public String belongStarRating(String price){ |
| | | String name = StarRatingEnum.NORMAL.name; |
| | | BigDecimal priceBig = new BigDecimal(price).setScale(BigDecimal.ROUND_DOWN,2); |
| | | BigDecimal priceBig = new BigDecimal(price).setScale(2,BigDecimal.ROUND_DOWN); |
| | | for (StarRatingEnum starRatingEnum : StarRatingEnum.values()) { |
| | | BigDecimal minValue = new BigDecimal(starRatingEnum.minValue).setScale(BigDecimal.ROUND_DOWN, 2); |
| | | BigDecimal maxValue = new BigDecimal(starRatingEnum.maxValue).setScale(BigDecimal.ROUND_DOWN, 2); |
| | | 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); |