工具类|Java生成商城常用的核销码,长度12位~

对于一些商城类项目而言,有一些需要核销码的地方,其实核销码有很多种生成方式,今天用一个比较简单的方式生成随机核销码,7位的随机数,如果是小商城,在一天内基本上不会有重复的,如果想校验重复的,可以将每次生成的核销码放到缓存里面,然后新生成的核销码和缓存中的核销码进行校验,重复的话再重新生成一个即可。
思路其实很简单,通过两位数的年,例如2021年取21,三位数的天,例如1月1日是一年的第一天,可以取成001,然后再加上随机数(长度可以自己定义)

上代码:

package com.fengchen.verifycode;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 生成核销码的方法,生成规格为:两位数年 + 当前是今年第几天 + 7位随机数
 * 如果生成的核销码较多,可以通过缓存或者redis进行当天的核销码是否重复判断
 * 
 * @author dafei
 *
 */
public class VerifyCodeGen {
     

	/**
	 * 生成订单商品核销码
	 * 
	 * @return
	 */
	public static String genVerifyCode() {
     
		String year = new SimpleDateFormat("yy").format(new Date());
		String day = String.format("%tj", new Date());
		double random = Math.random() * 10000000;
		while (random < 1000000) {
     
			random = Math.random() * 10000000;
		}
		int intRandom = Double.valueOf(random).intValue();
		String verifyCode = year + day + intRandom;
		return verifyCode;
	}
	
	public static void main(String[] args) {
     
		System.out.println(genVerifyCode());
	}

}

代码中有一句:
String.format("%tj", new Date());
是获取现在是今年的第几天。长度是3位。

推荐下大飞做的一个Java技术类公众号“Java实战宝典”,主要是收集一些日常工作中常用的工具类,一些实战项目的教学及一些疑难问题整理。
工具类|Java生成商城常用的核销码,长度12位~_第1张图片
一个干货满满的公众号,后面会增加越来越多的实例教程。

你可能感兴趣的:(工具类,java)