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自定義