参数格式 ${year-5-} ;并且 5 是可以变化的,例如 ${year-10-} 10指的是返回编号的位数,传几就返回几位数
测试代码
String ruleStr = "${year-5-} ";
String yearAndCode = redisHelper.yearAndCode(ruleStr);
// ${year}-${year-5-code} 5 是可以变化的 最终生成的效果如 2021-00001
public String yearAndCode(String ruleStr){
String yyyy = DateUtils.dateToStr(new Date(), "yyyy"); // 获取当前年份
String redisKey = "key_year_" + yyyy ;
long incr = 1L;
if (hasKey(redisKey)) {
incr = incr(redisKey, 1);
}else {
set(redisKey, 1);
}
String substring = ruleStr.substring(ruleStr.indexOf("-")+1, ruleStr.indexOf("-}"));
int count = 0;
String str = "";
if(StringUtils.isNotBlank(substring)){
count = Integer.parseInt(substring);
}
for (int i = 1; i< count ; i++){
str += "0";
}
String value = str+String.valueOf(incr);
String code = value.substring(value.length() - count, value.length());
String yearCode = yyyy+"-"+code;
return yearCode;
}