ghy-all/ghy-common/src/main/java/com/ghy/common/enums/OrderStatus.java

88 lines
2.2 KiB
Java

package com.ghy.common.enums;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 订单状态
*
* @author clunt
*/
public enum OrderStatus implements IEnumType {
GOING_CANCEL(-2, "待上门时申请取消"),
SERVER_CANCEL(-3, "服务中申请取消"),
FINISH_CHECK_CANCEL(-4, "待确认时申请取消"),
RECEIVE(0, "待接单"),
PLAIN(1, "待排期"),
GOING(2, "待上门"),
SERVER(3, "服务中"),
FINISH_CHECK(4, "待确认"),
FINISH(5, "已完成"),
CANCEL(6, "已取消"),
Pending(7,"待提现");
private final Integer code;
private final String desc;
private final static Map<Integer, OrderStatus> BY_CODE_MAP
= Arrays.stream(OrderStatus.values()).collect(Collectors.toMap(OrderStatus::code, code -> code));
private final static Map<String, OrderStatus> BY_NAME_MAP
= Arrays.stream(OrderStatus.values()).collect(Collectors.toMap(code -> code.name().toLowerCase(), code -> code));
/**
* @param code 代码
* @param desc 描述
*/
OrderStatus(final int code, final String desc) {
this.code = code;
this.desc = desc;
}
@Override
public int code() {
return this.code;
}
@Override
public String desc() {
return this.desc;
}
/**
* @param code 代码
* @return 转换出来的状态码
*/
public static OrderStatus parse(Integer code) {
return BY_CODE_MAP.get(code);
}
public static OrderStatus parse(Integer code, OrderStatus defaultState) {
return BY_CODE_MAP.getOrDefault(code, defaultState);
}
/**
* @param name 名字
* @return 转换出来的状态码
*/
public static OrderStatus parse(String name) {
if (StringUtils.isBlank(name)) {
return null;
}
return BY_NAME_MAP.get(name.trim().toLowerCase());
}
public static OrderStatus parse(String name, OrderStatus defaultState) {
if (StringUtils.isBlank(name)) {
return defaultState;
}
return BY_NAME_MAP.getOrDefault(name.trim().toLowerCase(), defaultState);
}
}