This commit is contained in:
2024-11-28 15:10:09 +08:00
commit 901691aaea
90 changed files with 4919 additions and 0 deletions

View File

@ -0,0 +1,49 @@
package com.ycwl.basic.model.snowFlake;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Created by liuhongguang on 2019年10月27日
* @Description
*/
@NoArgsConstructor
@AllArgsConstructor
@Data
public class UniqueId implements Serializable {
/**
* 0 + 41 + 5 + 5 + 12
* 固定 + 时间戳 + 工作机器ID + 数据中心ID + 序列号
*/
private static final long serialVersionUID = 8632670752020316524L;
/**
* 工作机器ID、数据中心ID、序列号、上次生成ID的时间戳
*/
@ApiModelProperty(value = "机器ID")
private long machineId;
@ApiModelProperty(value = "数据中心ID")
private long datacenterId;
@ApiModelProperty(value = "毫秒内序列")
private long sequence;
@ApiModelProperty(value = "时间戳")
private long timestamp;
@Override
public String toString() {
return "UniqueIdRespVo{" +
"服务机器ID=" + machineId +
", 数据中心ID=" + datacenterId +
", 毫秒内的序列=" + sequence +
", 生成时间与预设时间戳间隔=" + timestamp +
'}';
}
}

View File

@ -0,0 +1,85 @@
package com.ycwl.basic.model.snowFlake;
import io.swagger.annotations.ApiModelProperty;
public class UniqueIdMetaData {
/**
* 取当前系统启动时间为参考起始时间,
* 取1995-04-01为参考日
*/
// public static final long START_TIME = LocalDateTime.now().toInstant(ZoneOffset.UTC).toEpochMilli();
public static final long START_TIME = 796665600000L;
/**
* 机器ID所占位数
*/
@ApiModelProperty(value = "机器位数")
public static final long MACHINE_ID_BITS = 5L;
/**
* 机器ID最大值31,0-31
*/
@ApiModelProperty(value = "机器ID最大")
public static final long MAX_MACHINE_ID = ~(-1L << MACHINE_ID_BITS);
/**
* 数据中心ID所占位数
*/
@ApiModelProperty(value = "数据中心ID所占位数")
public static final long DATACENTER_ID_BITS = 5L;
/**
* 数据中心ID最大值31,0-31
*/
@ApiModelProperty(value = "数据中心ID最大值")
public static final long MAX_DATACENTER_ID = ~(-1L << MACHINE_ID_BITS);
/**
* Sequence所占位数
*/
@ApiModelProperty(value = "序列所占位数")
public static final long SEQUENCE_BITS = 12L;
/**
* 机器ID偏移量12
*/
@ApiModelProperty(value = "机器ID偏移量")
public static final long MACHINE_SHIFT_BITS = SEQUENCE_BITS;
/**
* 数据中心ID偏移量12+5=17
*/
@ApiModelProperty(value = "数据中心ID偏移量")
public static final long DATACENTER_SHIFT_BITS = SEQUENCE_BITS + MACHINE_ID_BITS;
/**
* 时间戳的偏移量12+5+5=22
*/
@ApiModelProperty(value = "时间戳偏移量")
public static final long TIMESTAMP_LEFT_SHIFT_BITS = SEQUENCE_BITS + MACHINE_ID_BITS + DATACENTER_ID_BITS;
/**
* Sequence掩码4095
*/
@ApiModelProperty(value = "序列掩码")
public static final long SEQUENCE_MASK = ~(-1L << SEQUENCE_BITS);
/**
* 机器ID掩码1023
*/
@ApiModelProperty(value = "机器ID掩码")
public static final long MACHINE_MASK = ~(-1L << MACHINE_ID_BITS);
/**
* 数据中心掩码1023
*/
@ApiModelProperty(value = "数据中心掩码")
public static final long DATACENTER_MASK = ~(-1L << MACHINE_ID_BITS);
/**
* 时间戳掩码2的41次方减1
*/
@ApiModelProperty(value = "时间戳掩码")
public static final long TIMESTAMP_MASK = ~(-1L << 41L);
}