package com.fdkankan.ucenter.service.impl; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.redis.util.RedisUtil; import com.fdkankan.ucenter.common.RedisKeyUtil; import com.fdkankan.ucenter.common.constants.ResultCodeMsg; import com.fdkankan.ucenter.entity.CameraType; import com.fdkankan.ucenter.entity.Scene3dNum; import com.fdkankan.ucenter.mapper.IScene3dNumMapper; import com.fdkankan.ucenter.service.ICameraTypeService; import com.fdkankan.ucenter.service.IScene3dNumService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; /** *

* 场景编码表 服务实现类 *

* * @author * @since 2022-07-12 */ @Service @Slf4j public class Scene3dNumServiceImpl extends ServiceImpl implements IScene3dNumService { @Autowired RedisUtil redisUtil; @Autowired ICameraTypeService cameraTypeService; @Override public String generateSceneNum(Integer cameraType) { String sceneNum = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS); if(StringUtils.isEmpty(sceneNum)){ throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400001, ResultCodeMsg.FAILURE_MSG_400001); } if(cameraType != null){ CameraType cameraTypeEntity = cameraTypeService.getByCameraType(cameraType); if(cameraTypeEntity == null ){ log.info("generateSceneNum-error:cameraType{}",cameraType); throw new BusinessException(-1,"相机类型不存在"); } return cameraTypeEntity.getScenePrefix() + sceneNum; } return sceneNum; } @Override public String generateSceneNumByOldNum(String oldNum) { String sceneNum = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS); if(StringUtils.isEmpty(sceneNum)){ throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400001, ResultCodeMsg.FAILURE_MSG_400001); } if(StringUtils.isEmpty(oldNum)){ throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400002, ResultCodeMsg.FAILURE_MSG_400002); } if(!oldNum.contains("-")){ throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400002, ResultCodeMsg.FAILURE_MSG_400002); } String[] split = oldNum.split("-"); return split[0] +"-"+ sceneNum; } }