자바 주문 번호 생 성(보안 은 중복 되 지 않 습 니 다)
package com.cdu.utils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
* , 32 ,
* @ 1 +17 +14 ( id & )
* Date:2017 9 8 10:05:19
* @author jiwengjian
*/
public class OrderCodeFactory {
/** */
private static final String ORDER_CODE = "1";
/** */
private static final String RETURN_ORDER = "2";
/** */
private static final String REFUND_ORDER = "3";
/** */
private static final String AGAIN_ORDER = "4";
/** */
private static final int[] r = new int[]{7, 9, 6, 2, 8 , 1, 3, 0, 5, 4};
/** id */
private static final int maxLength = 14;
/**
* id +
*/
private static String toCode(Long id) {
String idStr = id.toString();
StringBuilder idsbs = new StringBuilder();
for (int i = idStr.length() - 1 ; i >= 0; i--) {
idsbs.append(r[idStr.charAt(i)-'0']);
}
return idsbs.append(getRandom(maxLength - idStr.length())).toString();
}
/**
*
*/
private static String getDateTime(){
DateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
return sdf.format(new Date());
}
/**
*
* @param n
*/
private static long getRandom(long n) {
long min = 1,max = 9;
for (int i = 1; i < n; i++) {
min *= 10;
max *= 10;
}
long rangeLong = (((long) (new Random().nextDouble() * (max - min)))) + min ;
return rangeLong;
}
/**
*
* @param userId
*/
private static synchronized String getCode(Long userId){
userId = userId == null ? 10000 : userId;
return getDateTime() + toCode(userId);
}
/**
*
* @param userId
*/
public static String getOrderCode(Long userId){
return ORDER_CODE + getCode(userId);
}
/**
*
* @param userId
*/
public static String getReturnCode(Long userId){
return RETURN_ORDER + getCode(userId);
}
/**
*
* @param userId
*/
public static String getRefundCode(Long userId){
return REFUND_ORDER + getCode(userId);
}
/**
*
* @param userId
*/
public static String getAgainCode(Long userId){
return AGAIN_ORDER + getCode(userId);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 다 중 프로 세 스 병행 프로 그래 밍셸 다 중 프로 세 스 병행 프로 그래 밍 셸 에서 다 중 프로 세 스 를 사용 하여 병행 처리 하 는 것 은 매우 편리 합 니 다. 만약 에 하나의 정시 작업 이 동시에 ping 호스트 ip 목록 이 라면 대상 기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.