TbSceneNumServiceImpl.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.fdkankan.tools.service.impl;
  2. import java.util.Date;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.fdkankan.tools.entity.TbSceneNum;
  5. import com.fdkankan.tools.generate.GenerateZfbCode;
  6. import com.fdkankan.tools.mapper.ITbSceneNumMapper;
  7. import com.fdkankan.tools.service.ITbSceneNumService;
  8. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.stereotype.Service;
  12. import java.util.HashSet;
  13. import java.util.List;
  14. /**
  15. * <p>
  16. * 服务实现类
  17. * </p>
  18. *
  19. * @author
  20. * @since 2023-04-19
  21. */
  22. @Service
  23. public class TbSceneNumServiceImpl extends ServiceImpl<ITbSceneNumMapper, TbSceneNum> implements ITbSceneNumService {
  24. public static final Logger log = LoggerFactory.getLogger("timeLogger");
  25. @Override
  26. public void genDb1(Integer count) {
  27. Long noUsedCount = this.checkGen();
  28. if(noUsedCount >10000){
  29. log.info("task-genOld--未使用的场景码数大于1W,退出生成");
  30. return;
  31. }
  32. HashSet<String> strings = GenerateZfbCode.generateOldZfbCode(count);
  33. for (String code : strings) {
  34. List<TbSceneNum> dbCodes = this.getByCode(code);
  35. if(dbCodes.size() >0){
  36. continue;
  37. }
  38. TbSceneNum tbSceneNum = new TbSceneNum();
  39. tbSceneNum.setUsed(0);
  40. tbSceneNum.setCreateTime(new Date());
  41. tbSceneNum.setCode(code);
  42. this.save(tbSceneNum);
  43. }
  44. log.info("task-genOld--生成数量:{}",strings.size());
  45. }
  46. private Long checkGen() {
  47. LambdaQueryWrapper<TbSceneNum> wrapper = new LambdaQueryWrapper<>();
  48. wrapper.eq(TbSceneNum::getUsed,0);
  49. return this.count(wrapper);
  50. }
  51. private List<TbSceneNum> getByCode(String code) {
  52. LambdaQueryWrapper<TbSceneNum> wrapper = new LambdaQueryWrapper<>();
  53. wrapper.eq(TbSceneNum::getCode,code);
  54. return this.list(wrapper);
  55. }
  56. }