Browse Source

修复普适性相关BUG

yangxiaokun 3 years ago
parent
commit
6c088f1e3c
33 changed files with 313 additions and 175 deletions
  1. 1 1
      src/main/java/com/zy/bms/common/interceptor/AuthInterceptor.java
  2. 2 2
      src/main/java/com/zy/bms/config/ExceptionAdvice.java
  3. 1 4
      src/main/java/com/zy/bms/controller/AdminController.java
  4. 8 1
      src/main/java/com/zy/bms/controller/BaseController.java
  5. 0 2
      src/main/java/com/zy/bms/controller/GroupController.java
  6. 0 2
      src/main/java/com/zy/bms/controller/InstructionsController.java
  7. 0 2
      src/main/java/com/zy/bms/controller/ItemController.java
  8. 0 2
      src/main/java/com/zy/bms/controller/RoleController.java
  9. 30 9
      src/main/java/com/zy/bms/controller/ubi/UbiDeviceController.java
  10. 0 6
      src/main/java/com/zy/bms/entity/User.java
  11. 5 0
      src/main/java/com/zy/bms/entity/ubi/UbiInfoState.java
  12. 11 7
      src/main/java/com/zy/bms/handler/MqttCallbackHandler.java
  13. 1 1
      src/main/java/com/zy/bms/handler/WebSocketHandler.java
  14. 1 1
      src/main/java/com/zy/bms/manager/SessionManager.java
  15. 0 20
      src/main/java/com/zy/bms/mapper/DeviceBaseMapper.java
  16. 9 0
      src/main/java/com/zy/bms/mapper/UserMapper.java
  17. 33 0
      src/main/java/com/zy/bms/mapper/ubi/UbiInfoStateMapper.java
  18. 6 0
      src/main/java/com/zy/bms/pojo/io/DeviceIO.java
  19. 3 3
      src/main/java/com/zy/bms/pojo/vo/UbiDeviceDetailVo.java
  20. 22 6
      src/main/java/com/zy/bms/pojo/vo/UbiDeviceListVo.java
  21. 0 18
      src/main/java/com/zy/bms/service/IDeviceBaseService.java
  22. 8 0
      src/main/java/com/zy/bms/service/IUserService.java
  23. 0 27
      src/main/java/com/zy/bms/service/impl/DeviceBaseServiceImpl.java
  24. 0 2
      src/main/java/com/zy/bms/service/impl/GroupServiceImpl.java
  25. 3 3
      src/main/java/com/zy/bms/service/impl/PostMqttMsgServiceImpl.java
  26. 6 0
      src/main/java/com/zy/bms/service/impl/UserServiceImpl.java
  27. 37 0
      src/main/java/com/zy/bms/service/ubi/IUbiInfoStateService.java
  28. 47 0
      src/main/java/com/zy/bms/service/ubi/impl/UbiInfoStateServiceImpl.java
  29. 1 1
      src/main/java/com/zy/bms/utils/TransformEntity.java
  30. 0 49
      src/main/resources/mapper/DeviceBaseMapper.xml
  31. 70 5
      src/main/resources/mapper/UbiInfoStateMapper.xml
  32. 0 1
      src/main/resources/mapper/UbiTcpMapper.xml
  33. 8 0
      src/main/resources/mapper/UserMapper.xml

+ 1 - 1
src/main/java/com/zy/bms/common/interceptor/AuthInterceptor.java

@@ -1,6 +1,6 @@
 package com.zy.bms.common.interceptor;
 
-import com.zy.bms.common.redis.SessionManager;
+import com.zy.bms.manager.SessionManager;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 

+ 2 - 2
src/main/java/com/zy/bms/common/controller/ExceptionController.java → src/main/java/com/zy/bms/config/ExceptionAdvice.java

@@ -1,4 +1,4 @@
-package com.zy.bms.common.controller;
+package com.zy.bms.config;
 
 import com.zy.bms.common.ServerResponse;
 import org.springframework.web.bind.annotation.ExceptionHandler;
@@ -13,7 +13,7 @@ import org.springframework.web.method.annotation.MethodArgumentTypeMismatchExcep
  * Create on 2019/10/21
  */
 @RestControllerAdvice
-public class ExceptionController {
+public class ExceptionAdvice {
 
     /**
      * 对参数类型不匹配异常做统一拦截处理

+ 1 - 4
src/main/java/com/zy/bms/controller/AdminController.java

@@ -2,8 +2,7 @@ package com.zy.bms.controller;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.zy.bms.common.ServerResponse;
-import com.zy.bms.common.controller.BaseController;
-import com.zy.bms.common.redis.SessionManager;
+import com.zy.bms.manager.SessionManager;
 import com.zy.bms.entity.Admin;
 import com.zy.bms.pojo.io.AdminIO;
 import com.zy.bms.service.IAdminService;
@@ -18,9 +17,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * <p>
  * 管理员表 前端控制器
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-03

+ 8 - 1
src/main/java/com/zy/bms/common/controller/BaseController.java → src/main/java/com/zy/bms/controller/BaseController.java

@@ -1,4 +1,4 @@
-package com.zy.bms.common.controller;
+package com.zy.bms.controller;
 
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -27,4 +27,11 @@ public class BaseController {
     public String token() {
         return request.getHeader("token");
     }
+
+    /**
+     * 获取微信小程序登录User
+     */
+    public String userId() {
+        return request.getHeader("wx_user");
+    }
 }

+ 0 - 2
src/main/java/com/zy/bms/controller/GroupController.java

@@ -12,9 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 
 /**
- * <p>
  * 项目组 前端控制器
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-03

+ 0 - 2
src/main/java/com/zy/bms/controller/InstructionsController.java

@@ -6,9 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * <p>
  * 指令表 前端控制器
- * </p>
  *
  * @author chenyi
  * @since 2021-06-22

+ 0 - 2
src/main/java/com/zy/bms/controller/ItemController.java

@@ -16,9 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 
 /**
- * <p>
  * 项目表 前端控制器
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-03

+ 0 - 2
src/main/java/com/zy/bms/controller/RoleController.java

@@ -4,9 +4,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * <p>
  * 角色表 前端控制器
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-03

+ 30 - 9
src/main/java/com/zy/bms/controller/ubi/UbiDeviceController.java

@@ -2,8 +2,11 @@ package com.zy.bms.controller.ubi;
 
 
 import com.zy.bms.common.ServerResponse;
+import com.zy.bms.controller.BaseController;
 import com.zy.bms.pojo.io.DeviceIO;
-import com.zy.bms.service.IDeviceBaseService;
+import com.zy.bms.pojo.io.PageIO;
+import com.zy.bms.service.ubi.IUbiInfoStateService;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -11,32 +14,50 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 
 /**
- * <p>
+ * 普适性
  * 设备静态信息 前端控制器
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-01
  */
 @RestController
-@RequestMapping("/builder/device")
-public class UbiDeviceController {
+@RequestMapping("/bms/device/ubi")
+public class UbiDeviceController extends BaseController {
     @Resource
-    private IDeviceBaseService deviceStaticService;
+    private IUbiInfoStateService ubiInfoStateService;
 
     /**
      * 分页查询设备列表
      */
     @PostMapping("listPage.do")
     public ServerResponse listPage(DeviceIO io) {
-        return ServerResponse.createBySuccess(deviceStaticService.listPage(io));
+        return ServerResponse.createBySuccess(ubiInfoStateService.listPage(io));
     }
 
     /**
      * 查询设备详情信息
      */
-    @PostMapping("getDetail.do")
+    @GetMapping("getDetail.do")
     public ServerResponse getDetail(String openNum) {
-        return ServerResponse.createBySuccess(deviceStaticService.getDetail(openNum));
+        return ServerResponse.createBySuccess(ubiInfoStateService.getDetail(openNum));
+    }
+
+    /**
+     * 微信端
+     * 通过用户ID分页查询该用户拥有权限的设备列表
+     */
+    @GetMapping("listPageWx.do")
+    public ServerResponse listPageWx(PageIO io) {
+        Integer userId = Integer.parseInt(userId());
+        return ServerResponse.createBySuccess(ubiInfoStateService.listPageWx(io, userId));
+    }
+
+    /**
+     * 微信端
+     * 通过用户ID分页查询该用户拥有权限的设备列表
+     */
+    @GetMapping("getDetailWx.do")
+    public ServerResponse getDetailWx(String openNum) {
+        return ServerResponse.createBySuccess(ubiInfoStateService.getDetailWx(openNum));
     }
 }

+ 0 - 6
src/main/java/com/zy/bms/entity/User.java

@@ -62,11 +62,6 @@ public class User implements Serializable {
      */
     private Integer itemId;
 
-    /**
-     * 项目组ID
-     */
-    private String groupId;
-
     /**
      * 0:禁用 1:启用
      */
@@ -82,5 +77,4 @@ public class User implements Serializable {
      */
     private LocalDateTime createTime;
 
-
 }

+ 5 - 0
src/main/java/com/zy/bms/entity/ubi/UbiInfoState.java

@@ -75,6 +75,11 @@ public class UbiInfoState implements Serializable {
      */
     private String version;
 
+    /**
+     * 在线状态
+     */
+    private Integer status;
+
     /**
      * 数据更新时间
      */

+ 11 - 7
src/main/java/com/zy/bms/handler/MqttCallbackHandler.java

@@ -17,6 +17,7 @@ import com.zy.bms.service.ubi.IUbiTcpService;
 import com.zy.bms.utils.BeanUtil;
 import com.zy.bms.utils.MD5Util;
 import com.zy.bms.utils.RabbitMQApi;
+import com.zy.bms.utils.TransformEntity;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
@@ -35,7 +36,7 @@ import java.util.Map;
 public class MqttCallbackHandler {
 
     @Resource
-    private WebSocketServer webSocketServer;
+    private WebSocketHandler webSocketHandler;
     @Resource
     private IPostMqttMsgService postMqttMsgService;
     @Resource
@@ -89,7 +90,7 @@ public class MqttCallbackHandler {
             }
         }
         // 3. 转发消息至网页,忽略注册的报文
-        webSocketServer.massMessage(Constant.splitOpenNum(topic), payload);
+        webSocketHandler.massMessage(Constant.splitOpenNum(topic), payload);
     }
 
     /**
@@ -128,7 +129,10 @@ public class MqttCallbackHandler {
             heartbeatRecordService.save(entity);
             //更新最新的记录
             UbiInfoState ubiInfoState = BeanUtil.cast(entity, UbiInfoState.class);
+            //设置更新时间
             ubiInfoState.setUpdateTime(LocalDateTime.now());
+            //设置在线状态
+            ubiInfoState.setStatus(1);
             deviceDynamicService.saveOrUpdate(ubiInfoState,
                     new QueryWrapper<UbiInfoState>().eq("open_num", ubiInfoState.getOpenNum()));
         } catch (Exception e) {
@@ -143,14 +147,14 @@ public class MqttCallbackHandler {
     @SuppressWarnings("unchecked")
     private void deviceSetHandler(String openNum, MqttDTO mqttDTO) {
         // ntrip数据链路设置
-        UbiNtrip client = TransformEntity.tsf2UbiNtrip((Map<String, String>) mqttDTO.getData().get("ntripclient"));
-        UbiNtrip server = TransformEntity.tsf2UbiNtrip((Map<String, String>) mqttDTO.getData().get("ntripserver"));
+        UbiNtrip client = TransformEntity.tsf2UbiNtrip((Map<String, String>) mqttDTO.getObject("ntripclient"));
+        UbiNtrip server = TransformEntity.tsf2UbiNtrip((Map<String, String>) mqttDTO.getObject("ntripserver"));
         ntripSetService.saveOrUpdateNtripSet(client, openNum, IUbiNtripService.CLIENT);
         ntripSetService.saveOrUpdateNtripSet(server, openNum, IUbiNtripService.SERVER);
         // tcp数据链路设置
-        UbiTcp link1 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getData().get("tcplink1"));
-        UbiTcp link2 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getData().get("tcplink2"));
-        UbiTcp link3 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getData().get("tcplink3"));
+        UbiTcp link1 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getObject("tcplink1"));
+        UbiTcp link2 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getObject("tcplink2"));
+        UbiTcp link3 = TransformEntity.tsf2UbiTcp((Map<String, String>) mqttDTO.getObject("tcplink3"));
         tcpSetService.saveOrUpdateTcpSet(link1, openNum, IUbiTcpService.LINK_1);
         tcpSetService.saveOrUpdateTcpSet(link2, openNum, IUbiTcpService.LINK_2);
         tcpSetService.saveOrUpdateTcpSet(link3, openNum, IUbiTcpService.LINK_3);

+ 1 - 1
src/main/java/com/zy/bms/handler/WebSocketServer.java → src/main/java/com/zy/bms/handler/WebSocketHandler.java

@@ -20,7 +20,7 @@ import java.util.concurrent.ConcurrentHashMap;
 @Slf4j
 @Component
 @ServerEndpoint("/webSocket/{deviceId}")
-public class WebSocketServer {
+public class WebSocketHandler {
 
     /**
      * 存放每个客户端对应的MyWebSocket对象。

+ 1 - 1
src/main/java/com/zy/bms/common/redis/SessionManager.java → src/main/java/com/zy/bms/manager/SessionManager.java

@@ -1,4 +1,4 @@
-package com.zy.bms.common.redis;
+package com.zy.bms.manager;
 
 import com.alibaba.fastjson.JSON;
 import com.zy.bms.common.Constant;

+ 0 - 20
src/main/java/com/zy/bms/mapper/DeviceBaseMapper.java

@@ -1,14 +1,8 @@
 package com.zy.bms.mapper;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.bms.entity.DeviceBase;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zy.bms.pojo.io.DeviceIO;
-import com.zy.bms.pojo.vo.DeviceDetailVo;
-import com.zy.bms.pojo.vo.DeviceListVo;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -23,18 +17,4 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface DeviceBaseMapper extends BaseMapper<DeviceBase> {
 
-    /**
-     * 分页查询设备列表
-     *
-     * @param page 分页信息
-     * @param io   查询参数
-     */
-    IPage<DeviceListVo> listPage(Page<DeviceListVo> page, @Param("io") DeviceIO io);
-
-    /**
-     * 获取设备详情信息
-     *
-     * @param openNum 设备公开码
-     */
-    DeviceDetailVo getDetail(@Param("openNum") String openNum);
 }

+ 9 - 0
src/main/java/com/zy/bms/mapper/UserMapper.java

@@ -3,8 +3,11 @@ package com.zy.bms.mapper;
 import com.zy.bms.entity.User;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户表 Mapper 接口
@@ -17,4 +20,10 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface UserMapper extends BaseMapper<User> {
 
+    /**
+     * 通过用户Id 查询用户拥有权限的设备组
+     *
+     * @param userId 用户ID
+     */
+    List<String> ownGroupIds(@Param("userId") Integer userId);
 }

+ 33 - 0
src/main/java/com/zy/bms/mapper/ubi/UbiInfoStateMapper.java

@@ -1,12 +1,21 @@
 package com.zy.bms.mapper.ubi;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.bms.entity.ubi.UbiInfoState;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zy.bms.pojo.io.DeviceIO;
+import com.zy.bms.pojo.vo.UbiDeviceDetailVo;
+import com.zy.bms.pojo.vo.UbiDeviceListVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
+ * 普适性
  * 设备动态信息表 Mapper 接口
  * </p>
  *
@@ -21,4 +30,28 @@ public interface UbiInfoStateMapper extends BaseMapper<UbiInfoState> {
      * 定时任务,定时更新设备在线状态
      */
     void updateStatus();
+
+    /**
+     * 分页查询设备列表
+     *
+     * @param page 分页信息
+     * @param io   查询参数
+     */
+    IPage<UbiDeviceListVo> listPage(Page<UbiDeviceListVo> page, @Param("io") DeviceIO io);
+
+    /**
+     * 获取设备详情信息
+     *
+     * @param openNum 设备公开码
+     */
+    UbiDeviceDetailVo getDetail(@Param("openNum") String openNum);
+
+    /**
+     * 微信端
+     * 通过设备组分页查询设备列表
+     *
+     * @param page     分页信息
+     * @param groupIds 设备组ID集合
+     */
+    IPage<UbiDeviceListVo> listPageWx(Page<UbiDeviceListVo> page, @Param("groupIds") List<String> groupIds);
 }

+ 6 - 0
src/main/java/com/zy/bms/pojo/io/DeviceIO.java

@@ -27,4 +27,10 @@ public class DeviceIO extends PageIO {
      * 项目组
      */
     private String groupId;
+
+    /**
+     * 微信端
+     * 用户ID
+     */
+    private Integer userId;
 }

+ 3 - 3
src/main/java/com/zy/bms/pojo/vo/DeviceDetailVo.java → src/main/java/com/zy/bms/pojo/vo/UbiDeviceDetailVo.java

@@ -7,14 +7,14 @@ import lombok.Data;
 import java.util.List;
 
 /**
- * 设备信息Vo
- * 包含设备基础信息,最新动态信息
+ * 普适性
+ * 设备基础信息,状态信息Vo
  *
  * @author yang xiao kun
  * create on 2021/5/12
  */
 @Data
-public class DeviceDetailVo {
+public class UbiDeviceDetailVo {
 
     /**
      * 设备随机码

+ 22 - 6
src/main/java/com/zy/bms/pojo/vo/DeviceListVo.java → src/main/java/com/zy/bms/pojo/vo/UbiDeviceListVo.java

@@ -2,17 +2,18 @@ package com.zy.bms.pojo.vo;
 
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
- * 设备信息Vo
- * 包含设备基础信息,最新动态信息
+ * 普适性
+ * 设备基础信息,状态信息Vo
  *
  * @author yang xiao kun
  * create on 2021/5/12
  */
 @Data
-public class DeviceListVo {
+public class UbiDeviceListVo {
     /**
      * 设备随机码
      */
@@ -30,7 +31,7 @@ public class DeviceListVo {
     /**
      * 项目组
      */
-    private String group;
+    private String groupId;
 
     /**
      * SN码
@@ -47,6 +48,11 @@ public class DeviceListVo {
      */
     private Integer status;
 
+    /**
+     * 心跳包间隔,单位:秒
+     */
+    private Integer freq;
+
     /**
      * 电压
      */
@@ -65,12 +71,22 @@ public class DeviceListVo {
     /**
      * 经度
      */
-    private String lon;
+    private BigDecimal lon;
 
     /**
      * 纬度
      */
-    private String lat;
+    private BigDecimal lat;
+
+    /**
+     * 经度(Gcj)
+     */
+    private BigDecimal lonGcj;
+
+    /**
+     * 纬度(Gcj)
+     */
+    private BigDecimal latGcj;
 
     /**
      * 卫星颗数

+ 0 - 18
src/main/java/com/zy/bms/service/IDeviceBaseService.java

@@ -1,11 +1,7 @@
 package com.zy.bms.service;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zy.bms.entity.DeviceBase;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zy.bms.pojo.io.DeviceIO;
-import com.zy.bms.pojo.vo.DeviceDetailVo;
-import com.zy.bms.pojo.vo.DeviceListVo;
 
 /**
  * <p>
@@ -17,18 +13,4 @@ import com.zy.bms.pojo.vo.DeviceListVo;
  */
 public interface IDeviceBaseService extends IService<DeviceBase> {
 
-
-    /**
-     * 分页查询设备列表
-     *
-     * @param io 查询参数
-     */
-    IPage<DeviceListVo> listPage(DeviceIO io);
-
-    /**
-     * 获取设备详情信息
-     *
-     * @param openNum 设备公开码
-     */
-    DeviceDetailVo getDetail(String openNum);
 }

+ 8 - 0
src/main/java/com/zy/bms/service/IUserService.java

@@ -3,6 +3,8 @@ package com.zy.bms.service;
 import com.zy.bms.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户表 服务类
@@ -13,4 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IUserService extends IService<User> {
 
+    /**
+     * 通过用户Id 查询用户拥有权限的设备组
+     *
+     * @param userId 用户ID
+     */
+    List<String> ownGroupIds(Integer userId);
 }

+ 0 - 27
src/main/java/com/zy/bms/service/impl/DeviceBaseServiceImpl.java

@@ -1,20 +1,11 @@
 package com.zy.bms.service.impl;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.bms.entity.DeviceBase;
 import com.zy.bms.mapper.DeviceBaseMapper;
-import com.zy.bms.pojo.io.DeviceIO;
-import com.zy.bms.pojo.vo.DeviceDetailVo;
-import com.zy.bms.pojo.vo.DeviceListVo;
 import com.zy.bms.service.IDeviceBaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zy.bms.service.ubi.IUbiNtripService;
-import com.zy.bms.service.ubi.IUbiTcpService;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-
 /**
  * <p>
  * 设备静态信息 服务实现类
@@ -26,22 +17,4 @@ import javax.annotation.Resource;
 @Service
 public class DeviceBaseServiceImpl extends ServiceImpl<DeviceBaseMapper, DeviceBase> implements IDeviceBaseService {
 
-    @Resource
-    private IUbiTcpService tcpSetService;
-    @Resource
-    private IUbiNtripService ntripSetService;
-
-    @Override
-    public IPage<DeviceListVo> listPage(DeviceIO io) {
-        Page<DeviceListVo> page = new Page<>(io.getCurrent(), io.getSize());
-        return baseMapper.listPage(page, io);
-    }
-
-    @Override
-    public DeviceDetailVo getDetail(String openNum) {
-        DeviceDetailVo result = baseMapper.getDetail(openNum);
-        result.setUbiTcpList(tcpSetService.listByOpenNum(openNum));
-        result.setUbiNtripList(ntripSetService.listByOpenNum(openNum));
-        return result;
-    }
 }

+ 0 - 2
src/main/java/com/zy/bms/service/impl/GroupServiceImpl.java

@@ -11,9 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
- * <p>
  * 项目组 服务实现类
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-03

+ 3 - 3
src/main/java/com/zy/bms/service/impl/PostMqttMsgServiceImpl.java

@@ -3,13 +3,13 @@ package com.zy.bms.service.impl;
 import com.zy.bms.common.Constant;
 import com.zy.bms.config.mqtt.MqttGateway;
 import com.zy.bms.entity.DeviceBase;
+import com.zy.bms.handler.WebSocketHandler;
 import com.zy.bms.pojo.dto.MqttDTO;
 import com.zy.bms.pojo.io.set.AlarmIO;
 import com.zy.bms.pojo.io.set.NtripIO;
 import com.zy.bms.pojo.io.set.SetIO;
 import com.zy.bms.pojo.io.set.TcpIO;
 import com.zy.bms.service.IPostMqttMsgService;
-import com.zy.bms.handler.WebSocketServer;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -28,7 +28,7 @@ public class PostMqttMsgServiceImpl implements IPostMqttMsgService {
     @Resource
     private LogsService mqttLogService;
     @Resource
-    private WebSocketServer webSocketServer;
+    private WebSocketHandler webSocketHandler;
 
     @Override
     public void set(SetIO io) {
@@ -69,7 +69,7 @@ public class PostMqttMsgServiceImpl implements IPostMqttMsgService {
         // 2. 存储消息日志
         mqttLogService.saveSend(Constant.TOPIC.REGISTER_CLIENT, payload);
         // 3. 消息同步转发至webSocket
-        webSocketServer.massMessage(Constant.splitOpenNum(topic), payload);
+        webSocketHandler.massMessage(Constant.splitOpenNum(topic), payload);
     }
 
     /**

+ 6 - 0
src/main/java/com/zy/bms/service/impl/UserServiceImpl.java

@@ -6,6 +6,8 @@ import com.zy.bms.service.IUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户表 服务实现类
@@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
 
+    @Override
+    public List<String> ownGroupIds(Integer userId) {
+        return baseMapper.ownGroupIds(userId);
+    }
 }

+ 37 - 0
src/main/java/com/zy/bms/service/ubi/IUbiInfoStateService.java

@@ -1,7 +1,12 @@
 package com.zy.bms.service.ubi;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zy.bms.entity.ubi.UbiInfoState;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.bms.pojo.io.DeviceIO;
+import com.zy.bms.pojo.io.PageIO;
+import com.zy.bms.pojo.vo.UbiDeviceDetailVo;
+import com.zy.bms.pojo.vo.UbiDeviceListVo;
 
 /**
  * <p>
@@ -16,4 +21,36 @@ public interface IUbiInfoStateService extends IService<UbiInfoState> {
      * 定时任务,定时更新设备在线状态
      */
     void updateStatus();
+
+    /**
+     * 分页查询设备列表
+     *
+     * @param io 查询参数
+     */
+    IPage<UbiDeviceListVo> listPage(DeviceIO io);
+
+    /**
+     * 获取设备详情信息
+     *
+     * @param openNum 设备公开码
+     */
+    UbiDeviceDetailVo getDetail(String openNum);
+
+
+    /**
+     * 微信端
+     * 通过用户ID分页查询该用户拥有权限的设备列表
+     *
+     * @param io     查询参数
+     * @param userId 用户ID
+     */
+    IPage<UbiDeviceListVo> listPageWx(PageIO io, Integer userId);
+
+    /**
+     * 微信端
+     * 获取设备详情信息
+     *
+     * @param openNum 设备公开码
+     */
+    UbiDeviceDetailVo getDetailWx(String openNum);
 }

+ 47 - 0
src/main/java/com/zy/bms/service/ubi/impl/UbiInfoStateServiceImpl.java

@@ -1,11 +1,23 @@
 package com.zy.bms.service.ubi.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.bms.entity.ubi.UbiInfoState;
 import com.zy.bms.mapper.ubi.UbiInfoStateMapper;
+import com.zy.bms.pojo.io.DeviceIO;
+import com.zy.bms.pojo.io.PageIO;
+import com.zy.bms.pojo.vo.UbiDeviceDetailVo;
+import com.zy.bms.pojo.vo.UbiDeviceListVo;
+import com.zy.bms.service.IUserService;
 import com.zy.bms.service.ubi.IUbiInfoStateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.bms.service.ubi.IUbiNtripService;
+import com.zy.bms.service.ubi.IUbiTcpService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
  * <p>
  * 设备动态信息表 服务实现类
@@ -17,8 +29,43 @@ import org.springframework.stereotype.Service;
 @Service
 public class UbiInfoStateServiceImpl extends ServiceImpl<UbiInfoStateMapper, UbiInfoState> implements IUbiInfoStateService {
 
+    @Resource
+    private IUserService userService;
+
+    @Resource
+    private IUbiTcpService tcpSetService;
+    @Resource
+    private IUbiNtripService ntripSetService;
+
     @Override
     public void updateStatus() {
         baseMapper.updateStatus();
     }
+
+    @Override
+    public IPage<UbiDeviceListVo> listPage(DeviceIO io) {
+        Page<UbiDeviceListVo> page = new Page<>(io.getCurrent(), io.getSize());
+        return baseMapper.listPage(page, io);
+    }
+
+    @Override
+    public UbiDeviceDetailVo getDetail(String openNum) {
+        UbiDeviceDetailVo result = baseMapper.getDetail(openNum);
+        result.setUbiTcpList(tcpSetService.listByOpenNum(openNum));
+        result.setUbiNtripList(ntripSetService.listByOpenNum(openNum));
+        return result;
+    }
+
+    @Override
+    public IPage<UbiDeviceListVo> listPageWx(PageIO io, Integer userId) {
+        List<String> groupIds = userService.ownGroupIds(userId);
+        if (groupIds.isEmpty()) return null;
+        Page<UbiDeviceListVo> page = new Page<>(io.getCurrent(), io.getSize());
+        return baseMapper.listPageWx(page, groupIds);
+    }
+
+    @Override
+    public UbiDeviceDetailVo getDetailWx(String openNum) {
+        return baseMapper.getDetail(openNum);
+    }
 }

+ 1 - 1
src/main/java/com/zy/bms/handler/TransformEntity.java → src/main/java/com/zy/bms/utils/TransformEntity.java

@@ -1,4 +1,4 @@
-package com.zy.bms.handler;
+package com.zy.bms.utils;
 
 import com.zy.bms.common.Constant;
 import com.zy.bms.entity.ubi.UbiInfoRecord;

+ 0 - 49
src/main/resources/mapper/DeviceBaseMapper.xml

@@ -2,53 +2,4 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.bms.mapper.DeviceBaseMapper">
 
-    <select id="listPage" resultType="com.zy.bms.pojo.vo.DeviceListVo">
-        SELECT
-            t1.open_num,
-            t1.username,
-            t1.password,
-            t1.sn,
-            t1.create_time,
-            t2.`name`             AS `group`,
-            t3.freq,
-            t3.power_volt,
-            t3.sat_num,
-            t3.signal_4g,
-            t3.device_id,
-            t3.lat,
-            t3.lon,
-            t3.`version`,
-            t3.status,
-            t3.update_time
-        FROM
-            device_static t1
-        LEFT JOIN item_group t2 ON t1.group_id = t2.id
-        LEFT JOIN device_dynamic t3 ON t1.open_num = t3.open_num
-        <where>
-            <if test="io.openNum != null and io.openNum != ''">
-                AND t1.open_num LIKE CONCAT('%',#{io.openNum},'%')
-            </if>
-            <if test="io.groupId != null and io.groupId > -1">
-                AND t1.group_id = #{io.groupId}
-            </if>
-            <if test="io.status != null and io.status > -1">
-                AND t3.status = #{io.status}
-            </if>
-        </where>
-    </select>
-
-    <select id="getDetail" resultType="com.zy.bms.pojo.vo.DeviceDetailVo">
-        SELECT
-            t1.open_num,
-            t2.power_volt,
-            t2.sat_num,
-            t2.signal_4g,
-            t2.`version`,
-            t2.status
-        FROM
-            device_static t1
-        LEFT JOIN device_dynamic t2 ON t1.open_num = t2.open_num
-        WHERE
-            t1.open_num = #{openNum}
-    </select>
 </mapper>

+ 70 - 5
src/main/resources/mapper/UbiInfoStateMapper.xml

@@ -5,11 +5,76 @@
 
     <update id="updateStatus">
         UPDATE
-            device_dynamic
+        ubi_info_state
         SET
-            status = CASE WHEN
-            TIMESTAMPDIFF(SECOND,update_time,NOW())>(freq+60) THEN 0
-            ELSE 1
-            END
+        status = 0
+        WHERE
+        TIMESTAMPDIFF(SECOND,update_time,NOW()) > (freq+120)
     </update>
+
+    <select id="listPage" resultType="com.zy.bms.pojo.vo.UbiDeviceListVo">
+        SELECT
+        t1.open_num,
+        t1.username,
+        t1.password,
+        t1.sn,
+        t1.create_time,
+        t1.group_id,
+        t2.freq,
+        t2.power_volt,
+        t2.sat_num,
+        t2.signal4g,
+        t2.device_id,
+        t2.lat,
+        t2.lon,
+        t2.lat_gcj,
+        t2.lon_gcj,
+        t2.`version`,
+        t2.status,
+        t2.update_time
+        FROM
+        device_base t1
+        LEFT JOIN ubi_info_state t2 ON t1.open_num = t2.open_num
+        <where>
+            <if test="io.openNum != null and io.openNum != ''">
+                AND t1.open_num LIKE CONCAT('%',#{io.openNum},'%')
+            </if>
+            <if test="io.groupId != null and io.groupId > -1">
+                AND t1.group_id = #{io.groupId}
+            </if>
+            <if test="io.status != null and io.status > -1">
+                AND t2.status = #{io.status}
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetail" resultType="com.zy.bms.pojo.vo.UbiDeviceDetailVo">
+        SELECT
+            t1.open_num,
+            t2.power_volt,
+            t2.sat_num,
+            t2.signal_4g,
+            t2.`version`,
+            t2.status
+        FROM
+            device_base t1
+        LEFT JOIN ubi_info_state t2 ON t1.open_num = t2.open_num
+        WHERE
+            t1.open_num = #{openNum}
+    </select>
+
+    <select id="listPageWx" resultType="com.zy.bms.pojo.vo.UbiDeviceListVo">
+        SELECT
+        t1.open_num,
+        t1.create_time,
+        t2.status
+        FROM
+        device_base t1
+        LEFT JOIN ubi_info_state t2 ON t1.open_num = t2.open_num
+        WHERE
+        t1.group_id IN
+        <foreach collection="groupIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 0 - 1
src/main/resources/mapper/UbiTcpMapper.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
 <mapper namespace="com.zy.bms.mapper.ubi.UbiTcpMapper">
 
 </mapper>

+ 8 - 0
src/main/resources/mapper/UserMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.bms.mapper.UserMapper">
 
+    <select id="ownGroupIds" resultType="java.lang.String">
+        SELECT
+            group_id
+        FROM
+            user_privilege
+        WHERE
+            user_id = #{userId}
+    </select>
 </mapper>