Procházet zdrojové kódy

Merge branch 'master' of http://39.105.126.192:3000/DR3_server/sky_ioc_server

ZhangManMan před 2 roky
rodič
revize
d291041fdc

+ 26 - 0
src/main/java/com/sky/ioc/controller/security/CameraController.java

@@ -0,0 +1,26 @@
+package com.sky.ioc.controller.security;
+
+import com.sky.ioc.service.security.SecurityDeviceService;
+import com.sky.ioc.tool.ReturnMsg;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "智慧安防--摄像头")
+@Slf4j
+@RequestMapping("/security_camera")
+@RestController
+public class CameraController {
+
+    @Autowired
+    SecurityDeviceService service;
+
+    @PostMapping("/getCameras")
+    private ReturnMsg getCameras() {
+        return service.getAllCameras();
+    }
+
+}

+ 31 - 0
src/main/java/com/sky/ioc/entity/domain/security/SecurityDevice.java

@@ -0,0 +1,31 @@
+package com.sky.ioc.entity.domain.security;
+
+import lombok.Data;
+
+@Data
+public class SecurityDevice {
+
+    /** ID */
+    private int id;
+    /** 第三方ID */
+    private String thirdId;
+    /** 设备名称 */
+    private String deviceName;
+    /** 设备ID */
+    private String deviceId;
+    /** 设备类型:1-摄像头 */
+    private int deviceType;
+    /** 设备位置 */
+    private String deviceLocation;
+    /** 设备年限 */
+    private int deviceAge;
+    /** 单位ID */
+    private String companyId;
+    /** 负责人ID */
+    private String userId;
+    /** 分组 */
+    private String deviceGroup;
+    /** 设备状态:1-开启 */
+    private int status;
+
+}

+ 23 - 0
src/main/java/com/sky/ioc/job/SecurityDataJob.java

@@ -0,0 +1,23 @@
+package com.sky.ioc.job;
+
+import com.sky.ioc.service.security.SecurityDeviceService;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Date;
+
+@Slf4j
+public class SecurityDataJob implements Job {
+
+    @Autowired
+    private SecurityDeviceService securityDeviceService;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        log.info(String.format("同步摄像头列表数据!  时间:" + new Date()));
+        securityDeviceService.syncAllCameras();
+    }
+}

+ 10 - 0
src/main/java/com/sky/ioc/mapper/security/SecurityDeviceMapper.java

@@ -0,0 +1,10 @@
+package com.sky.ioc.mapper.security;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.security.SecurityDevice;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SecurityDeviceMapper extends BaseMapper<SecurityDevice> {
+
+}

+ 18 - 0
src/main/java/com/sky/ioc/service/security/SecurityDeviceService.java

@@ -0,0 +1,18 @@
+package com.sky.ioc.service.security;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface SecurityDeviceService {
+
+    /**
+     * 同步所有设备 @return
+     */
+    ReturnMsg syncAllCameras();
+
+    /**
+     * 查询所有设备
+     * @return
+     */
+    ReturnMsg getAllCameras();
+
+}

+ 91 - 0
src/main/java/com/sky/ioc/service/security/impl/SecurityDeviceServiceImpl.java

@@ -0,0 +1,91 @@
+package com.sky.ioc.service.security.impl;
+
+import com.sky.ioc.entity.domain.security.SecurityDevice;
+import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.security.SecurityDeviceMapper;
+import com.sky.ioc.service.security.SecurityDeviceService;
+import com.sky.ioc.tool.ReturnMsg;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class SecurityDeviceServiceImpl implements SecurityDeviceService {
+
+    @Resource
+    TokenMapper tokenMapper;
+
+    @Resource
+    private SecurityDeviceMapper securityDeviceMapper;
+
+    final static String SECURITY_CAMERA_URL = "http://192.168.1.45:9001/api/safety/Hikvision/camera/list";
+
+    @Override
+    public ReturnMsg syncAllCameras() {
+        Map<String,String> tokenMap = tokenMapper.getNewToken();
+        String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
+        if(tokenMap!=null){
+            token = "Bearer "+tokenMap.get("token");
+        }
+        // 创建一个请求头对象
+        HttpHeaders httpHeaders = new HttpHeaders();
+        // 设置参数
+        httpHeaders.set("authorization", token);
+        // 创建一个响应体对象
+        HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
+        // 3.创建RestTemplate
+        RestTemplate restTemplate = new RestTemplate();
+        // 发送GET请求
+        ResponseEntity<Map> responseEntity = restTemplate.exchange(SECURITY_CAMERA_URL, HttpMethod.GET, httpEntity, Map.class);
+        // 获取响应对象里的 body 对象
+        Map<String, Object> body = responseEntity.getBody();
+        // 获取状态码
+        Integer code = (Integer)body.get("code");
+        // 获取响应信息
+        String message = (String)body.get("msg");
+        if(code==200){
+            ArrayList list = (ArrayList) body.get("rows");
+            if(list!=null&&list.size()>0){
+                securityDeviceMapper.delete(null);
+                for (int i=0;i<list.size();i++){
+                    LinkedHashMap json = (LinkedHashMap) list.get(i);
+                    SecurityDevice device = new SecurityDevice();
+
+                    device.setThirdId(json.get("id").toString());
+                    device.setDeviceName((String) json.get("cameraName"));
+                    device.setDeviceId((String) json.get("cameraIndexCode"));
+                    device.setDeviceType(1);
+                    device.setDeviceLocation((String) json.get("cameraName"));
+                    device.setDeviceAge(0);
+                    device.setCompanyId("0");
+                    device.setUserId("");
+                    device.setDeviceGroup("");
+                    device.setStatus(1);
+                    securityDeviceMapper.insert(device);
+                }
+            }
+            return ReturnMsg.ok();
+        }else{
+            log.info("获取摄像头列表数据:"+message);
+            return ReturnMsg.fail(message);
+        }
+    }
+
+    @Override
+    public ReturnMsg getAllCameras() {
+        List<SecurityDevice> securityDevices = securityDeviceMapper.selectList(null);
+        return ReturnMsg.ok(securityDevices);
+    }
+
+}