From 2e0b29c6733cff76c834af43d2a5bdc6c7a404d3 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Mon, 13 Mar 2023 15:27:41 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=94=9F=E6=88=90=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E5=8F=B7=EF=BC=8C=E7=94=9F=E6=88=90=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=BC=96=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsowell/service/OrderService.java | 4 ++- .../com/jsowell/common/util/id/IdUtils.java | 30 ++++++++++++------- .../jsowell/pile/domain/OrderBasicInfo.java | 5 ++++ .../mapper/pile/OrderBasicInfoMapper.xml | 6 ++++ 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index c39894668..e5eead8a8 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -330,10 +330,12 @@ public class OrderService { * @return */ private String saveOrder2Database(GenerateOrderDTO dto) { - String orderCode = IdUtils.generateTransactionCode(dto.getPileSn(), dto.getConnectorCode()); + String orderCode = IdUtils.getOrderCode(); + String transactionCode = IdUtils.generateTransactionCode(dto.getPileSn(), dto.getConnectorCode()); // 订单基本信息 OrderBasicInfo orderBasicInfo = OrderBasicInfo.builder() .orderCode(orderCode) + .transactionCode(transactionCode) .orderStatus(OrderStatusEnum.NOT_START.getValue()) .memberId(dto.getMemberId()) .stationId(dto.getPileConnector().getStationId()) diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/id/IdUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/id/IdUtils.java index 508f6b23c..9b25d3cf0 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/id/IdUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/id/IdUtils.java @@ -61,7 +61,7 @@ public class IdUtils { * 生成交易流水号 * 生成规则为 格式桩号(7bytes) +枪号(1byte) +年月日时分秒(6bytes) +自 增序号(2bytes); * @param pileConnectorCode 为已经拼好的充电桩枪口号 例如:3201060001923601 - * @return 交易流水号 例如:32010600019236012001061803423060 11291834338312 + * @return 交易流水号 例如:32010600019236012001061803423060 88000000000001012211301501294274 */ public static String generateTransactionCode(String pileConnectorCode) { String timeNow = DateUtils.dateTimeNow(DateUtils.YYMMDDHHMMSS); @@ -72,19 +72,29 @@ public class IdUtils { public static void main(String[] args) { Set set = Sets.newHashSet(); - for (int i = 0; i < 100000; i++) { - // String s = System.currentTimeMillis() + RandomUtil.getRandomNumber(6); - String timeNow = DateUtils.dateTimeNow(DateUtils.YYMMDDHHMMSS); - //随机生成一个四位整数 - // String randomNumber = RandomUtil.getRandomNumber(4); - // String id = timeNow + randomNumber; - String snowflakeId = SnowflakeIdWorker.getSnowflakeId(); - set.add(snowflakeId); - System.out.println(snowflakeId); + for (int i = 0; i < 1000000; i++) { + String id = getOrderCode(); + set.add(id); + System.out.println(id); } System.out.println("set size = " + set.size()); } + /** + * 生成12位orderCode + */ + public static String getOrderCode() { + long id = Long.parseLong(SnowflakeIdWorker.getSnowflakeId()); + StringBuilder sb = new StringBuilder(id + ""); + StringBuilder reverse = sb.reverse();//将id翻转:我们发现id很长,且高位很长部分是一样的数 + id = new Long(reverse.toString()) / 1000;//切去部分长度 + while (id > 100000000000L) { + id /= 10; + } + // Integer num = Integer.parseInt(id + ""); + return "C" + id; + } + /** * 生成八位会员id */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java index 01121bfe0..0401224d0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java @@ -38,6 +38,11 @@ public class OrderBasicInfo extends BaseEntity { @Excel(name = "订单编号") private String orderCode; + /** + * 交易流水号 + */ + private String transactionCode; + /** * 订单状态(0-待支付;1-充电中;2-待结算;3-待补缴;4-异常;5-可疑;6-订单完成) */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 8ad533b34..6365d9c0d 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -265,6 +265,9 @@ order_code, + + transaction_code, + order_status, @@ -342,6 +345,9 @@ #{orderCode}, + + #{transactionCode}, + #{orderStatus},