|
|
@@ -38,12 +38,10 @@ public class OrderGenerateSeqNoUtils {
|
|
|
throw new RuntimeException("Order Generate SeqNo Error");
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
- /**拼接redis key 公共key+[业务标识]+日期 */
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(now));
|
|
|
+ String appendKey = getKey(redisOrderGenerateEnum, prefix, now);
|
|
|
//设置过期时间,这里设置为当天的23:59:59
|
|
|
Long secondsDay = DateUtils.getSecondsDay();
|
|
|
- Long seq = generate(appendKey.toString(), secondsDay);
|
|
|
+ Long seq = generate(appendKey, secondsDay);
|
|
|
String date = DateUtils.formatDateToYYMMDD(now);
|
|
|
String sequence = String.format("%04d", seq);
|
|
|
/**拼接业务编号*/
|
|
|
@@ -58,6 +56,19 @@ public class OrderGenerateSeqNoUtils {
|
|
|
return seqNo + orderType + level + number;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 拼接redis key 公共key+[业务标识]+日期
|
|
|
+ *
|
|
|
+ * @param redisOrderGenerateEnum
|
|
|
+ * @param prefix
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getKey(RedisOrderGenerateEnum redisOrderGenerateEnum, OrderRuleEnum prefix, Date date) {
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(date));
|
|
|
+ return appendKey.toString();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* //返回当前redis中的key的最大值
|
|
|
@@ -101,18 +112,16 @@ public class OrderGenerateSeqNoUtils {
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getSeqNoMinusOne(RedisOrderGenerateEnum redisOrderGenerateEnum, OrderRuleEnum prefix) {
|
|
|
+ if (prefix == null) {
|
|
|
+ throw new RuntimeException("Order Generate SeqNo Error");
|
|
|
+ }
|
|
|
Date now = new Date();
|
|
|
- /**拼接redis key 公共key+[业务标识]+日期 */
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(new Date()));
|
|
|
+ String appendKey = getKey(redisOrderGenerateEnum, prefix, now);
|
|
|
//设置过期时间,这里设置为当天的23:59:59
|
|
|
Long secondsDay = DateUtils.getSecondsDay();
|
|
|
- Long seq = getMinusOne(appendKey.toString(), secondsDay);
|
|
|
+ Long seq = getMinusOne(appendKey, secondsDay);
|
|
|
String date = DateUtils.formatDateToYYMMDD(now);
|
|
|
- String sequence = StringUtils.addZeroForNum(seq.toString(), 4);
|
|
|
- if (prefix == null) {
|
|
|
- throw new RuntimeException("Order Generate SeqNo Error");
|
|
|
- }
|
|
|
+ String sequence = String.format("%04d", seq);
|
|
|
/**拼接业务编号*/
|
|
|
String seqNo = prefix.getCode() + date + sequence;
|
|
|
log.info("KEY:{}, 序列号生成:{}, 过期时间:{}秒", appendKey, seqNo, secondsDay);
|
|
|
@@ -140,14 +149,12 @@ public class OrderGenerateSeqNoUtils {
|
|
|
throw new RuntimeException("Order Generate SeqNo Error");
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
- /**拼接redis key 公共key+[业务标识]+日期 */
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(now));
|
|
|
+ String appendKey = getKey(redisOrderGenerateEnum, prefix, now);
|
|
|
//设置过期时间,这里设置为当天的23:59:59
|
|
|
Long secondsDay = DateUtils.getSecondsDay();
|
|
|
- Long seq = generate(appendKey.toString(), secondsDay);
|
|
|
+ Long seq = generate(appendKey, secondsDay);
|
|
|
String date = DateUtils.formatDateToYYMMDD(now);
|
|
|
- String sequence = StringUtils.addZeroForNum(seq.toString(), 4);
|
|
|
+ String sequence = String.format("%04d", seq);
|
|
|
/**拼接业务编号*/
|
|
|
String seqNo = prefix.getCode() + date + sequence;
|
|
|
log.info("KEY:{}, 序列号生成:{}, 过期时间:{}秒", appendKey, seqNo, secondsDay);
|