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(2,BigDecimal.ROUND_DOWN);
|
for (StarRatingEnum starRatingEnum : StarRatingEnum.values()) {
|
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);
|
}
|
}
|