package com.ard.work.device.camera.service.impl;
|
|
import com.ard.common.core.utils.StringUtils;
|
import com.ard.common.security.utils.SecurityUtils;
|
import com.ard.work.device.camera.domain.ArdCameraPtzScope;
|
import com.ard.work.device.camera.mapper.ArdCameraPtzScopeMapper;
|
import com.ard.work.device.camera.service.IArdCameraPtzScopeService;
|
import com.ard.work.sdk.model.PtzScope;
|
import jakarta.annotation.Resource;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* 摄像头PTZ范围Service业务层处理
|
*
|
* @author 刘苏义
|
* @date 2024-09-05
|
*/
|
@Service
|
public class ArdCameraPtzScopeServiceImpl implements IArdCameraPtzScopeService {
|
|
private static final Logger log = LoggerFactory.getLogger(ArdCameraPtzScopeServiceImpl.class);
|
|
@Resource
|
private ArdCameraPtzScopeMapper ardCameraPtzScopeMapper;
|
|
/**
|
* 查询摄像头PTZ范围
|
*/
|
@Override
|
public ArdCameraPtzScope selectArdCameraPtzScopeById(Long id) {
|
return ardCameraPtzScopeMapper.selectArdCameraPtzScopeById(id);
|
}
|
|
/**
|
* 查询摄像头PTZ范围列表
|
*/
|
@Override
|
public List<ArdCameraPtzScope> selectArdCameraPtzScopeList(ArdCameraPtzScope ardCameraPtzScope) {
|
return ardCameraPtzScopeMapper.selectArdCameraPtzScopeList(ardCameraPtzScope);
|
}
|
|
/**
|
* 新增摄像头PTZ范围
|
*/
|
@Override
|
public int insertArdCameraPtzScope(ArdCameraPtzScope ardCameraPtzScope) {
|
ardCameraPtzScope.setCreateBy(StringUtils.isNotEmpty(ardCameraPtzScope.getCreateBy())
|
? ardCameraPtzScope.getCreateBy() : SecurityUtils.getUsername());
|
return ardCameraPtzScopeMapper.insertArdCameraPtzScope(ardCameraPtzScope);
|
}
|
|
/**
|
* 修改摄像头PTZ范围
|
*/
|
@Override
|
public int updateArdCameraPtzScope(ArdCameraPtzScope ardCameraPtzScope) {
|
ardCameraPtzScope.setUpdateBy(SecurityUtils.getUsername());
|
return ardCameraPtzScopeMapper.updateArdCameraPtzScope(ardCameraPtzScope);
|
}
|
|
/**
|
* 批量删除摄像头PTZ范围
|
*/
|
@Override
|
public int deleteArdCameraPtzScopeByIds(String[] ids) {
|
return ardCameraPtzScopeMapper.deleteArdCameraPtzScopeByIds(ids);
|
}
|
|
/**
|
* 删除摄像头PTZ范围信息
|
*/
|
@Override
|
public int deleteArdCameraPtzScopeById(Long id) {
|
return ardCameraPtzScopeMapper.deleteArdCameraPtzScopeById(id);
|
}
|
|
/**
|
* 登录成功后保存PTZ范围(存在则更新)
|
*/
|
@Override
|
@Transactional
|
public void saveOnLoginSuccess(String cameraId,PtzScope ptzScope) {
|
if (ptzScope == null) {
|
log.warn("PTZ范围为空,忽略存储,cameraId: {}", cameraId);
|
return;
|
}
|
|
ArdCameraPtzScope entity = new ArdCameraPtzScope();
|
entity.setCameraId(cameraId);
|
entity.setPMax(BigDecimal.valueOf(ptzScope.getPMax()));
|
entity.setPMin(BigDecimal.valueOf(ptzScope.getPMin()));
|
entity.setTMax(BigDecimal.valueOf(ptzScope.getTMax()));
|
entity.setTMin(BigDecimal.valueOf(ptzScope.getTMin()));
|
entity.setZMax(BigDecimal.valueOf(ptzScope.getZMax()));
|
entity.setZMin(BigDecimal.valueOf(ptzScope.getZMin()));
|
|
int result = ardCameraPtzScopeMapper.insertOrUpdate(entity);
|
|
if (result > 0) {
|
log.info("PTZ范围存储成功,cameraId: {}, 范围: P[{}-{}], T[{}-{}], Z[{}-{}]",
|
cameraId, ptzScope.getPMin(), ptzScope.getPMax(),
|
ptzScope.getTMin(), ptzScope.getTMax(),
|
ptzScope.getZMin(), ptzScope.getZMax());
|
} else {
|
log.error("PTZ范围存储失败,cameraId: {}", cameraId);
|
}
|
}
|
|
/**
|
* 根据摄像头ID获取PTZ范围(供SDK调用)
|
*/
|
@Override
|
public PtzScope getPtzScopeByCameraId(String cameraId) {
|
if (StringUtils.isEmpty(cameraId)) {
|
return null;
|
}
|
|
ArdCameraPtzScope entity = ardCameraPtzScopeMapper.selectArdCameraPtzScopeByCameraId(cameraId);
|
if (entity == null) {
|
log.debug("数据库中未找到PTZ范围,cameraId: {}", cameraId);
|
return null;
|
}
|
|
PtzScope ptzScope = new PtzScope();
|
ptzScope.setPMax(entity.getPMax().floatValue());
|
ptzScope.setPMin(entity.getPMin().floatValue());
|
ptzScope.setTMax(entity.getTMax().floatValue());
|
ptzScope.setTMin(entity.getTMin().floatValue());
|
ptzScope.setZMax(entity.getZMax().floatValue());
|
ptzScope.setZMin(entity.getZMin().floatValue());
|
|
return ptzScope;
|
}
|
|
@Override
|
public void clearAll()
|
{
|
ardCameraPtzScopeMapper.clearAll();
|
}
|
}
|