diff --git a/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java b/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java new file mode 100644 index 0000000..e34d658 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java @@ -0,0 +1,39 @@ +package com.guo.learningprogresstracker.utils; + +import lombok.RequiredArgsConstructor; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 用于生成编码的工具 + * + * @author guo + */ +@RequiredArgsConstructor +public class GenerateNumTool { + public static int getNextSequence() { + // 获取当前时间的毫秒级时间戳 + long timestamp = System.currentTimeMillis(); + + // 使用时间戳的最后6位作为序列号 + return (int) (timestamp % 1_000_000); + } + + /** + * 生成以prefix开头separator分割的编码 + * 例如:PREFIX—20240711-423468 + * @param prefix + * @param separator + * @return + */ + public String generateNum(String prefix, String separator) { + String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); + + // 唯一的后缀 + int sequence = getNextSequence(); + + // 返回完整的 taskNum + return prefix + separator + currentDate + separator + sequence; + } +}