update 生成交易流水号,生成订单编号

This commit is contained in:
2023-03-13 15:27:41 +08:00
parent e89a570d25
commit 2e0b29c673
4 changed files with 34 additions and 11 deletions

View File

@@ -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<String> 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
*/