@Override public String nextUniqueId(String compositeKey, int step, int length) throws Exception { if (StringUtils.isEmpty(compositeKey)) { throw new AquariusException("Composite key is null or empty"); } List<String> keys = new ArrayList<String>(); keys.add(compositeKey); RedisTemplate<String, Object> redisTemplate = redisHandler.getRedisTemplate(); List<Object> result = redisTemplate.execute(redisScript, keys, step); Object value1 = result.get(0); Object value2 = result.get(1); Object value3 = result.get(2); Date date = new Date(Long.parseLong(String.valueOf(value1)) * 1000 + Long.parseLong(String.valueOf(value2)) / 1000); StringBuilder builder = new StringBuilder(); builder.append(DateUtil.formatDate(date, DATE_FORMAT)); builder.append(StringUtil.formatString((long) value3, length, DECIMAL_FORMAT)); String nextUniqueId = builder.toString(); if (frequentLogPrint) { LOG.info("Next unique id is {} for key={}", nextUniqueId, compositeKey); } return nextUniqueId; }
@Override public String nextUniqueId(String compositeKey, int step, int length) throws Exception { if (StringUtils.isEmpty(compositeKey)) { throw new AquariusException("Composite key is null or empty"); } List<String> keys = new ArrayList<String>(); keys.add(compositeKey); RedisTemplate<String, Object> redisTemplate = redisHandler.getRedisTemplate(); List<Object> result = redisTemplate.execute(redisScript, keys, step); Object value1 = result.get(0); Object value2 = result.get(1); Object value3 = result.get(2); Date date = new Date(Long.parseLong(String.valueOf(value1)) * 1000 + Long.parseLong(String.valueOf(value2)) / 1000); StringBuilder builder = new StringBuilder(); builder.append(DateUtil.formatDate(date, DATE_FORMAT)); builder.append(StringUtil.formatString((long) value3, length, DECIMAL_FORMAT)); String nextUniqueId = builder.toString(); if (frequentLogPrint) { LOG.info("Next unique id is {} for key={}", nextUniqueId, compositeKey); } return nextUniqueId; }