package com.fdkankan.contro.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.common.constant.ErrorCode;
import com.fdkankan.contro.entity.ScenePlus;
import com.fdkankan.contro.entity.ScenePlusExt;
import com.fdkankan.contro.mapper.IScenePlusMapper;
import com.fdkankan.contro.service.ICameraDetailService;
import com.fdkankan.contro.service.IScenePlusExtService;
import com.fdkankan.contro.service.IScenePlusService;
import com.fdkankan.web.response.ResultData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Objects;
/**
*
* 场景主表 服务实现类
*
*
* @author
* @since 2022-03-16
*/
@Slf4j
@Service
public class ScenePlusServiceImpl extends ServiceImpl implements IScenePlusService {
@Autowired
private IScenePlusExtService scenePlusExtService;
@Autowired
private ICameraDetailService cameraDetailService;
@Override
public ScenePlus getScenePlusByNum(String num) {
return this.getOne(new LambdaQueryWrapper().eq(ScenePlus::getNum, num));
}
@Override
public ResultData resetSpace(String num){
ScenePlus scenePlus = this.getScenePlusByNum(num);
ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
if(Objects.isNull(scenePlus)){
log.info("该场景不存在无法重置容量,场景码为:" + num);
return ResultData.error(ErrorCode.FAILURE_CODE_5058);
}
if (scenePlusExt.getSceneScheme() < 4){
log.info("该场景不属于八目相机无法重置容量,场景码为:" + num);
return ResultData.error(ErrorCode.FAILURE_CODE_5057);
}
if(!ObjectUtils.isEmpty(scenePlusExt) && !ObjectUtils.isEmpty(scenePlusExt.getSpace())){
cameraDetailService.updateCameraDetailByCameraIdAndSpace(scenePlus.getCameraId(), -scenePlusExt.getSpace());
}
scenePlusExt.setSpace(Long.parseLong("0"));
scenePlusExtService.updateById(scenePlusExt);
return ResultData.ok();
}
@Override
public String getDataSourceLikeUnicode(String unicode) {
ScenePlusExt scenePlusExt = scenePlusExtService.getOne(
new LambdaQueryWrapper().like(ScenePlusExt::getDataSource, unicode));
if(Objects.isNull(scenePlusExt)){
return null;
}
return scenePlusExt.getDataSource();
}
@Override
public ScenePlus getByFileId(String fileId) {
ScenePlusExt scenePlusExt = scenePlusExtService.getOne(
new LambdaQueryWrapper().like(ScenePlusExt::getDataSource, fileId));
if(Objects.isNull(scenePlusExt)){
return null;
}
return this.getById(scenePlusExt.getPlusId());
}
}