Browse Source

根据登录的用户获取设备点位

丁治程 10 months ago
parent
commit
63802e16f0

+ 4 - 4
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java

@@ -177,16 +177,16 @@ public class IotedgeCollectDataController extends JeecgController<IotedgeCollect
 	 @AutoLog(value = "采集数据-获取点位")
 	 @ApiOperation(value="采集数据-获取点位", notes="采集数据-获取点位")
 	 @PostMapping(value = "/getTagInfo")
-	 public Result<List<IoTEdgeDevices>> getTagInfo() {
-		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById());
+	 public Result<List<IoTEdgeDevices>> getTagInfo(HttpServletRequest request) {
+		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById(request));
 	 }
 
 
 	 @AutoLog(value = "采集数据-调用接口测试")
 	 @ApiOperation(value="采集数据-调用接口测试", notes="采集数据-调用接口测试")
 	 @PostMapping(value = "/test")
-	 public Result<List<IoTEdgeDevices>> test(@RequestParam(name = "deviceId") String deviceId) {
-		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById());
+	 public Result<List<IoTEdgeDevices>> test(HttpServletRequest request) {
+		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById(request));
 	 }
 
 	 @AutoLog(value = "IoTEdge-发送邮件测试")

+ 1 - 1
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/IIotedgeCollectDataService.java

@@ -21,7 +21,7 @@ import java.util.Map;
  */
 public interface IIotedgeCollectDataService extends IService<IotedgeCollectData> {
 
-    List<IoTEdgeDevices> getDevicesInfoById();
+    List<IoTEdgeDevices> getDevicesInfoById(HttpServletRequest request);
 
     IotedgeCollectData getOneInfo(String deviceId, String moduleName, String tagName, String beginDate);
 

+ 6 - 6
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java

@@ -68,14 +68,14 @@ public class RestClientService {
     *   des: 调用IoTEdge接口 获取所有设备信息
     *   date: 2024/5/29
     */
-    public JSONObject getAllDevicesInfo(){
+    public JSONObject getAllDevicesInfo(String elToken){
         //String url = "http://127.0.0.1:8082/v1/devices?deviceType=&projectID=all&productID=all";
         String url = configService.getConfigValue(ConfigInfo.GETALLDEVICESINFO);
-        String accessToken = getAccessToken();
+        //String accessToken = getAccessToken();
         HttpHeaders headers = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
         headers.setContentType(type);
-        headers.add("Authorization", "Bearer " + accessToken);
+        headers.add("Authorization", "Bearer " + elToken);
         HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
         ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.GET,httpEntity, JSONObject.class);
         return response.getBody();
@@ -88,14 +88,14 @@ public class RestClientService {
     *   des: 调用IoTEdge接口 获取指定设备下的点位信息(根据设备ID)
     *   date: 2024/5/29
     */
-    public JSONObject getAllDevicesInfoById(String deviceId){
+    public JSONObject getAllDevicesInfoById(String deviceId,String elToken){
         //String url = "http://127.0.0.1:8082/v1/devices/"+deviceId+"/deviceshadow";
         String url = configService.getConfigValue(ConfigInfo.GETALLDEVICESINFOBYID)+"/"+deviceId+"/deviceshadow";
-        String accessToken = getAccessToken();
+        //String accessToken = getAccessToken();
         HttpHeaders headers = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
         headers.setContentType(type);
-        headers.add("Authorization", "Bearer " + accessToken);
+        headers.add("Authorization", "Bearer " + elToken);
         HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
         ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.GET,httpEntity, JSONObject.class);
         return response.getBody();

+ 17 - 5
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java

@@ -66,14 +66,26 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
     private static final String ERROR_CODE_TWO = "500";
 
     @Override
-    public List<IoTEdgeDevices> getDevicesInfoById() {
+    public List<IoTEdgeDevices> getDevicesInfoById(HttpServletRequest request) {
+
+        String elToken = "";
+        Cookie[] cookies = request.getCookies();
+        if (cookies != null) {
+            for (Cookie cookie : cookies) {
+                if (cookie.getName().equals("EIToken")) {
+                    elToken = cookie.getValue();
+                }
+            }
+        }
+
+
         Map<String, String> devicesMap = new HashMap<>();
-        JSONObject message1 = restClientService.getAllDevicesInfo();
+        JSONObject message1 = restClientService.getAllDevicesInfo(elToken);
         ArrayList<Map<String,Object>> maps = (ArrayList<Map<String, Object>>) message1.get("items");
         for (Map<String,Object> device : maps) {
             devicesMap.put(device.get("deviceName").toString(),device.get("deviceId").toString());
         }
-        List<IoTEdgeDevices> list = this.getDevicesList(devicesMap);
+        List<IoTEdgeDevices> list = this.getDevicesList(devicesMap,elToken);
         return list;
     }
 
@@ -83,7 +95,7 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
     *   des: 获取每台设备下的点位信息
     *   date: 2024/5/28
     */
-    private List<IoTEdgeDevices> getDevicesList(Map<String, String> devicesMap) {
+    private List<IoTEdgeDevices> getDevicesList(Map<String, String> devicesMap,String elToken) {
         ArrayList<IoTEdgeDevices> devicesList = new ArrayList<>();
         for (String key : devicesMap.keySet()) {
             ArrayList<IoTEdgeDevices> list = new ArrayList<>();
@@ -91,7 +103,7 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
             ioTEdgeDevices.setId(devicesMap.get(key)); // 设备id
             ioTEdgeDevices.setName(key); // 设备名称
             ioTEdgeDevices.setInfo(devicesMap.get(key)); // 设备id
-            JSONObject message2 = restClientService.getAllDevicesInfoById(devicesMap.get(key));
+            JSONObject message2 = restClientService.getAllDevicesInfoById(devicesMap.get(key),elToken);
             List<Map<String,Object>> items2 = (List<Map<String,Object>>) message2.get("items");
             HashMap<String, List<IotedgeTag>> serviceMap = new HashMap<>();
             for (Map<String,Object> item : items2) {