public class SysCode{
private String sys_code; // 系统状态码
private String sys_desc; // 状态码描述
private String asso_code; // 伴生状态码
private String asso_desc; // 状态码描述
protected static final Map<String, SysCode> codeMap = Maps.newHashMap();
// 系统状态码
private static Map<String ,String> sysCodeMap = new HashMap<String ,String>(){
private static final long serialVersionUID = 1L;
{
put("200", "成功");
// 黑/白名单
put("100", "黑名单");
put("101", "触发大黑名单");
put("102", "触发系统屏蔽地区");
put("103", "触发用户黑名单");
put("104", "用户通道地区屏蔽");
put("105", "非用户白名单");
put("106", "触发全量用户黑名单");
// 签名相关
put("201", "签名未报备");
put("202", "触发黑签名");
put("203", "内容没签名");
put("204", "签名位置不正确");
put("205", "多签名");
put("206", "签名被禁止");
put("207", "签名不正确");
// 账户问题
put("300", "用户余额不足");
// 重复问题
put("400", "白名单重号过滤");
put("401", "重号过滤7天");
put("402", "重号过滤30天");
put("403", "24小时内的重号过滤");
// 短信内容
put("500", "触发自动屏蔽词");
put("501", "触发SMG自动屏蔽词");
put("502", "非用户短信模板");
// 其他问题
put("001", "驳回失败");
}};
public static SysCode SUCCEED = new SysCode("200","成功", "200") ;
/**
* 含参构造
* @param asso_code 伴生状态码
* @param asso_desc 伴生状态码说明
* @param sys_code 系统状态码
*/
public SysCode(String asso_code, String asso_desc,String sys_code) {
this.sys_code = asso_code;
this.sys_desc = sysCodeMap.get(sys_code);
this.asso_code = asso_code;
this.asso_desc = asso_desc;
// 当状态码位新增状态时
if(StringUtils.isEmpty(this.sys_desc)){
this.sys_desc = asso_desc;
}
codeMap.put(asso_code,this);
}
/**
* 静态含参构造
* @param asso_code 伴生状态码
* @param asso_desc 伴生状态码说明
* @param sys_code 系统状态码
*/
public static SysCode container(String asso_code, String asso_desc,String sys_code) {
return new SysCode(asso_code, asso_desc, sys_code);
}
/**
* 根据伴生状态码获取对象
* @param asso_code 伴生状态码
* @return 状态码对象
*/
public static SysCode get(String asso_code) {
return codeMap.get(asso_code);
}
public String getSys_code() {
return sys_code;
}
public String getSys_desc() {
return sys_desc;
}
public String getAsso_code() {
return asso_code;
}
public String getAsso_desc() {
return asso_desc;
}
@Override
public String toString() {
return "SysCode{" +
"sys_code='" + sys_code + '\'' +
", sys_desc='" + sys_desc + '\'' +
", asso_code='" + asso_code + '\'' +
", asso_desc='" + asso_desc + '\'' +
'}';
}
public static void main(String[] args){
System.out.println(SysCode.SUCCEED.getSys_code());
System.out.println(get("200").getSys_desc());
}
}
状态码维护类
最新推荐文章于 2024-05-15 16:56:25 发布