package com.ld.igds.sec.service.impl;
|
|
import com.ld.igds.camera.CameraUtil;
|
import com.ld.igds.constant.RedisConst;
|
import com.ld.igds.sec.dto.SecCameraDto;
|
import com.ld.igds.sec.dto.SecurityParam;
|
import com.ld.igds.sec.mapper.SecServiceMapper;
|
import com.ld.igds.sec.service.CoreSecCameraService;
|
import com.ld.igds.util.ContextUtil;
|
import com.ld.igds.util.RedisUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Repository;
|
import java.util.List;
|
|
@Repository
|
public class CoreSecCameraServiceImpl implements CoreSecCameraService {
|
|
@Autowired
|
private SecServiceMapper serviceMapper;
|
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Override
|
public SecCameraDto getCameraById(String companyId, String cameraId) {
|
if (null == companyId) {
|
companyId = ContextUtil.getDefaultCompanyId();
|
}
|
List<SecCameraDto> list = this.getAllCacheCamera(companyId);
|
|
if (null == list || list.isEmpty())
|
return null;
|
|
for (SecCameraDto data : list) {
|
if (data.getId().equals(cameraId))
|
return data;
|
}
|
|
return null;
|
}
|
|
@Override
|
public void refreshCache(String companyId) {
|
if (null == companyId) {
|
companyId = ContextUtil.getDefaultCompanyId();
|
}
|
List<SecCameraDto> list = serviceMapper.findAllCamera(companyId);
|
redisUtil.set(RedisConst.buildKey(companyId, RedisConst.KEY_CAMERA_LIST), list);
|
}
|
|
@SuppressWarnings("unchecked")
|
@Override
|
public List<SecCameraDto> getAllCacheCamera(String companyId) {
|
if (null == companyId) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
String key = RedisConst.buildKey(companyId, RedisConst.KEY_CAMERA_LIST);
|
List<SecCameraDto> list = (List<SecCameraDto>) redisUtil.get(key);
|
|
if (null == list || list.isEmpty()) {
|
list = serviceMapper.findAllCamera(companyId);
|
redisUtil.set(key, list);
|
}
|
return list;
|
}
|
|
@Override
|
public void updatePos(SecurityParam param) {
|
serviceMapper.updatePosById(param);
|
}
|
|
@Override
|
public void updateCameraStatus(String companyId) {
|
if (null == companyId) {
|
companyId = ContextUtil.getDefaultCompanyId();
|
}
|
|
List<SecCameraDto> list = getAllCacheCamera(companyId);
|
|
if (null == list || list.isEmpty()) return;
|
|
SecCameraDto dto;
|
String status;
|
for (int i = 0; i < list.size(); i++) {
|
dto = list.get(i);
|
status = CameraUtil.getCameraStatus(dto.getSn());
|
if (null != status) {
|
dto.setStatus(status);
|
|
list.set(i, dto);
|
}
|
}
|
|
redisUtil.set(RedisConst.buildKey(companyId, RedisConst.KEY_CAMERA_LIST), list);
|
}
|
|
@Override
|
public void updateCamera(SecCameraDto data) {
|
int i = serviceMapper.updateCamera(data);
|
if(i < 1){
|
serviceMapper.addCamera(data);
|
}
|
}
|
|
|
}
|