package cc.mrbird.febs.common.enumerates; 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); private String name; private Integer minValue; private Integer maxValue; StarRatingEnum(String name,Integer minValue, Integer maxValue) { this.name = name; this.minValue = minValue; this.maxValue = maxValue; } /** * 根据商品原价获取对应的商品星级 * @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; } public static void main(String[] args) { String s = StarRatingEnum.NORMAL.belongStarRating(String.valueOf(100)); System.out.println(s); } }