12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package com.webchat.common.service;
- import com.webchat.common.util.DateUtils;
- import com.webchat.common.util.SnowflakeIdGenerator;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- import static com.webchat.common.util.DateUtils.YYYYMMDD;
- @Component
- public class SnowflakeIdGeneratorService {
- @Autowired
- private RedisService redisService;
- /**
- * 基于雪花算法分布下唯一id生成器
- *
- * @return
- */
- public String generateId() {
- SnowflakeIdGenerator snowflakeIdGenerator = new SnowflakeIdGenerator(incrementId());
- return snowflakeIdGenerator.nextId() + "";
- }
- /**
- * 生成带前缀的id
- *
- * @param prefix
- * @return
- */
- public String generateId(String prefix) {
- return prefix + "-" + this.generateId();
- }
- private Long incrementId() {
- return redisService.increx("SnowflakeId", 1L);
- }
- public static void main(String[] args) {
- SnowflakeIdGenerator snowflakeIdGenerator = new SnowflakeIdGenerator(1);
- String prefix = DateUtils.getDate2String(YYYYMMDD, new Date());
- System.out.println("orderId : " + prefix + snowflakeIdGenerator.nextId());
- }
- }
|