1.用户编号加大随机数
public enum OrderNo {
SERVICE("YY"), //预约服务
SELFISH_REPAIR("JJ"), //居家维修
PUBLIC_REPAIR("GG"), //公共维修
COMPLAIN("TS"), //投诉
QUERY("GX"), //公共询问
PRAISE("BY"), //表扬
SUGGEST("JY"), //建议
ORDER_RECORDS("JL"), //工作记录
PAYMENT_ENQUIRY("JF"), //缴费
PINGAN("PINGAN"),//平安支付测试
READY_FEE("YJ"); //预交费
private String prefix;
OrderNo(String value) {
this.prefix = value;
}
public String generate() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
long Temp; //不能设定为int,必须设定为long
//产生10000000到20000000的随机数
Temp=Math.round(Math.random()*10000000+20000000);
return prefix + dateFormat.format(new Date())+Temp;
}
}
//同一批支付的项目交易号一致
String tranIdNo = OrderNo.PAYMENT_ENQUIRY.generate()+userId;
这种订单号,前缀+年月日时分秒+随机数+用户Id
可解决订单重复问题。(随机数足够大)
2.就是JAVA类库中可以使用UUID方法,来生成唯一的数字的一串数字编号,也就是订单号。然后再加上一些前缀什么的也可以作为订单号来用。
String token=UUID.randomUUID().toString().replace("-", "");
至于其他的,你们有什么好的方法吗?欢迎留言