From fd7b8fb7c89832c28a838b0449bbb8a392433ee2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 22 四月 2025 14:33:02 +0800 Subject: [PATCH] 将华为云短信替换成阿里云短信 --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 106 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java new file mode 100644 index 0000000..32309d1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java @@ -0,0 +1,106 @@ +package com.ruoyi.common.core.utils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * @Description 活动订单操作 + * @Author xiaochen + * @Date 2021/7/28 10:26 + */ +public class CodeGenerateUtils { + + /** + * @return + * @Description 获取商品编码 + * 商品编码规则:nanoTime(后5位)*5位随机数(10000~99999) + * @Author xiaochen + */ + public static String generateProductCode() { + long nanoPart = System.nanoTime() % 100000L; + if (nanoPart < 10000L) { + nanoPart += 10000L; + } + long randomPart = (long) (Math.random() * (90000) + 10000); + String code = "0" + String.valueOf((new BigDecimal(nanoPart).multiply(new BigDecimal(randomPart)))); + return code.substring(code.length() - 10); + } + + /** + * @param id: 用户id + * @return + * @Description 生成订单编号 + * 订单编号规则:(10位):(年末尾*月,取后2位)+(用户ID%3.33*日取整后2位)+(timestamp*10000以内随机数,取后6位) + * @Author xiaochen + */ + public static String generateOrderSn(long id) { + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + year = year % 10; + if (year == 0) year = 10; + int month = calendar.get(Calendar.MONTH) + 1; + int yearMonth = year * month; + String yearMonthPart = "0" + yearMonth; + yearMonthPart = yearMonthPart.substring(yearMonthPart.length() - 2); + + int day = calendar.get(Calendar.DAY_OF_MONTH); + int dayNum = (int) ((id % 3.33) * day); + String dayPart = "0" + dayNum; + dayPart = dayPart.substring(dayPart.length() - 2); + + String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); + timestampPart = timestampPart.replace(".", "").replace("E", ""); + timestampPart = timestampPart.substring(0, 6); + return yearMonthPart + dayPart + timestampPart; + } + + /** + * @return + * @Description 生成统一支付单号 规则:年(2)月(2)日(2)时(2)分(2)+timestamp*5位随机整数取后5位 + * @Author xiaochen + */ + public static String generateVolumeSn() { + Calendar calendar = Calendar.getInstance(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss"); + String dateTime = dateFormat.format(calendar.getTime()); + dateTime = dateTime.substring(2); + String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); + timestampPart = timestampPart.replace(".", "").replace("E", ""); + timestampPart = timestampPart.substring(0, 5); + return dateTime + timestampPart; + } + + public static void main(String[] args) { + for (long i = 0; i < 20; i++) { + //String timestampPart = ""+(Math.random() * 10000) * (System.currentTimeMillis()/10000); + //System.out.println(timestampPart); + //System.out.println(generateOrderSn(i)); + long l = System.currentTimeMillis() * Long.valueOf(CodeGenerateUtils.generateProductCode().substring(0, 5)); + System.out.println(String.valueOf(l).substring(0,10)); + } + + } + + /** + * @description id补0生成编号 + * @author jqs + * @date 2024/4/17 14:19 + * @param totalLength + * @param id + * @return String + */ + public static String toFillZeroCode(int totalLength, Long id) { + String idStr = id.toString(); + int length = idStr.length(); + if(totalLength <= length){ + return idStr; + } + int fillLength = totalLength - length; + StringBuilder idsbs = new StringBuilder(); + for (int i = 0; i < fillLength; i++) { + idsbs.append("0"); + } + return idsbs.append(idStr).toString(); + } +} -- Gitblit v1.7.1