虚假快递单号生成器,真实快递单号生成器

##RedisTemplate单号生成器

描述

因为redis是线程安全的,所以可以用redis作为单号生成器

代码如下

/**

@author gxp

@description 单号生成器

@date 2018/8/31 10:45
*/
public class OrderNoUtil {

private static RedisTemplate<String, Object> redisTemplate;

static {
if null == redisTemplate) {
redisTemplate = SpringContextExt.getBean“redisTemplate”, RedisTemplate.class);
}
}

/**

单号长度
*/
private static int NO_LENGTH = 3;

/**

获取单号 带日期 每天重置 key+20200821001@param key@return
*/
public static String createAutoIDString key) {
//加上时间戳 如果不需要
String datetime = new SimpleDateFormat“yyyyMMdd”).formatnew Date));
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey + datetime, 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
String code = MessageFormat.format”{0}{1}”, key + datetime,value);
//设置三天过期
redisTemplate.expirekey + datetime, 3, TimeUnit.DAYS);
return code;
}

/**

永远不过期 20200821002@param key@return
*/
public static String createAutoIDNoExpireString key) {
//加上时间戳 如果不需要
String datetime = new SimpleDateFormat“yyyyMMdd”).formatnew Date));
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey + datetime, 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
String code = MessageFormat.format”{0}{1}”, key + datetime,value);
return code;
}

/**

获取单号 不带日期 001@param key@return
*/
public static String createAutoCodeString key) {
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey , 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
return MessageFormat.format”{0}{1}”, key ,value);

}

/**

获取单号 不带日期 不带key 004@param key@return
*/
public static String createAutoCodeNoKeyString key) {
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey , 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
return value;

}

/**

获取单号 带日期 不带年 每天重置 key+20200821001@param key@return
*/
public static String createAutoNotYearsString key) {
//加上时间戳 如果不需要
String datetime = new SimpleDateFormat“MMdd”).formatnew Date));
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey + datetime, 1);
/168飞艇6种不亏钱的方法查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey , 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
return MessageFormat.format”{0}{1}”, key ,value);

}

/**

获取单号 不带日期 不带key 004@param key@return
*/
public static String createAutoCodeNoKeyString key) {
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey , 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
return value;

}

/**

获取单号 带日期 不带年 每天重置 key+20200821001@param key@return
*/
public static String createAutoNotYearsString key) {
//加上时间戳 如果不需要
String datetime = new SimpleDateFormat“MMdd”).formatnew Date));
//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
Long autoID = redisTemplate.opsForValue).incrementkey + datetime, 1);
//这里是 4 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为 4 ,不够的话在左边补 0 ,比如 110 会变成 0110
String value = StringUtils.leftPadString.valueOfautoID), NO_LENGTH, “0”);
//然后把 时间戳和优化后的 ID 拼接
String code = MessageFormat.format”{0}{1}”, key + datetime,value);
//设置三天过期
redisTemplate.expirekey + datetime, 3, TimeUnit.DAYS);
return code;
}

}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注