feat: RedisIdWorker增加方法
原因
RedisIdWorker增加方法
修改
RedisIdWorker增加方法
This commit is contained in:
parent
de18b4af3f
commit
9af148d838
@ -3,6 +3,7 @@ package cn.axzo.foundation.redis.support;
|
||||
import cn.axzo.foundation.web.support.AppRuntime;
|
||||
import cn.axzo.foundation.web.support.utils.KeyBuilder;
|
||||
import lombok.Builder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
|
||||
import java.time.LocalDate;
|
||||
@ -17,7 +18,8 @@ public class RedisIdWorker {
|
||||
|
||||
private static final long BEGIN_TIMESTAMP = 1640995200L;
|
||||
private static final long COUNT_BITS = 32;
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
|
||||
private RedisTemplate redisTemplate;
|
||||
private AppRuntime appRuntime;
|
||||
@ -50,8 +52,21 @@ public class RedisIdWorker {
|
||||
* 根据时间+redis产生当天自增id
|
||||
*/
|
||||
public long getDailyNextId(String prefix, LocalDate date) {
|
||||
String key = KeyBuilder.build(appRuntime, prefix, "icr", DATE_TIME_FORMATTER.format(date));
|
||||
String key = KeyBuilder.build(appRuntime, prefix, "icr", DATE_FORMATTER.format(date));
|
||||
Long count = redisTemplate.opsForValue().increment(key);
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回 prefix+yyyyMMddHHmmss+递增id
|
||||
*
|
||||
* @param prefix
|
||||
* @param padSize
|
||||
* @return
|
||||
*/
|
||||
public String getDailyNo(String prefix, int padSize) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
long dailyNextId = getDailyNextId(prefix, now.toLocalDate());
|
||||
return prefix + DATE_TIME_FORMATTER.format(now) + StringUtils.leftPad(String.valueOf(dailyNextId), padSize, "0");
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user