1
0

4 Commits 8a0e42eb43 ... 49f5b434a6

Autor SHA1 Nachricht Datum
  chenyi406 49f5b434a6 微信小程序接口完成 vor 2 Jahren
  chenyi406 c22f7ba6cf Merge remote-tracking branch 'origin/master' vor 2 Jahren
  chenyi406 31f15efc16 Merge remote-tracking branch 'origin/master' vor 3 Jahren
  chenyi406 fb3bfbb1d0 修复路牌接口BUG vor 3 Jahren

+ 1 - 1
src/main/java/com/zy/omp/config/BeanConfig.java

@@ -45,7 +45,7 @@ public class BeanConfig {
      * ServerEndpointExporter 作用
      * 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint
      */
-    @Bean
+    //@Bean
     public ServerEndpointExporter serverEndpointExporter() {
         return new ServerEndpointExporter();
     }

+ 6 - 5
src/main/java/com/zy/omp/config/mqtt/MqttCallbackHandler.java

@@ -14,6 +14,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 
 /**
  * MQTT 消息返回处理类
@@ -35,8 +36,8 @@ public class MqttCallbackHandler {
     private DeviceSetService deviceSetService;
     @Resource
     private SetService setService;
-    @Resource
-    private WebSocketServer webSocketServer;
+    //@Resource
+    //private WebSocketServer webSocketServer;
     @Resource
     private CallRecordsService callRecordsService;
     @Resource
@@ -73,9 +74,9 @@ public class MqttCallbackHandler {
             }
         }
         //转发消息至网页,忽略注册的报文
-        if (!topic.equals(Constant.TOPIC_REGISTER_SERVER)) {
-            webSocketServer.massMessage(msgDto.getOpenNum(), payload);
-        }
+//        if (!topic.equals(Constant.TOPIC_REGISTER_SERVER)) {
+//            webSocketServer.massMessage(msgDto.getOpenNum(), payload);
+//        }
     }
 
     /**

+ 37 - 6
src/main/java/com/zy/omp/controller/wx/DeviceController.java

@@ -2,6 +2,7 @@ package com.zy.omp.controller.wx;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zy.omp.common.ServerResponse;
 import com.zy.omp.common.controller.BaseController;
 import com.zy.omp.model.Device;
@@ -34,13 +35,29 @@ public class DeviceController extends BaseController {
     private DeviceService deviceService;
 
     /**
-     * 查询用户设备的最新数据
+     * 查询用户默认设备的最新数据
      */
     @GetMapping("getLatestState.do")
     public ServerResponse getLatestState() {
         return ServerResponse.createBySuccess(deviceInfoStateService.getLatestState(getOpenId()));
     }
 
+    /**
+     * 查询用户默认设备
+     */
+    @GetMapping("getDefaultDevice.do")
+    public ServerResponse getDefaultDevice() {
+        return ServerResponse.createBySuccess(relationService.getDefaultByOpenId(getOpenId()));
+    }
+
+    /**
+     * 查询用户所有的设备
+     */
+    @GetMapping("getListByOpenId.do")
+    public ServerResponse getListByOpenId() {
+        return ServerResponse.createBySuccess(relationService.getListByOpenId(getOpenId()));
+    }
+
     /**
      * 设置默认设备
      */
@@ -69,14 +86,12 @@ public class DeviceController extends BaseController {
      * 添加绑定关系
      */
     @PostMapping("bind.do")
-    public ServerResponse bind(String openNum) {
+    public ServerResponse bind(Relation relation) {
         //校验设备码有效性
-        if (deviceService.getOne(new QueryWrapper<Device>().eq("openNum", openNum)) == null)
+        if (deviceService.getOne(new QueryWrapper<Device>().eq("openNum", relation.getOpenNum())) == null)
             return ServerResponse.createByWarning("设备码无效!");
         //校验是否有绑定关系
-        if (relationService.checkBind(openNum)) return ServerResponse.createByWarning("该设备已经有用户绑定!");
-        Relation relation = new Relation();
-        relation.setOpenNum(openNum);
+        if (relationService.checkBind(relation.getOpenNum())) return ServerResponse.createByWarning("该设备已经有用户绑定!");
         relation.setOpenId(getOpenId());
         relationService.save(relation);
         return ServerResponse.createBySuccess();
@@ -93,4 +108,20 @@ public class DeviceController extends BaseController {
         return ServerResponse.createBySuccess();
     }
 
+    /**
+     * 修改默认设备
+     * 即登陆以后使用那个设备
+     *
+     * @param openNum 设备码
+     */
+    @PostMapping("changeDefault.do")
+    public ServerResponse changeDefault(String openNum) {
+        //删除上一个默认设备
+        relationService.update(Wrappers.<Relation>lambdaUpdate().eq(Relation::getIsDefault, 1)
+                .eq(Relation::getOpenId, getOpenId()).set(Relation::getIsDefault, 0));
+        //添加新的默认设备
+        relationService.update(Wrappers.<Relation>lambdaUpdate().eq(Relation::getOpenNum, openNum)
+                .set(Relation::getIsDefault, 1));
+        return ServerResponse.createBySuccess();
+    }
 }

+ 1 - 1
src/main/java/com/zy/omp/controller/wx/SetController.java

@@ -32,7 +32,7 @@ public class SetController extends BaseController {
      * 校验设备是否是该用户的设备
      */
     private boolean verify(DeviceSet param) {
-        boolean flag = relationService.checkBelong(getOpenId(), param.getOpenNum());
+        boolean flag = relationService.checkBelong(param.getOpenNum(), getOpenId());
         if (!flag) {
             log.error("非法请求 -- openId: " + getOpenId() + "openNum: " + param.getOpenNum());
         }

+ 9 - 9
src/main/java/com/zy/omp/controller/wx/SetInfoController.java

@@ -34,32 +34,32 @@ public class SetInfoController extends BaseController {
      * 查询设备的音量设置
      * 系统音量,通话音量,铃声音量
      *
-     * @param deviceId 设备ID
+     * @param openNum 设备ID
      */
     @GetMapping("volume.do")
-    public ServerResponse volume(String deviceId) {
-        return ServerResponse.createBySuccess(deviceSetService.getVolumeSet(deviceId));
+    public ServerResponse volume(String openNum) {
+        return ServerResponse.createBySuccess(deviceSetService.getVolumeSet(openNum));
     }
 
     /**
      * 查询设备的其他设置
      * 自动接听,定位频率,连续定位设置
      *
-     * @param deviceId 设备ID
+     * @param openNum 设备ID
      */
     @GetMapping("other.do")
-    public ServerResponse other(String deviceId) {
-        return ServerResponse.createBySuccess(deviceSetService.getOtherSet(deviceId));
+    public ServerResponse other(String openNum) {
+        return ServerResponse.createBySuccess(deviceSetService.getOtherSet(openNum));
     }
 
     /**
      * 获取SOS按键设置
      *
-     * @param deviceId 设备ID
+     * @param openNum 设备ID
      */
     @GetMapping("sos.do")
-    public ServerResponse sos(String deviceId) {
-        return ServerResponse.createBySuccess(deviceSetService.getSosSet(deviceId));
+    public ServerResponse sos(String openNum) {
+        return ServerResponse.createBySuccess(deviceSetService.getSosSet(openNum));
     }
 
     /**

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

@@ -1,7 +1,10 @@
 package com.zy.omp.controller.wx;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.zy.omp.common.ServerResponse;
+import com.zy.omp.model.Relation;
 import com.zy.omp.model.User;
+import com.zy.omp.service.RelationService;
 import com.zy.omp.service.UserService;
 import com.zy.omp.utils.AesUtils;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -9,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 用户信息相关
@@ -22,6 +27,9 @@ public class UserController {
     @Resource
     private UserService userService;
 
+    @Resource
+    private RelationService relationService;
+
     /**
      * 微信登录
      *
@@ -36,6 +44,13 @@ public class UserController {
         if (userService.getByOpenId(openId) == null) {
             userService.save(new User(openId));
         }
-        return ServerResponse.createBySuccess(AesUtils.encrypt(openId));
+        Map<String, String> result = new HashMap<>();
+        result.put("userId", AesUtils.encrypt(openId));
+        //用户默认设备ID
+        Relation relation = relationService.getDefaultByOpenId(openId);
+        if (relation != null) {
+            result.put("openNum", relation.getOpenNum());
+        }
+        return ServerResponse.createBySuccess(result);
     }
 }

+ 2 - 4
src/main/java/com/zy/omp/mapper/DeviceInfoStateMapper.java

@@ -7,8 +7,6 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
-
 /**
  * 设备状态信息
  *
@@ -20,9 +18,9 @@ import java.util.List;
 public interface DeviceInfoStateMapper extends BaseMapper<DeviceInfoState> {
 
     /**
-     * 通过用户openId 查询该用户的设备集合
+     * 通过用户openId 查询该用户的默认设备
      *
      * @param openId 用户openId
      */
-    List<WxLatestDeviceState> listByUserId(@Param("openId") String openId);
+    WxLatestDeviceState getDefaultByOpenId(@Param("openId") String openId);
 }

+ 0 - 4
src/main/java/com/zy/omp/service/DeviceInfoRecordService.java

@@ -2,13 +2,9 @@ package com.zy.omp.service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.omp.mapper.DeviceInfoRecordMapper;
-import com.zy.omp.mapper.DeviceInfoStateMapper;
 import com.zy.omp.model.DeviceInfoRecord;
-import com.zy.omp.model.DeviceInfoState;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * 设备位置信息相关
  *

+ 1 - 8
src/main/java/com/zy/omp/service/DeviceInfoStateService.java

@@ -6,8 +6,6 @@ import com.zy.omp.model.DeviceInfoState;
 import com.zy.omp.pojo.vo.WxLatestDeviceState;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * 设备位置信息相关
  *
@@ -23,11 +21,6 @@ public class DeviceInfoStateService extends ServiceImpl<DeviceInfoStateMapper, D
      * @param openId 用户openId
      */
     public WxLatestDeviceState getLatestState(String openId) {
-        //用户设备列表
-        List<WxLatestDeviceState> devices = baseMapper.listByUserId(openId);
-        if (devices != null && !devices.isEmpty()) {
-            return devices.get(0);
-        }
-        return null;
+        return baseMapper.getDefaultByOpenId(openId);
     }
 }

+ 6 - 6
src/main/java/com/zy/omp/service/DeviceSetService.java

@@ -31,30 +31,30 @@ public class DeviceSetService extends ServiceImpl<DeviceSetMapper, DeviceSet> {
     /**
      * 获取音量设置信息
      */
-    public DeviceSet getVolumeSet(String deviceId) {
+    public DeviceSet getVolumeSet(String openNum) {
         QueryWrapper<DeviceSet> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("openNum", "msgVol", "phoneVol", "ringVol");
-        queryWrapper.eq("openNum", deviceId);
+        queryWrapper.eq("openNum", openNum);
         return baseMapper.selectOne(queryWrapper);
     }
 
     /**
      * 获取SOS设置信息
      */
-    public DeviceSet getSosSet(String deviceId) {
+    public DeviceSet getSosSet(String openNum) {
         QueryWrapper<DeviceSet> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("openNum", "key0Name", "key0Phone", "key1Name", "key1Phone", "key2Name", "key2Phone");
-        queryWrapper.eq("openNum", deviceId);
+        queryWrapper.eq("openNum", openNum);
         return baseMapper.selectOne(queryWrapper);
     }
 
     /**
      * 获取其他设置设置信息
      */
-    public DeviceSet getOtherSet(String deviceId) {
+    public DeviceSet getOtherSet(String openNum) {
         QueryWrapper<DeviceSet> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("openNum", "autoAnswer", "gpsRate", "highFreq");
-        queryWrapper.eq("openNum", deviceId);
+        queryWrapper.eq("openNum", openNum);
         return baseMapper.selectOne(queryWrapper);
     }
 }

+ 26 - 0
src/main/java/com/zy/omp/service/RelationService.java

@@ -1,10 +1,13 @@
 package com.zy.omp.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.omp.mapper.RelationMapper;
 import com.zy.omp.model.Relation;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 用户设备绑定关系Service
  *
@@ -14,6 +17,29 @@ import org.springframework.stereotype.Service;
 @Service
 public class RelationService extends ServiceImpl<RelationMapper, Relation> {
 
+    /**
+     * 查询用户的所有设备
+     *
+     * @param openId 用户ID
+     */
+    public Relation getDefaultByOpenId(String openId) {
+        QueryWrapper<Relation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("openId", openId)
+                .eq("isDefault", 1);
+        return baseMapper.selectOne(queryWrapper);
+    }
+
+    /**
+     * 查询用户的所有设备
+     *
+     * @param openId 用户ID
+     */
+    public List<Relation> getListByOpenId(String openId) {
+        QueryWrapper<Relation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("openId", openId)
+                .orderByDesc("isDefault", "updateTime");
+        return baseMapper.selectList(queryWrapper);
+    }
 
     /**
      * 查询设备是否有绑定关系

+ 3 - 3
src/main/java/com/zy/omp/service/SetService.java

@@ -30,8 +30,8 @@ public class SetService {
     private MqttGateway mqttGateway;
     @Resource
     private MqttLogService mqttLogService;
-    @Resource
-    private WebSocketServer webSocketServer;
+//    @Resource
+//    private WebSocketServer webSocketServer;
 
     /**
      * 存储语音播报
@@ -47,7 +47,7 @@ public class SetService {
         // 3. 存储消息日志
         mqttLogService.saveSendLog(topic, msgDto.toJson());
         // 4. 消息转发前端webSocket
-        webSocketServer.massMessage(news.getOpenNum(), msgDto.toJson());
+        //webSocketServer.massMessage(news.getOpenNum(), msgDto.toJson());
     }
 
     /**

+ 2 - 2
src/main/java/com/zy/omp/websocket/WebSocketServer.java

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

+ 7 - 9
src/main/resources/mapper/DeviceInfoStateMapping.xml

@@ -2,14 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.omp.mapper.DeviceInfoStateMapper">
 
-    <select id="listByUserId" resultType="com.zy.omp.pojo.vo.WxLatestDeviceState">
-        SELECT
-            t1.deviceName,
-            t2.*
-        FROM
-            relation t1
-        LEFT JOIN device_info_state t2 ON t1.openNum = t2.openNum
-            WHERE t1.openId = #{openId}
-        ORDER BY t1.isDefault,t1.updateTime DESC
+    <select id="getDefaultByOpenId" resultType="com.zy.omp.pojo.vo.WxLatestDeviceState">
+        SELECT t1.deviceName,
+               t2.*
+        FROM relation t1
+                 LEFT JOIN device_info_state t2 ON t1.openNum = t2.openNum
+        WHERE t1.openId = #{openId}
+          AND t1.isDefault = 1
     </select>
 </mapper>