|
|
|
|
@ -11,6 +11,8 @@ import com.zhehekeji.web.entity.CameraIOConfig;
|
|
|
|
|
import com.zhehekeji.web.lib.CameraConnMap;
|
|
|
|
|
import com.zhehekeji.web.lib.CameraControlLoginModule;
|
|
|
|
|
import com.zhehekeji.web.lib.CameraControlModule;
|
|
|
|
|
import com.zhehekeji.web.lib.hik.HikLoginModuleImpl;
|
|
|
|
|
import com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl;
|
|
|
|
|
import com.zhehekeji.web.lib.joyware.NetSDKLib;
|
|
|
|
|
import com.zhehekeji.web.mapper.CameraIOConfigMapper;
|
|
|
|
|
import com.zhehekeji.web.mapper.CameraIOMapper;
|
|
|
|
|
@ -33,6 +35,7 @@ import java.io.IOException;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
@Slf4j
|
|
|
|
|
@ -105,9 +108,53 @@ public class CameraService {
|
|
|
|
|
public PageInfo<Camera> cameras(StreetSearch streetSearch) {
|
|
|
|
|
PageHelper.startPage(streetSearch.getPageNum(), streetSearch.getPageSize());
|
|
|
|
|
List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0));
|
|
|
|
|
if(cameras.size() > 0){
|
|
|
|
|
CountDownLatch latch = new CountDownLatch(cameras.size());
|
|
|
|
|
cameras.forEach(camera -> {
|
|
|
|
|
StatusThread statusThread = new StatusThread(camera,latch);
|
|
|
|
|
statusThread.start();
|
|
|
|
|
});
|
|
|
|
|
try {
|
|
|
|
|
latch.await();
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new PageInfo<>(cameras);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class StatusThread extends Thread{
|
|
|
|
|
private Camera camera;
|
|
|
|
|
private CountDownLatch latch;
|
|
|
|
|
public StatusThread(Camera camera,CountDownLatch latch){
|
|
|
|
|
this.camera = camera;
|
|
|
|
|
this.latch = latch;
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
try {
|
|
|
|
|
Boolean ok = false;
|
|
|
|
|
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){
|
|
|
|
|
ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue());
|
|
|
|
|
}else {
|
|
|
|
|
ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(ok){
|
|
|
|
|
camera.setStatus("连接正常");
|
|
|
|
|
}else {
|
|
|
|
|
camera.setStatus("未连接");
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
camera.setStatus("未连接");
|
|
|
|
|
}finally {
|
|
|
|
|
latch.countDown();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Camera detail(Integer id){
|
|
|
|
|
return cameraMapper.selectById(id);
|
|
|
|
|
}
|
|
|
|
|
|