Преглед изворни кода

独立拆出老人机项目

yangxiaokun пре 3 година
родитељ
комит
afc99e0931
33 измењених фајлова са 133 додато и 536 уклоњено
  1. 2 1
      src/main/java/com/zy/bms/common/Constant.java
  2. 1 1
      src/main/java/com/zy/bms/common/interceptor/VerifyInterceptor.java
  3. 15 1
      src/main/java/com/zy/bms/common/io/wechat/SetIO.java
  4. 0 27
      src/main/java/com/zy/bms/common/io/wechat/SimpleSetIO.java
  5. 0 10
      src/main/java/com/zy/bms/common/vo/DeviceFullDataVo.java
  6. 0 48
      src/main/java/com/zy/bms/common/vo/GroupListVo.java
  7. 3 3
      src/main/java/com/zy/bms/config/InterceptorConfig.java
  8. 22 20
      src/main/java/com/zy/bms/config/mqtt/MqttCallbackHandler.java
  9. 1 1
      src/main/java/com/zy/bms/controller/pc/AdminController.java
  10. 1 1
      src/main/java/com/zy/bms/controller/pc/PcDeviceController.java
  11. 1 1
      src/main/java/com/zy/bms/controller/pc/PcLocationController.java
  12. 1 1
      src/main/java/com/zy/bms/controller/pc/PcMqttLogController.java
  13. 8 7
      src/main/java/com/zy/bms/controller/pc/PcSetController.java
  14. 1 1
      src/main/java/com/zy/bms/controller/pc/PcUserController.java
  15. 1 1
      src/main/java/com/zy/bms/controller/wx/DeviceController.java
  16. 1 1
      src/main/java/com/zy/bms/controller/wx/IdiomsController.java
  17. 1 1
      src/main/java/com/zy/bms/controller/wx/LocationController.java
  18. 1 1
      src/main/java/com/zy/bms/controller/wx/RelationController.java
  19. 9 8
      src/main/java/com/zy/bms/controller/wx/SetController.java
  20. 1 1
      src/main/java/com/zy/bms/controller/wx/SetInfoController.java
  21. 1 1
      src/main/java/com/zy/bms/controller/wx/UserController.java
  22. 0 14
      src/main/java/com/zy/bms/model/Admin.java
  23. 0 5
      src/main/java/com/zy/bms/model/Device.java
  24. 0 57
      src/main/java/com/zy/bms/model/Group.java
  25. 0 53
      src/main/java/com/zy/bms/model/Item.java
  26. 0 43
      src/main/java/com/zy/bms/model/Role.java
  27. 0 11
      src/main/java/com/zy/bms/model/User.java
  28. 13 0
      src/main/java/com/zy/bms/service/DeviceLocationService.java
  29. 0 13
      src/main/java/com/zy/bms/service/LatestLocationService.java
  30. 2 3
      src/main/java/com/zy/bms/service/MqttLogService.java
  31. 44 60
      src/main/java/com/zy/bms/service/SetService.java
  32. 0 140
      src/main/java/com/zy/bms/service/SetToDeviceService.java
  33. 3 0
      src/main/java/com/zy/bms/websocket/WebSocketServer.java

+ 2 - 1
src/main/java/com/zy/bms/common/Constant.java

@@ -7,7 +7,8 @@ package com.zy.bms.common;
 public class Constant {
 
 
-    public static final String OLD_PHONE_DEVICE_ID_PREFIX = "op_";//老人机项目设备注册MQTT用户名前缀
+    public static final String OLD_PHONE_DEVICE_ID_PREFIX = "omp_";//老人机项目设备注册MQTT用户名前缀
+
     /**
      * redis key前缀
      */

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

@@ -22,7 +22,7 @@ public class VerifyInterceptor extends HandlerInterceptorAdapter {
             response.setStatus(HttpServletResponse.SC_OK);
             return true;
         }
-        if (request.getHeader("verify") != null && request.getHeader("verify").equals("bms")) return true;
+        if (request.getHeader("verify") != null && request.getHeader("verify").equals("omp")) return true;
         request.getRequestDispatcher("/common/author.do").forward(request, response);
         return false;
     }

+ 15 - 1
src/main/java/com/zy/bms/common/io/wechat/SetIO.java

@@ -1,5 +1,6 @@
 package com.zy.bms.common.io.wechat;
 
+import com.zy.bms.common.Constant;
 import lombok.Data;
 
 /**
@@ -9,7 +10,16 @@ import lombok.Data;
  * Create on 2021/5/27
  */
 @Data
-public class SetIO extends SimpleSetIO {
+public class SetIO {
+    /**
+     * 设备名
+     */
+    private String deviceId;
+
+    /**
+     * 用户ID
+     */
+    private String userId;
 
     /**
      * 1:代表打开连续定位 0:代表关闭连续定位
@@ -87,4 +97,8 @@ public class SetIO extends SimpleSetIO {
      * 服务器下发文字
      */
     private String news;
+
+    public String getTopic() {
+        return Constant.TOPIC_DEVICE_CLIENT + deviceId;
+    }
 }

+ 0 - 27
src/main/java/com/zy/bms/common/io/wechat/SimpleSetIO.java

@@ -1,27 +0,0 @@
-package com.zy.bms.common.io.wechat;
-
-import com.zy.bms.common.Constant;
-import lombok.Data;
-
-/**
- * 简单设置入参类
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-public class SimpleSetIO {
-    /**
-     * 设备名
-     */
-    String deviceId;
-
-    /**
-     * 用户ID
-     */
-    String userId;
-
-    public String getTopic() {
-        return Constant.TOPIC_DEVICE_CLIENT + deviceId;
-    }
-}

+ 0 - 10
src/main/java/com/zy/bms/common/vo/DeviceFullDataVo.java

@@ -41,16 +41,6 @@ public class DeviceFullDataVo {
      */
     private Integer status;
 
-    /**
-     * 项目
-     */
-    private String item;
-
-    /**
-     * 项目组
-     */
-    private String group;
-
     /**
      * 电量
      */

+ 0 - 48
src/main/java/com/zy/bms/common/vo/GroupListVo.java

@@ -1,48 +0,0 @@
-package com.zy.bms.common.vo;
-
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * PC用户列表查询 视图
- *
- * @author yang xiao kun
- * create on 2021/5/19
- */
-@Data
-public class GroupListVo {
-
-    private Integer id;
-
-    /**
-     * 项目组编号
-     */
-    private String code;
-
-    /**
-     * 项目组名称
-     */
-    private String name;
-
-    /**
-     * 项目
-     */
-    private String item;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-    /**
-     * 0:禁用 1:启用
-     */
-    private Integer status;
-
-}

+ 3 - 3
src/main/java/com/zy/bms/config/InterceptorConfig.java

@@ -31,7 +31,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
     private static List<String> whiteList = new ArrayList<>();
 
     static {
-        whiteList.add("/bms/api/pc/admin/**");
+        whiteList.add("omp/api/pc/admin/login.do");
         whiteList.add("/common/**");
     }
 
@@ -41,11 +41,11 @@ public class InterceptorConfig implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(verifyInterceptor)
-                .addPathPatterns("/bms/api/pc/**")
+                .addPathPatterns("omp/api/pc/**")
                 .excludePathPatterns("/common/**");
 
         registry.addInterceptor(authInterceptor)
-                .addPathPatterns("/bms/api/pc/**")
+                .addPathPatterns("omp/api/pc/**")
                 .excludePathPatterns(whiteList);
     }
 }

+ 22 - 20
src/main/java/com/zy/bms/config/mqtt/MqttCallbackHandler.java

@@ -27,7 +27,7 @@ public class MqttCallbackHandler {
     @Resource
     private SetBaseService setBaseService;
     @Resource
-    private SetToDeviceService setToDeviceService;
+    private SetService setService;
     @Resource
     private DeviceLocationService deviceLocationService;
     @Resource
@@ -48,26 +48,31 @@ public class MqttCallbackHandler {
      * @param payload 消息内容
      */
     void handle(String topic, String payload) {
-        //存储日志
+        //存储日志-接收
         mqttLogService.saveLog(topic, payload, 0);
         //消息返回JSON转Object
-        MqttMsgDto msgObject = MqttMsgDto.parse(payload);
+        MqttMsgDto msgDto = MqttMsgDto.parse(payload);
         //根据报文标识代码 M 处理消息
-        switch (msgObject.getM()) {
-            case Constant.M_CODE_REGISTER://设备端注册报文
-                registerDeviceHandler(msgObject);
+        switch (msgDto.getM()) {
+            //设备端注册报文
+            case Constant.M_CODE_REGISTER: {
+                registerDeviceHandler(msgDto);
                 break;
-            case Constant.M_CODE_UPLOAD_LOCATION:// 设备位置信息上报
-                uploadLocationHandler(msgObject);
+            }
+            // 设备位置信息上报
+            case Constant.M_CODE_UPLOAD_LOCATION: {
+                uploadLocationHandler(msgDto);
                 break;
-            case Constant.M_CODE_UPLOAD_CALL_RECORD://设备上传通话记录
-                uploadCallRecordsHandler(msgObject);
+            }
+            //设备上传通话记录
+            case Constant.M_CODE_UPLOAD_CALL_RECORD: {
+                uploadCallRecordsHandler(msgDto);
                 break;
+            }
         }
-        //注册的报文忽略
+        //转发消息至网页,忽略注册的报文
         if (!topic.equals(Constant.TOPIC_REGISTER_SERVER)) {
-            //转发消息至网页
-            webSocketServer.massMessage(msgObject.getDeviceId(), payload);
+            webSocketServer.massMessage(msgDto.getDeviceId(), payload);
         }
     }
 
@@ -85,7 +90,7 @@ public class MqttCallbackHandler {
         //mqtt服务器注册用户
         rabbitMQApi.registerMqtt(device.getClientId(), device.getPassword());
         //发送消息
-        setToDeviceService.returnCodeToDevice(device);
+        setService.returnCodeToDevice(device);
     }
 
     /**
@@ -95,10 +100,8 @@ public class MqttCallbackHandler {
         DeviceLocation location = MqttMsgToLocation(msg);
         // 逆地理位置解析
         location.setSite(GaoDeApiUtil.regeo(location.getLonGcj(), location.getLatGcj()));
-        // 保存位置信息--历史记录
-        deviceLocationService.save(location);
-        // 保存最新的位置信息
-        latestLocationService.saveLatestLocation(location);
+        // 保存位置信息
+        deviceLocationService.saveLocation(location);
     }
 
     /**
@@ -123,10 +126,9 @@ public class MqttCallbackHandler {
     private Device createDevice(String num) {
         Device device = new Device();
         device.setNum(num);
-        String clientId = Constant.OLD_PHONE_DEVICE_ID_PREFIX + MD5Util.MD5Encode(num);
+        String clientId = Constant.OLD_PHONE_DEVICE_ID_PREFIX + num;
         device.setClientId(clientId);
         device.setPassword(MD5Util.MD5Encode(clientId));
-        device.setGroupId(1);
         deviceService.save(device);
         SetBase setBase = new SetBase();
         setBase.setDeviceId(device.getClientId());

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

@@ -22,7 +22,7 @@ import java.util.Map;
  * create on 2021/2/24
  */
 @RestController
-@RequestMapping("bms/api/pc/admin")
+@RequestMapping("omp/api/pc/admin")
 public class AdminController extends BaseController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/pc/PcDeviceController.java

@@ -17,7 +17,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("bms/api/pc/device")
+@RequestMapping("omp/api/pc/device")
 public class PcDeviceController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/pc/PcLocationController.java

@@ -15,7 +15,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("bms/api/pc/location")
+@RequestMapping("omp/api/pc/location")
 public class PcLocationController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/pc/PcMqttLogController.java

@@ -19,7 +19,7 @@ import java.util.HashMap;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("bms/api/pc/logs")
+@RequestMapping("omp/api/pc/logs")
 public class PcMqttLogController {
 
     @Resource

+ 8 - 7
src/main/java/com/zy/bms/controller/pc/PcSetController.java

@@ -1,5 +1,6 @@
 package com.zy.bms.controller.pc;
 
+import com.zy.bms.common.Constant;
 import com.zy.bms.common.ServerResponse;
 import com.zy.bms.common.io.wechat.SetIO;
 import com.zy.bms.service.SetBaseService;
@@ -15,7 +16,7 @@ import javax.annotation.Resource;
  * create on 2021/3/3
  */
 @RestController
-@RequestMapping("bms/api/pc/set")
+@RequestMapping("omp/api/pc/set")
 public class PcSetController {
 
     @Resource
@@ -38,7 +39,7 @@ public class PcSetController {
      */
     @PostMapping("volume.do")
     public ServerResponse setVolume(SetIO io) {
-        setService.setVolume(io);
+        setService.set(Constant.M_CODE_VOLUME, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -47,7 +48,7 @@ public class PcSetController {
      */
     @PostMapping("gpsRate.do")
     public ServerResponse setGpsRate(SetIO io) {
-        setService.setGpsRate(io);
+        setService.set(Constant.M_CODE_GPS_RATE, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -58,7 +59,7 @@ public class PcSetController {
      */
     @PostMapping("autoAnswer.do")
     public ServerResponse setAutoAnswer(SetIO io) {
-        setService.setAutoAnswer(io);
+        setService.set(Constant.M_CODE_AUTO_ANSWER, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -67,7 +68,7 @@ public class PcSetController {
      */
     @PostMapping("news.do")
     public ServerResponse setNews(SetIO io) {
-        setService.setNews(io);
+        setService.set(Constant.M_CODE_NEWS, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -76,7 +77,7 @@ public class PcSetController {
      */
     @PostMapping("sos.do")
     public ServerResponse setSOS(SetIO io) {
-        setService.setSOS(io);
+        setService.set(Constant.M_CODE_SOS, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -85,7 +86,7 @@ public class PcSetController {
      */
     @PostMapping("continue.do")
     public ServerResponse setContinue(SetIO io) {
-        setService.setContinue(io);
+        setService.set(Constant.M_CODE_CONTINUE_GPS, io);
         return ServerResponse.createBySuccess();
     }
 }

+ 1 - 1
src/main/java/com/zy/bms/controller/pc/PcUserController.java

@@ -16,7 +16,7 @@ import javax.annotation.Resource;
  * Create on 2020/8/1
  */
 @RestController
-@RequestMapping("bms/api/pc/user")
+@RequestMapping("omp/api/pc/user")
 public class PcUserController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/DeviceController.java

@@ -17,7 +17,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("zy4g/api/device")
+@RequestMapping("omp/api/wx/device")
 public class DeviceController extends BaseController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/IdiomsController.java

@@ -17,7 +17,7 @@ import javax.annotation.Resource;
  * create on 2021/1/22
  */
 @RestController
-@RequestMapping("zy4g/api/idioms")
+@RequestMapping("omp/api/wx/idioms")
 public class IdiomsController extends BaseController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/LocationController.java

@@ -19,7 +19,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("zy4g/api/location")
+@RequestMapping("omp/api/wx/location")
 public class LocationController extends BaseController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/RelationController.java

@@ -20,7 +20,7 @@ import javax.annotation.Resource;
  * Create on 2020/8/1
  */
 @RestController
-@RequestMapping("zy4g/api/relation")
+@RequestMapping("omp/api/wx/relation")
 public class RelationController extends BaseController {
 
     @Resource

+ 9 - 8
src/main/java/com/zy/bms/controller/wx/SetController.java

@@ -1,5 +1,6 @@
 package com.zy.bms.controller.wx;
 
+import com.zy.bms.common.Constant;
 import com.zy.bms.common.ServerResponse;
 import com.zy.bms.common.controller.BaseController;
 import com.zy.bms.common.io.wechat.*;
@@ -16,7 +17,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("zy4g/api/set")
+@RequestMapping("omp/api/wx/set")
 public class SetController extends BaseController {
 
     @Resource
@@ -27,7 +28,7 @@ public class SetController extends BaseController {
     /**
      * 校验设备是否是该用户的设备
      */
-    private boolean verify(SimpleSetIO io) {
+    private boolean verify(SetIO io) {
         boolean flag = relationService.checkDeviceIsBelongByDeviceId(getUserId(), io.getDeviceId());
         if (!flag) {
             System.out.println("非法请求----" + getUserId() + "-----" + io.getDeviceId());
@@ -40,7 +41,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("volume.do")
     public ServerResponse setVolume(SetIO io) {
-        if (verify(io)) setService.setVolume(io);
+        if (verify(io)) setService.set(Constant.M_CODE_VOLUME, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -49,7 +50,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("gpsRate.do")
     public ServerResponse gpsRate(SetIO io) {
-        if (verify(io)) setService.setGpsRate(io);
+        if (verify(io)) setService.set(Constant.M_CODE_GPS_RATE, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -60,7 +61,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("autoAnswer.do")
     public ServerResponse setAutoAnswer(SetIO io) {
-        if (verify(io)) setService.setAutoAnswer(io);
+        if (verify(io)) setService.set(Constant.M_CODE_AUTO_ANSWER, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -69,7 +70,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("news.do")
     public ServerResponse setNews(SetIO io) {
-        if (verify(io)) setService.setNews(io);
+        if (verify(io)) setService.set(Constant.M_CODE_NEWS, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -78,7 +79,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("sos.do")
     public ServerResponse setSOS(SetIO io) {
-        if (verify(io)) setService.setSOS(io);
+        if (verify(io)) setService.set(Constant.M_CODE_SOS, io);
         return ServerResponse.createBySuccess();
     }
 
@@ -87,7 +88,7 @@ public class SetController extends BaseController {
      */
     @PostMapping("continue.do")
     public ServerResponse setContinue(SetIO io) {
-        if (verify(io)) setService.setContinue(io);
+        if (verify(io)) setService.set(Constant.M_CODE_CONTINUE_GPS, io);
         return ServerResponse.createBySuccess();
     }
 }

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/SetInfoController.java

@@ -21,7 +21,7 @@ import javax.annotation.Resource;
  * create on 2021/1/21
  */
 @RestController
-@RequestMapping("zy4g/api/setInfo")
+@RequestMapping("omp/api/wx/setInfo")
 public class SetInfoController extends BaseController {
 
     @Resource

+ 1 - 1
src/main/java/com/zy/bms/controller/wx/UserController.java

@@ -17,7 +17,7 @@ import javax.annotation.Resource;
  * Create on 2020/8/1
  */
 @RestController
-@RequestMapping("zy4g/api/user")
+@RequestMapping("omp/api/wx/user")
 public class UserController {
     @Resource
     private UserService userService;

+ 0 - 14
src/main/java/com/zy/bms/model/Admin.java

@@ -29,25 +29,11 @@ public class Admin {
      */
     private String nickname;
 
-    /**
-     * 手机号
-     */
-    private String phone;
-
     /**
      * 密码
      */
     private String password;
 
-    /**
-     * 角色ID
-     */
-    private Integer role;
-
-    /**
-     * 状态 0停用 1启用
-     */
-    private Integer status;
 
     /**
      * 创建时间

+ 0 - 5
src/main/java/com/zy/bms/model/Device.java

@@ -45,11 +45,6 @@ public class Device {
      */
     private Integer status;
 
-    /**
-     * 设备组
-     */
-    private Integer groupId;
-
     /**
      * 设备名
      */

+ 0 - 57
src/main/java/com/zy/bms/model/Group.java

@@ -1,57 +0,0 @@
-package com.zy.bms.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * <p>
- * 项目组
- * </p>
- *
- * @author chenyi
- * @since 2021-05-19
- */
-@Data
-@TableName("item_group")
-public class Group implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId
-    private Integer id;
-
-    /**
-     * 项目ID
-     */
-    private Integer itemId;
-
-    /**
-     * 项目组编号
-     */
-    private String code;
-
-    /**
-     * 项目组名称
-     */
-    private String name;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-    /**
-     * 0:禁用 1:启用
-     */
-    private Integer status;
-
-}

+ 0 - 53
src/main/java/com/zy/bms/model/Item.java

@@ -1,53 +0,0 @@
-package com.zy.bms.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * <p>
- * 项目表
- * </p>
- *
- * @author chenyi
- * @since 2021-05-19
- */
-@Data
-@TableName("item")
-public class Item implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId
-    private Integer id;
-
-    /**
-     * 项目代号
-     */
-    private String code;
-
-    /**
-     * 项目名
-     */
-    private String name;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-    /**
-     * 0:禁用 1:启用
-     */
-    private Integer status;
-
-
-}

+ 0 - 43
src/main/java/com/zy/bms/model/Role.java

@@ -1,43 +0,0 @@
-package com.zy.bms.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * <p>
- * 角色表
- * </p>
- *
- * @author chenyi
- * @since 2021-05-19
- */
-@Data
-@TableName("role")
-public class Role implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId
-    private Integer id;
-
-    /**
-     * 角色名
-     */
-    private String name;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 0 - 11
src/main/java/com/zy/bms/model/User.java

@@ -21,17 +21,6 @@ import java.time.LocalDateTime;
 public class User {
     @TableId
     private Integer id;
-
-    /**
-     * 用户名
-     */
-    private String username;
-
-    /**
-     * 密码
-     */
-    private String password;
-
     /**
      * 手机号
      */

+ 13 - 0
src/main/java/com/zy/bms/service/DeviceLocationService.java

@@ -7,6 +7,7 @@ import com.zy.bms.common.vo.LocationHistoryVo;
 import com.zy.bms.mapper.DeviceLocationMapper;
 import com.zy.bms.model.DeviceLocation;
 import com.zy.bms.model.LatestLocation;
+import com.zy.bms.utils.BeanUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -24,6 +25,18 @@ public class DeviceLocationService extends ServiceImpl<DeviceLocationMapper, Dev
     @Resource
     private LatestLocationService latestLocationService;
 
+    /**
+     * 保存位置信息
+     */
+    public void saveLocation(DeviceLocation entity) {
+        save(entity);
+        //更新最新的位置信息
+        QueryWrapper<LatestLocation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("deviceId", entity.getDeviceId());
+        LatestLocation latestLocation = BeanUtil.cast(entity, LatestLocation.class);
+        latestLocationService.saveOrUpdate(latestLocation, queryWrapper);
+    }
+
     /**
      * 获取设备的最新位置信息
      *

+ 0 - 13
src/main/java/com/zy/bms/service/LatestLocationService.java

@@ -1,12 +1,9 @@
 package com.zy.bms.service;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.bms.common.vo.DeviceFullDataVo;
 import com.zy.bms.mapper.LatestLocationMapper;
-import com.zy.bms.model.DeviceLocation;
 import com.zy.bms.model.LatestLocation;
-import com.zy.bms.utils.BeanUtil;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -20,16 +17,6 @@ import java.util.List;
 @Service
 public class LatestLocationService extends ServiceImpl<LatestLocationMapper, LatestLocation> {
 
-    /**
-     * 存储最新的位置信息
-     */
-    public void saveLatestLocation(DeviceLocation location) {
-        QueryWrapper<LatestLocation> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("deviceId", location.getDeviceId());
-        LatestLocation entity = BeanUtil.cast(location, LatestLocation.class);
-        saveOrUpdate(entity, queryWrapper);
-    }
-
     /**
      * 获取所有设备最新的位置信息
      */

+ 2 - 3
src/main/java/com/zy/bms/service/MqttLogService.java

@@ -29,14 +29,13 @@ public class MqttLogService extends ServiceImpl<MqttLogMapper, MqttLog> {
     public void saveLog(String topic, String payload, Integer tag) {
         MqttLog mqttLog = new MqttLog();
         mqttLog.setTopic(topic);
-        //mqtt日志类型
+        //mqtt 日志类型
         mqttLog.setTag(tag);
         //获取消息解析对象
         MqttMsgDto mqttMsgDto = MqttMsgDto.parse(payload);
         String regTopic = tag == 0 ? Constant.TOPIC_REGISTER_SERVER : Constant.TOPIC_REGISTER_CLIENT;
         //区分注册报文和普通报文,注册报文取设备随机码
-        mqttLog.setDeviceId(topic.equals(regTopic) ?
-                mqttMsgDto.getString("regnum") : mqttMsgDto.getDeviceId());
+        mqttLog.setDeviceId(topic.equals(regTopic) ? mqttMsgDto.getString("regnum") : mqttMsgDto.getDeviceId());
         //mqtt 指令
         mqttLog.setInstruction(mqttMsgDto.getM());
         mqttLog.setContent(payload);

+ 44 - 60
src/main/java/com/zy/bms/service/SetService.java

@@ -3,15 +3,17 @@ package com.zy.bms.service;
 import com.zy.bms.common.Constant;
 import com.zy.bms.common.dto.MqttMsgDto;
 import com.zy.bms.config.mqtt.MqttGateway;
+import com.zy.bms.model.Device;
 import com.zy.bms.model.SetBase;
 import com.zy.bms.model.SetNews;
 import com.zy.bms.utils.BeanUtil;
 import com.zy.bms.common.io.wechat.*;
+import com.zy.bms.websocket.WebSocketServer;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.time.LocalDateTime;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 设备设置 Service
@@ -30,76 +32,58 @@ public class SetService {
     private MqttGateway mqttGateway;
     @Resource
     private MqttLogService mqttLogService;
+    @Resource
+    private WebSocketServer webSocketServer;
 
     /**
-     * 设置音量
-     */
-    public void setVolume(SetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setVolume(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 设置定位频率
-     */
-    public void setGpsRate(SetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setGpsRate(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 自动接听
-     */
-    public void setAutoAnswer(SetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setAutoAnswer(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 设置语音播报
-     */
-    public void setNews(SetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.sendNews(io);
-        //保存数据库
-        SetNews entity = BeanUtil.cast(io, SetNews.class);
-        entity.setCreateTime(LocalDateTime.now());
-        setNewsService.save(entity);
-    }
-
-    /**
-     * 设置SOS紧急呼叫
+     * 设置设备
+     *
+     * @param code 设置指令
+     * @param io   设置信息
      */
-    public void setSOS(SetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setSOS(io);
-        //保存数据库
-        saveBaseSet(io);
+    public void set(String code, SetIO io) {
+        MqttMsgDto msgDto = getMqttMsgDtoByCode(code, io);
+        // 1. 向设备发送设置指令
+        mqttGateway.sendMsgToMqtt(msgDto.toJson(), io.getTopic());
+        // 2. 设置信息保存至数据库
+        saveToDataBase(code, io);
+        // 3. 存储消息日志
+        mqttLogService.saveLog(io.getTopic(), msgDto.toJson(), 1);
+        // 4. 消息转发前端webSocket
+        String deviceId = io.getTopic().split("/")[1];
+        webSocketServer.massMessage(deviceId, msgDto.toJson());
     }
 
     /**
-     * 设置持续定位
+     * 服务器返回授权码
      */
-    public void setContinue(SetIO io) {
+    public void returnCodeToDevice(Device device) {
         //发送模板消息给设备
-        setToDeviceService.setContinue(io);
-        //保存数据库
-        saveBaseSet(io);
+        MqttMsgDto msgDto = new MqttMsgDto();
+        msgDto.setM(Constant.M_CODE_RETURN_CODE);
+        msgDto.setR(Constant.TOPIC_REGISTER_CLIENT);
+        msgDto.setT(Constant.TOPIC_REGISTER_SERVER);
+        Map<String, Object> data = new HashMap<>();
+        data.put("regnum", device.getNum());
+        data.put("deviceid", device.getClientId());
+        data.put("password", device.getPassword());
+        msgDto.setData(data);
+        // 3. 存储消息日志
+        mqttLogService.saveLog(Constant.TOPIC_REGISTER_CLIENT, msgDto.toJson(), 1);
     }
 
     /**
-     * 保存基本设置数据
+     * 存储至数据库
      */
-    private void saveBaseSet(SetIO io) {
-        //保存数据库
-        SetBase entity = BeanUtil.cast(io, SetBase.class);
-        setBaseService.updateByDeviceId(entity);
+    private void saveToDataBase(String code, SetIO io) {
+        //发送语音播报单独处理
+        if (code.equals(Constant.M_CODE_NEWS)) {
+            SetNews entity = BeanUtil.cast(io, SetNews.class);
+            setNewsService.save(entity);
+        } else {
+            SetBase entity = BeanUtil.cast(io, SetBase.class);
+            setBaseService.updateByDeviceId(entity);
+        }
     }
 
     /**

+ 0 - 140
src/main/java/com/zy/bms/service/SetToDeviceService.java

@@ -1,140 +0,0 @@
-package com.zy.bms.service;
-
-import com.zy.bms.common.Constant;
-import com.zy.bms.config.mqtt.MqttGateway;
-import com.zy.bms.model.Device;
-import com.zy.bms.common.dto.MqttMsgDto;
-import com.zy.bms.common.io.wechat.*;
-import com.zy.bms.websocket.WebSocketServer;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 设置设备服务类,发送远程消息
- *
- * @author yang xiao kun
- * create on 2021/2/1
- */
-@Component
-public class SetToDeviceService {
-    @Resource
-    private MqttGateway mqttGateway;
-    @Resource
-    private MqttLogService mqttLogService;
-    @Resource
-    private WebSocketServer webSocketServer;
-
-    /**
-     * 发送消息
-     *
-     * @param payload 消息
-     * @param topic   主题
-     */
-    private void sendMsgToMqtt(String topic, String payload) {
-        // 发送消息
-        mqttGateway.sendMsgToMqtt(payload, topic);
-        // 存储消息日志
-        mqttLogService.saveLog(topic, payload, 1);
-        // 消息转发前端webSocket
-        if (!topic.equals(Constant.TOPIC_REGISTER_CLIENT)) {
-            String deviceId = topic.split("/")[1];
-            webSocketServer.massMessage(deviceId, payload);
-        }
-    }
-
-    /**
-     * 设置音量
-     * 铃声音量暂时不可用 ringvol 参数暂时没用
-     *
-     * @param io 设置参数
-     */
-    public void setVolume(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_VOLUME, io.getDeviceId());
-        msg.set("msgvol", io.getMsgVol())
-                .set("phonevol", io.getPhoneVol())
-                .set("msgtype", 1);
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 设置定位频率
-     *
-     * @param io 设置参数
-     */
-    public void setGpsRate(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_GPS_RATE, io.getDeviceId());
-        msg.set("GPS_rate", io.getGpsRate());
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 自动接听
-     *
-     * @param io 设置参数
-     */
-    public void setAutoAnswer(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_AUTO_ANSWER, io.getDeviceId());
-        msg.set("autoanswer", io.getAutoAnswer());
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 设置语音播报
-     */
-    public void sendNews(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_NEWS, io.getDeviceId());
-        msg.set("newstype", io.getNewsType())
-                .set("newstime", io.getNewsTime())
-                .set("news", io.getNews());
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 设置SOS紧急呼叫
-     */
-    public void setSOS(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_SOS, io.getDeviceId());
-        msg.set("key0_name", io.getKey0Name())
-                .set("key0_phone", io.getKey0Phone())
-                .set("key1_name", io.getKey1Name())
-                .set("key1_phone", io.getKey1Phone())
-                .set("key2_name", io.getKey2Name())
-                .set("key2_phone", io.getKey2Phone());
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 设置持续定位
-     */
-    public void setContinue(SetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_CONTINUE_GPS, io.getDeviceId());
-        msg.set("highfreq", io.getHighFreq());
-        sendMsgToMqtt(io.getTopic(), msg.toJson());
-    }
-
-    /**
-     * 服务器返回授权码
-     */
-    public void returnCodeToDevice(Device device) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto();
-        msg.setM(Constant.M_CODE_RETURN_CODE);
-        msg.setR(Constant.TOPIC_REGISTER_CLIENT);
-        msg.setT(Constant.TOPIC_REGISTER_SERVER);
-        Map<String, Object> data = new HashMap<>();
-        data.put("regnum", device.getNum());
-        data.put("deviceid", device.getClientId());
-        data.put("password", device.getPassword());
-        msg.setData(data);
-        sendMsgToMqtt(Constant.TOPIC_REGISTER_CLIENT, msg.toJson());
-    }
-}

+ 3 - 0
src/main/java/com/zy/bms/websocket/WebSocketServer.java

@@ -10,6 +10,9 @@ import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+/**
+ * webSocket 监听器
+ */
 @Component
 @ServerEndpoint("/webSocket/{deviceId}")
 public class WebSocketServer {