java - 怎么批量生成优惠券的编码
伊谢尔伦
伊谢尔伦 2017-04-17 17:55:26
0
4
1141

1.后台管理系统中批量生成优惠券的编码
2.优惠券编码不能太长,否则用户领取优惠券时不方便输入编码
3.优惠券编码也不能太短,同时编码还不能有规律,否则会被猜出来
4.所有的优惠券编码不能重复

各位大神有不有什么好的方案

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
洪涛
  1. 淘宝订单号

2016-04-28 订单号: 1846204025999235

2016-04-28 订单号: 1846669615349235

2016-04-27 订单号: 1846164650079235

2016-04-27 订单号: 1845531842409235

2016-04-26 订单号: 1840290749419235

2012-07-29 订单号: 148557304839235

优惠券的码命名的几种规则:
1、不重复。
2、安全性。
你的订单编号不能透露你公司的真实运营信息,比如你的订单就是流水号的话,那么别人就可以从订单号推测出你公司的整体运营概括了。所以订单编码必须是除了你们公司少部分人外,其他人基本看不懂的。参考京东和淘宝的编码规则,基本别人是搞不清是什么意思的。其实最好的防泄漏编码规则就是在编码中不要加入任何和公司运营的数据。
3、不能使用大规模随机码。
很多人分析订单编码规则的时候,第一个念头肯定是不重复唯一性,那么第二个念头可能就是安全性,那么同时满足前两者的第三个念头就是随机码了。因为大规模的随机码随机生成,因为本身就没有意义所以无所谓泄密了。但是事实上这种编码规则在实现上会有很大问题的。
随机码满足第二点安全性要求,为了满足第一点不重复特性,那就得在生成随机码的时候对比历史数据是否有重复,如果你的订单数量到达了十万次,你每次生成订单编码时就得对比十万条历史数据,你可想而知会造成什么巨大问题。
但是难道随机码就不能在编码中使用了吗?小规模的随机码是可以使用的,比如2~3位,这种随机码一般都是和流水号等结合使用,主要作用是为了隐藏流水号的真实数据而进行使用的。
4、防止并发。
这条规则主要针对编码中有时间的设定。
5、控制位数。
这点很好理解,订单号的作用就是便于查询。
一般正常使用场景应该是订单出异状或者退货的时候,用户将订单号报给客服,由客服进行查询。
所以一般在10~15位为好。
京东10位,淘宝15位。

阿神

生成16位的UUID

大家讲道理


目前是这样做的,但是总感觉不大方便,这个优惠券是要打印出来的,可能需要用户手动输入@ jiangxiao

洪涛

https://www.zhihu.com/question/19805896


时间 + 用户id + 优惠券所属商品/店铺id + 随机码

敏感信息可以md5或者其他算法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板