yzc 2 лет назад
Родитель
Сommit
6977ff3bb2

+ 24 - 17
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateSeqNoUtils.java

@@ -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);