From e263433ec7bd9b10bb0be3b363a8a91838e6d277 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Fri, 20 Aug 2021 23:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ink/wgink/util/OrderUtil.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 basic-util/src/main/java/ink/wgink/util/OrderUtil.java diff --git a/basic-util/src/main/java/ink/wgink/util/OrderUtil.java b/basic-util/src/main/java/ink/wgink/util/OrderUtil.java new file mode 100644 index 00000000..1ce4acd6 --- /dev/null +++ b/basic-util/src/main/java/ink/wgink/util/OrderUtil.java @@ -0,0 +1,48 @@ +package ink.wgink.util; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @ClassName: OrderUtil + * @Description: 订单工具 + * @Author: wanggeng + * @Date: 2021/8/20 6:01 下午 + * @Version: 1.0 + */ +public class OrderUtil { + + private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + private static final AtomicInteger atomicInteger = new AtomicInteger(1000000); + + /** + * 创建不连续的订单号 + * + * @param no 数据中心编号 + * @return 唯一的、不连续订单号 + */ + public static synchronized String getUUIDOrder(String no) { + Integer uuidHashCode = UUID.randomUUID().toString().hashCode(); + if (uuidHashCode < 0) { + uuidHashCode = uuidHashCode * (-1); + } + String date = simpleDateFormat.format(new Date()); + return no + date + uuidHashCode; + } + + /** + * 获取同一秒钟 生成的订单号连续 + * + * @param no 数据中心编号 + * @return 同一秒内订单连续的编号 + */ + public static synchronized String getAtomicOrder(String no) { + atomicInteger.getAndIncrement(); + int i = atomicInteger.get(); + String date = simpleDateFormat.format(new Date()); + return no + date + i; + } + +}