xiaoyong931011
2023-01-10 73b3813c2d110bf446f251350f120bb1e2b51d0c
src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java
@@ -3,16 +3,17 @@
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;
@@ -20,10 +21,13 @@
    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;
    }
    /**
@@ -33,10 +37,10 @@
     */
    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;
            }
@@ -44,6 +48,49 @@
        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);