模板号对应枚举类

public enum SMSTemplateTypeEnum {

    RESET_PASSWORD("15759",new String[]{"code","username"}),
    VERIFICATION("16021",new String[]{"verificationCode"});

    private String id;
    private String[] params;
    SMSTemplateTypeEnum(String id, String[] params){
        this.id = id;
        this.params = params;
    }

    /**
     *解析出templateVaryInfo的变量并且放入map中以便于模板解析
     * @param templateVaryInfo  传入的模板变量信息,传入的信息没有冗余只有变量,每个变量用,隔开,用于模板解析,变量一定要用,隔开
     * @param smsType 传入的不同模板号
     */
    public static Map<String,String> parseSmsApiParam(String smsType, String templateVaryInfo) throws Exception{   //考虑异常,别人调用我的方法的时候可能不是用,分割开
        Map<String,String> map=new HashMap<>();
        String[] messageSplit;
        messageSplit=templateVaryInfo.split(",");
        for(SMSTemplateTypeEnum applyTypeEnum: SMSTemplateTypeEnum.values()) {
            if(applyTypeEnum.getId().equals(smsType)) {
                if(applyTypeEnum.getParams().length != messageSplit.length){
                    throw new IllegalArgumentException("没有用逗号隔开变量");
                }
                else{
                    for (int i = 0; i < applyTypeEnum.getParams().length; i++) {
                        map.put(applyTypeEnum.getParams()[i], messageSplit[i]);
                    }
                    break;
                }
            }
        }
        return map;
    }
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String[] getParams() {
        return params;
    }

    public void setParams(String[] params) {
        this.params = params;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_25931839/article/details/79424175
今日推荐