上周花了一周和团队做出了礼品卡功能,我主要负责礼品卡生成和消费部分.
生成的代码仅供参考,隐藏机密部分
public List<GiftCardInfo> issue() {
LocalDateTime today = LocalDateTime.now();
String dateStr = String.valueOf(today.getYear()) + String.format("%02d", today.getMonth().getValue())+ String.valueOf(today.getDayOfMonth());
int incrementNum = /*计数器服务*/
List<GiftCardInfo> giftcardInfos = new ArrayList<>();
String saveCardNumber = null;
for (int i = 0; i < count * MAX_RETRY_TIMES; i++) {
if (incrementNum > 999999) { log.error("一日内不能生成大于100万张礼品卡"); }
//卡号和密码的生成方式
String serialNumber = RandomUtils.randomStr(16).toUpperCase();
String cardNumber = "PN" + dateStr + String.format("%06d", incrementNum);
//如果不是卡号冲突,那重复利用这个卡号
if (saveCardNumber != null &&