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.AppRuntime;
|
||||||
import cn.axzo.foundation.web.support.utils.KeyBuilder;
|
import cn.axzo.foundation.web.support.utils.KeyBuilder;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@ -17,7 +18,8 @@ public class RedisIdWorker {
|
|||||||
|
|
||||||
private static final long BEGIN_TIMESTAMP = 1640995200L;
|
private static final long BEGIN_TIMESTAMP = 1640995200L;
|
||||||
private static final long COUNT_BITS = 32;
|
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 RedisTemplate redisTemplate;
|
||||||
private AppRuntime appRuntime;
|
private AppRuntime appRuntime;
|
||||||
@ -50,8 +52,21 @@ public class RedisIdWorker {
|
|||||||
* 根据时间+redis产生当天自增id
|
* 根据时间+redis产生当天自增id
|
||||||
*/
|
*/
|
||||||
public long getDailyNextId(String prefix, LocalDate date) {
|
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);
|
Long count = redisTemplate.opsForValue().increment(key);
|
||||||
return count;
|
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