浏览代码

新增毫秒时间 ID 可用于订单 ID

hubin 6 年之前
父节点
当前提交
8b898bbacb
共有 1 个文件被更改,包括 25 次插入0 次删除
  1. 25 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/IdWorker.java

+ 25 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/IdWorker.java

@@ -15,6 +15,8 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.UUID;
 import java.util.concurrent.ThreadLocalRandom;
 
@@ -34,6 +36,11 @@ public class IdWorker {
      */
     private static Sequence WORKER = new Sequence();
 
+    /**
+     * 毫秒格式化时间
+     */
+    public static final DateTimeFormatter MILLISECOND = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
+
     public static long getId() {
         return WORKER.nextId();
     }
@@ -42,6 +49,24 @@ public class IdWorker {
         return String.valueOf(WORKER.nextId());
     }
 
+    /**
+     * <p>
+     * 格式化的毫秒时间
+     * </p>
+     */
+    public static String getMillisecond() {
+        return LocalDateTime.now().format(MILLISECOND);
+    }
+
+    /**
+     * <p>
+     * 时间 ID = Time + ID
+     * </p>
+     */
+    public static String geTimeId() {
+        return getMillisecond() + getId();
+    }
+
     /**
      * <p>
      * 有参构造器