From 0f54f5f9f792aabad6deea6209ed0d0d29e21bf8 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 20 Dec 2021 11:47:44 +0800
Subject: [PATCH] 获取当前组织下设备列表及其详细信息

---
 screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java    |   11 +++++++++++
 screen-api/src/main/java/com/moral/api/service/DeviceService.java             |    3 +++
 screen-api/src/main/java/com/moral/api/service/SysAreaService.java            |    1 +
 screen-api/src/main/java/com/moral/api/controller/OrganizationController.java |   23 +++++++++++++++++++++++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java b/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
index ad7a6b0..6101bfc 100644
--- a/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -16,6 +16,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.moral.api.service.DeviceService;
 import com.moral.api.service.SysAreaService;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
@@ -30,6 +31,9 @@
 
     @Autowired
     private SysAreaService sysAreaService;
+
+    @Autowired
+    private DeviceService deviceService;
 
     /**
      * @param request ������������
@@ -49,4 +53,23 @@
         List<Map<String, Object>> response = sysAreaService.getMapPath(Integer.parseInt(params.get("organizationId").toString()));
         return ResultMessage.ok(response);
     }
+
+    /**
+     * @param request ������������
+     * @return ������������������������������������
+     */
+    @GetMapping("getDevicesByOrganizationId")
+    @ApiOperation(value = "���������������������������������", notes = "���������������������������������")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
+            @ApiImplicitParam(name = "organizationId", value = "������id", required = true, paramType = "query", dataType = "String")
+    })
+    public ResultMessage getDevicesByOrganizationId(HttpServletRequest request) {
+        Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
+        if (!params.containsKey("organizationId")) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        List<Map<String, Object>> response = deviceService.getDevicesByOrganizationId(Integer.parseInt(params.get("organizationId").toString()));
+        return ResultMessage.ok(response);
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/DeviceService.java b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
index 662d3c4..0fe13b7 100644
--- a/screen-api/src/main/java/com/moral/api/service/DeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
@@ -28,4 +28,7 @@
     //������mac������������������
     Device getDeviceByMac(String mac);
 
+    //���������������������������������������
+    List<Map<String, Object>> getDevicesByOrganizationId(Integer orgId);
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/SysAreaService.java b/screen-api/src/main/java/com/moral/api/service/SysAreaService.java
index a972152..f0a4201 100644
--- a/screen-api/src/main/java/com/moral/api/service/SysAreaService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SysAreaService.java
@@ -16,6 +16,7 @@
  */
 public interface SysAreaService extends IService<SysArea> {
 
+    //���������������������������������
     List<Map<String, Object>> getMapPath(Integer orgId);
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 1c1b45b..3541861 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -22,6 +22,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -162,6 +163,16 @@
         return device;
     }
 
+    @Override
+    public List<Map<String, Object>> getDevicesByOrganizationId(Integer orgId) {
+        //������������������mac
+        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("mac").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE);
+        List<Device> devices = deviceMapper.selectList(queryWrapper);
+        //���redis������������������������
+        return devices.stream().map(device -> (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, device.getMac())).collect(Collectors.toList());
+    }
+
     private Device getDeviceByMacFromDB(String mac) {
         QueryWrapper<Device> wrapper = new QueryWrapper<>();
         wrapper.eq("mac", mac);

--
Gitblit v1.8.0