package com.fdkankan.tools.service.impl;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.tools.entity.TbSceneNum;
import com.fdkankan.tools.generate.GenerateZfbCode;
import com.fdkankan.tools.mapper.ITbSceneNumMapper;
import com.fdkankan.tools.service.ITbSceneNumService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2023-04-19
*/
@Service
public class TbSceneNumServiceImpl extends ServiceImpl implements ITbSceneNumService {
public static final Logger log = LoggerFactory.getLogger("timeLogger");
@Override
public void genDb1(Integer count) {
Long noUsedCount = this.checkGen();
if(noUsedCount >10000){
log.info("task-genOld--未使用的场景码数大于1W,退出生成");
return;
}
HashSet strings = GenerateZfbCode.generateOldZfbCode(count);
for (String code : strings) {
List dbCodes = this.getByCode(code);
if(dbCodes.size() >0){
continue;
}
TbSceneNum tbSceneNum = new TbSceneNum();
tbSceneNum.setUsed(0);
tbSceneNum.setCreateTime(new Date());
tbSceneNum.setCode(code);
this.save(tbSceneNum);
}
log.info("task-genOld--生成数量:{}",strings.size());
}
private Long checkGen() {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbSceneNum::getUsed,0);
return this.count(wrapper);
}
private List getByCode(String code) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbSceneNum::getCode,code);
return this.list(wrapper);
}
}