package com.ruoyi.order.util;
|
|
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.poi.ss.usermodel.DateUtil;
|
|
import java.security.SecureRandom;
|
import java.util.Date;
|
import java.util.Random;
|
|
/**
|
* @author jqs34
|
* @ClassName CodeFactoryUtil
|
* @description: TODO
|
* @date 2023年02月13日
|
* @version: 1.0
|
*/
|
public class CodeFactoryUtil {
|
|
/**
|
* APP用户编码
|
*/
|
private static final String APP_USER_PREFIX = "HRT_M";
|
|
/**
|
* 商户编号
|
*/
|
private static final String SHOP_PREFIX = "HRT_S";
|
|
/**
|
* 商户订单前缀
|
*/
|
private static final String ORDER_PREFIX = "SC";
|
|
/**
|
* 退款订单前缀
|
*/
|
private static final String ORDER_REFUND_PREFIX = "RO";
|
|
/**
|
* 用户id和随机数总长度
|
*/
|
|
private static final int maxLength = 4;
|
|
/**
|
* 更具id进行加密+加随机数组成固定长度编码
|
*/
|
|
public static void main(String[] args) {
|
Long orderId = 1L;
|
String userNo = getShopNo(orderId);
|
System.out.println(userNo);
|
}
|
|
/**
|
* 获取商户编号
|
*
|
* @param shopId
|
* @return
|
*/
|
public static String getShopNo(Long shopId) {
|
String prefix = SHOP_PREFIX;
|
return toFillZeroCode(prefix, maxLength, shopId);
|
}
|
|
public static String getShopOrderNo() {
|
String orderNo;
|
String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd");
|
String suffixNumber = "0001";
|
orderNo = ORDER_PREFIX + timeTemp + suffixNumber;
|
return orderNo;
|
}
|
|
/**
|
* 0补位
|
*
|
* @param prefix
|
* @param totalLength
|
* @param id
|
* @return
|
*/
|
private static String toFillZeroCode(String prefix, int totalLength, Long id) {
|
String idStr = id.toString();
|
int length = idStr.length();
|
|
int fillLength = totalLength - length;
|
StringBuilder idsbs = new StringBuilder(prefix);
|
for (int i = 0; i < fillLength; i++) {
|
idsbs.append("0");
|
}
|
return idsbs.append(idStr).toString();
|
}
|
|
/**
|
* 随机6位数生成
|
*/
|
public static String getRandStr(int num) {
|
// 默认6位
|
num = num != 0 ? num : 6;
|
Random r = new SecureRandom();
|
StringBuffer str = new StringBuffer();
|
int i = 0;
|
while (i < num) {
|
str.append(r.nextInt(10));
|
i++;
|
}
|
return str.toString();
|
}
|
}
|