通过redis自增生成订单编号
private static String REDIS_DATABASE = "orderDataBase";
private static String REDIS_KEY_ORDER_ID = "payOrderId";
/**
* 生成18位订单编号:8位日期+2位平台号码+2位支付方式+6位以上自增id
*/
private String createOrderNum(String sourceType,String payType) {
StringBuilder sb = new StringBuilder();
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
String key = REDIS_DATABASE+":"+ REDIS_KEY_ORDER_ID + date;
Long increment = redisService.incr(key, 1);
sb.append(date);
sb.append(String.format("%02d", sourceType));
sb.append(String.format("%02d", payType));
String incrementStr = increment.toString();
if (incrementStr.length() <= 6) {
sb.append(String.format("%06d", increment));
} else {
sb.append(incrementStr);
}
return sb.toString();
}