public enum WeChatReasonEnum {
ACCOUNT_FROZEN("ACCOUNT_FROZEN","账户冻结"),
REAL_NAME_CHECK_FAIL("REAL_NAME_CHECK_FAIL","用户未实名"),
NAME_NOT_CORRECT("NAME_NOT_CORRECT","用户姓名校验失败"),
OPENID_INVALID("OPENID_INVALID","Openid校验失败"),
TRANSFER_QUOTA_EXCEED("TRANSFER_QUOTA_EXCEED","超过用户单笔收款额度"),
DAY_RECEIVED_QUOTA_EXCEED("DAY_RECEIVED_QUOTA_EXCEED","超过用户单日收款额度"),
MONTH_RECEIVED_QUOTA_EXCEED("MONTH_RECEIVED_QUOTA_EXCEED","超过用户单月收款额度"),
DAY_RECEIVED_COUNT_EXCEED("DAY_RECEIVED_COUNT_EXCEED","超过用户单日收款次数"),
PRODUCT_AUTH_CHECK_FAIL("PRODUCT_AUTH_CHECK_FAIL","产品权限校验失败"),
OVERDUE_CLOSE("OVERDUE_CLOSE","转账关闭"),
ID_CARD_NOT_CORRECT("ID_CARD_NOT_CORRECT","用户身份证校验失败"),
ACCOUNT_NOT_EXIST("ACCOUNT_NOT_EXIST","用户账户不存在"),
TRANSFER_RISK("TRANSFER_RISK","转账存在风险"),
REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED("REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED","用户账户收款受限,请引导用户在微信支付查看详情"),
RECEIVE_ACCOUNT_NOT_PERMMIT("RECEIVE_ACCOUNT_NOT_PERMMIT","未配置该用户为转账收款人"),
PAYER_ACCOUNT_ABNORMAL("PAYER_ACCOUNT_ABNORMAL","商户账户付款受限,可前往商户平台-违约记录获取解除功能限制指引"),
PAYEE_ACCOUNT_ABNORMAL("PAYEE_ACCOUNT_ABNORMAL","用户账户收款异常,请引导用户完善其在微信支付的身份信息以继续收款"),
TRANSFER_REMARK_SET_FAIL("TRANSFER_REMARK_SET_FAIL","转账备注设置失败,请调整对应文案后重新再试");
private String type;
private String value;
WeChatReasonEnum(String type , String value) {
this.type = type;
this.value = value;
}
public static String getValueByType(String type){
Optional<WeChatReasonEnum> m1 = EnumUtil.getEnumObject(WeChatReasonEnum.class, e -> e.getType().equals(type));
return m1.isPresent() ? m1.get().getValue() : null;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
枚举工具类
public class EnumUtil {
private static Map<Class, Object> map = new ConcurrentHashMap<>();
public static <T> Optional<T> getEnumObject(Class<T> className, Predicate<T> predicate) {
if (!className.isEnum()) {
return null;
}
Object obj = map.get(className);
T[] ts = null;
if (obj == null) {
ts = className.getEnumConstants();
map.put(className, ts);
} else {
ts = (T[]) obj;
}
return Arrays.stream(ts).filter(predicate).findAny();
}
}