public String getId() {String key = "finance:funs:code";Long incr = getIncr(key);if (incr == 0) {incr = getIncr(key);//从0001开始}DecimalFormat df = new DecimalFormat("0000");//四位序列号String format = df.format(incr);return format;}public Long getIncr(String key) {RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());Long increment = entityIdCounter.getAndIncrement();Long expiresTime = getSecondsNextEarlyMorning();redisTemplate.opsForValue().set(key, "pay", expiresTime, TimeUnit.SECONDS);return increment;}/*** 判断当前时间距离第二天凌晨的秒数** @return 返回值单位为[s:秒]*/public Long getSecondsNextEarlyMorning() {Calendar cal = Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.MILLISECOND, 0);return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;}
key自己替换
redisTemplate.opsForValue().set(key, "pay", expiresTime, TimeUnit.SECONDS);中的pay自定义