SequenceServiceImpl.java 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. package com.zhiqiyun.open.service.impl;
  2. import com.zhiqiyun.open.mapper.SequenceMapper;
  3. import com.zhiqiyun.open.models.Sequence;
  4. import com.zhiqiyun.open.service.SequenceService;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.apache.commons.lang3.time.DateFormatUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import java.util.Date;
  10. import java.util.Random;
  11. @Slf4j
  12. @Service
  13. public class SequenceServiceImpl implements SequenceService {
  14. @Autowired
  15. private SequenceMapper sequenceMapper;
  16. private final Random random = new Random();
  17. @Override
  18. public Long nextId() {
  19. Sequence sequence = new Sequence();
  20. Integer saltRandom = random.nextInt(9);
  21. sequence.setSaltRandom(saltRandom);
  22. sequence.setCreatedTime(new Date());
  23. this.sequenceMapper.generateNextId(sequence);
  24. String idString = String.format("%s%05d%s", DateFormatUtils.format(sequence.getCreatedTime(), "yyMMdd"), sequence.getId(), saltRandom);
  25. return Long.valueOf(idString);
  26. }
  27. }