package cn.lili.common.utils;
|
|
import cn.hutool.core.lang.Snowflake;
|
import cn.hutool.core.util.IdUtil;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.util.Date;
|
|
/**
|
* 雪花分布式id获取
|
*
|
* @author Chopper
|
*/
|
@Slf4j
|
public class SnowFlake {
|
|
// /**
|
// * 机器id
|
// */
|
// private static long workerId = 0L;
|
// /**
|
// * 机房id
|
// */
|
// public static long datacenterId = 0L;
|
|
private static Snowflake snowflake;
|
|
/**
|
* 初始化配置
|
*
|
* @param workerId
|
* @param datacenterId
|
*/
|
public static void initialize(long workerId, long datacenterId) {
|
snowflake = IdUtil.getSnowflake(workerId, datacenterId);
|
}
|
|
public static long getId() {
|
return snowflake.nextId();
|
}
|
|
/**
|
* 生成字符,带有前缀
|
*
|
* @param prefix
|
* @return
|
*/
|
public static String createStr(String prefix) {
|
return prefix + DateUtil.toString(new Date(), "yyyyMMdd") + SnowFlake.getId();
|
}
|
|
public static String getIdStr() {
|
return snowflake.nextId() + "";
|
}
|
}
|