1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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);
    }
}