生成自增序号


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;

public class PayCenterServiceImpl {

    private static volatile AtomicInteger ATOM = new AtomicInteger(999);
    private static Random random = new Random();

    public String getNewOrderNo() {
        synchronized (PayCenterServiceImpl.class) {
            StringBuilder builder = new StringBuilder();
            builder.append(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")));
            int num = ATOM.incrementAndGet();
            if (num > 9999) {
                ATOM.getAndSet(1000);
                num = 1000;
            }
            builder.append(num);
            builder.append(randomInt(10, 99));
            return builder.toString();
        }
    }

    private static int randomInt(int min, int max) {
        return random.nextInt(max) % (max - min + 1) + min;
    }
}
posted @   亲爱的阿道君  阅读(369)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示