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(BigDecimal.ROUND_DOWN,2); 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); 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; } public static void main(String[] args) { String s = StarRatingEnum.NORMAL.belongStarRating(String.valueOf(100)); System.out.println(s); } }