|
@@ -0,0 +1,438 @@
|
|
|
+package com.welampiot.controller;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.welampiot.common.BaseResult;
|
|
|
+import com.welampiot.common.InterfaceResultEnum;
|
|
|
+import com.welampiot.dto.BenchUserInfoDTO;
|
|
|
+import com.welampiot.dto.BenchUserLogDTO;
|
|
|
+import com.welampiot.dto.LampPoleDTO;
|
|
|
+import com.welampiot.dto.WifiDTO;
|
|
|
+import com.welampiot.service.*;
|
|
|
+import com.welampiot.utils.ToolUtils;
|
|
|
+import com.welampiot.vo.BenchDevInfoVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.CrossOrigin;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@CrossOrigin
|
|
|
+@RequestMapping("/benchCommon")
|
|
|
+public class benchCommonController {
|
|
|
+ @Autowired
|
|
|
+ private ToolUtils toolUtils;
|
|
|
+ @Autowired
|
|
|
+ private BenchUserInfoService benchUserInfoService;
|
|
|
+ @Autowired
|
|
|
+ private BenchDevInfoService benchDevInfoService;
|
|
|
+ @Autowired
|
|
|
+ private LampPoleService lampPoleService;
|
|
|
+ @Autowired
|
|
|
+ private WifiService wifiService;
|
|
|
+ @Autowired
|
|
|
+ private BenchUserLogService benchUserLogService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 登录
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> login(HttpServletRequest request) {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
|
|
|
+ Integer code = request.getParameter("code") == null ? 0 : Integer.parseInt(request.getParameter("code"));
|
|
|
+ String nickname = request.getParameter("nickname");
|
|
|
+ String avaurl = request.getParameter("avaurl");
|
|
|
+ String sex = request.getParameter("sex");
|
|
|
+ String appid = "wx2a33d29d59659327";
|
|
|
+ String secret = "76beab10aad5b7c072dc249b16337c51";
|
|
|
+ String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+secret+"&js_code="+code+"&grant_type=authorization_code";
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String currentTime = simpleDateFormat.format(new Date());
|
|
|
+
|
|
|
+ try {
|
|
|
+ String getResult = toolUtils.sendHttp("get", url, null, 5, null, null);
|
|
|
+ JSONObject jsonObject = JSON.parseObject(getResult);
|
|
|
+ Integer errcode = jsonObject.getInteger("errcode");
|
|
|
+ if (errcode != null){
|
|
|
+ //失败
|
|
|
+ BaseResult<Object> objectBaseResult = new BaseResult<>(String.format("%d",errcode), jsonObject.getString("errmsg"), new Object());
|
|
|
+ return objectBaseResult;
|
|
|
+
|
|
|
+ }else {
|
|
|
+ //成功
|
|
|
+ String openid = jsonObject.getString("openid");
|
|
|
+ String sessionKey = jsonObject.getString("session_key");
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openid);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData.getOpenId() == null){
|
|
|
+ //添加数据 - 第一次
|
|
|
+ benchUserInfoDTO.setNickName(nickname);
|
|
|
+ benchUserInfoDTO.setAvaurl(avaurl);
|
|
|
+ benchUserInfoDTO.setSex(sex);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ benchUserInfoDTO.setUpdateTime(currentTime);
|
|
|
+ benchUserInfoDTO.setCreateTime(currentTime);
|
|
|
+ benchUserInfoService.addData(benchUserInfoDTO);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,benchUserInfoDTO);
|
|
|
+ }else {
|
|
|
+ //已经登录过的
|
|
|
+ benchUserInfoDTO.setNickName(nickname);
|
|
|
+ benchUserInfoDTO.setAvaurl(avaurl);
|
|
|
+ benchUserInfoDTO.setSex(sex);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ benchUserInfoDTO.setUpdateTime(currentTime);
|
|
|
+ benchUserInfoService.updateData(benchUserInfoDTO);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,benchUserInfoDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (IOException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ //return toolUtils.response(InterfaceResultEnum.USER_LOGIN_ERROR,version,new Object());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备列表
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/getList", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> getList(HttpServletRequest request) {
|
|
|
+ Integer version = request.getParameter("version") == null? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ String sessionKey = request.getParameter("sessionKey");
|
|
|
+ Integer page = request.getParameter("page") == null? 1 : Integer.valueOf(request.getParameter("page"));
|
|
|
+ Integer count = request.getParameter("count") == null ? 0 : Integer.valueOf(request.getParameter("count"));
|
|
|
+
|
|
|
+ if (openId == null || sessionKey == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ //查询用户是否存在
|
|
|
+ BenchDevInfoVO vo = new BenchDevInfoVO();
|
|
|
+ vo.setList(new ArrayList<>());
|
|
|
+ vo.setTotal(0);
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openId);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData == null) return toolUtils.response(InterfaceResultEnum.USER_EXISTS_ERROR,version,vo);
|
|
|
+
|
|
|
+ HashMap<String, Integer> map = new HashMap<>();
|
|
|
+ map.put("page",page-1);
|
|
|
+ map.put("count",(page-1) * count + count);
|
|
|
+ map.put("version",version);
|
|
|
+ List<BenchDevInfoVO> benchJoinList = benchDevInfoService.getBenchJoinList(map);
|
|
|
+ vo.setList(benchJoinList);
|
|
|
+ vo.setTotal(benchJoinList.size());
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 周边设备
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/getAroundDevice", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> getAroundDevice(HttpServletRequest request) {
|
|
|
+ Integer version = request.getParameter("version") == null? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ String sessionKey = request.getParameter("sessionKey");
|
|
|
+ Double longitude = request.getParameter("longitude") == null ? 0: Double.valueOf(request.getParameter("longitude"));
|
|
|
+ Double latitude = request.getParameter("latitude") == null ? 0: Double.valueOf(request.getParameter("latitude"));
|
|
|
+
|
|
|
+ BenchDevInfoVO vo = new BenchDevInfoVO();
|
|
|
+ vo.setList(new ArrayList<>());
|
|
|
+ vo.setTotal(0);
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openId);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData == null) return toolUtils.response(InterfaceResultEnum.USER_EXISTS_ERROR,version,vo);
|
|
|
+ //查询在线的设备(联合查询: 太阳能板凳,灯杆,云盒)
|
|
|
+ //1. 查询在这个范围内的所有灯杆 - 经纬度
|
|
|
+ //2. 筛选是太阳能板凳的灯杆 - id
|
|
|
+ //3. 筛选云盒,与太阳能板凳同时在线的设备 - 在线
|
|
|
+ HashMap<String, HashMap<String, Double>> map = this.returnSquarePoint(longitude, latitude, 20.0);
|
|
|
+ Double rightBottomLat = map.get("rightBottom").get("lat");//右下纬度
|
|
|
+ Double leftTopLat = map.get("leftTop").get("lat");//左上纬度
|
|
|
+ Double leftTopLng = map.get("leftTop").get("lng");//左上经度
|
|
|
+ Double rightBottomLng = map.get("rightBottom").get("lng");//右下经度
|
|
|
+
|
|
|
+ HashMap<String, Double> hashMap = new HashMap<>();
|
|
|
+ hashMap.put("rightBottomLat",rightBottomLat);
|
|
|
+ hashMap.put("leftTopLat",leftTopLat);
|
|
|
+ hashMap.put("leftTopLng",leftTopLng);
|
|
|
+ hashMap.put("rightBottomLng",rightBottomLng);
|
|
|
+ List<LampPoleDTO> rangeLampPole = lampPoleService.getRangeLampPole(hashMap);
|
|
|
+ ArrayList<Integer> lampPoldIdList = new ArrayList<>();
|
|
|
+ for (LampPoleDTO dto:rangeLampPole) {
|
|
|
+ if (dto.getId() != null){
|
|
|
+ lampPoldIdList.add(dto.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (lampPoldIdList != null && lampPoldIdList.size() > 0){
|
|
|
+ //联合查询相关的板凳的id,online,lamp_pole_id,number
|
|
|
+ List<BenchDevInfoVO> benchInfoByIds = benchDevInfoService.getBenchInfoByIds(lampPoldIdList);
|
|
|
+ vo.setList(benchInfoByIds);
|
|
|
+ vo.setTotal(benchInfoByIds.size());
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ *计算某个经纬度的周围某段距离的正方形的四个点
|
|
|
+ * @param lng float 经度
|
|
|
+ * @param lat float 纬度
|
|
|
+ * @param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米
|
|
|
+ * @return array 正方形的四个点的经纬度坐标
|
|
|
+ */
|
|
|
+ public HashMap<String, HashMap<String, Double>> returnSquarePoint(Double longitude,Double latitude, Double distance) {
|
|
|
+ if (distance == null || distance == 0) distance = 0.5;
|
|
|
+
|
|
|
+ HashMap<String, HashMap<String, Double>> map = new HashMap<>();
|
|
|
+ // 地球半径
|
|
|
+ double earthRadius = 6371.0;
|
|
|
+ // 计算正方形的边长
|
|
|
+ double dlng = 2 * Math.asin(Math.sin(distance / (2 * earthRadius) / Math.cos(Math.toRadians(latitude))));
|
|
|
+ dlng = Math.toDegrees(dlng);
|
|
|
+
|
|
|
+ double dlat = distance / earthRadius;
|
|
|
+ dlat = Math.toDegrees(dlat);
|
|
|
+ // 计算顶点经纬度
|
|
|
+ // 左上顶点
|
|
|
+ HashMap<String, Double> leftTop = new HashMap<>();
|
|
|
+ leftTop.put("lat",latitude + dlat);
|
|
|
+ leftTop.put("lng",longitude - dlng);
|
|
|
+ map.put("leftTop",leftTop);
|
|
|
+ // 右上顶点
|
|
|
+ HashMap<String, Double> rightTop = new HashMap<>();
|
|
|
+ rightTop.put("lat",latitude + dlat);
|
|
|
+ rightTop.put("lng",longitude + dlng);
|
|
|
+ map.put("rightTop",rightTop);
|
|
|
+ // 左下顶点
|
|
|
+ HashMap<String, Double> leftBottom = new HashMap<>();
|
|
|
+ leftBottom.put("lat",latitude - dlat);
|
|
|
+ leftBottom.put("lng",longitude - dlng);
|
|
|
+ map.put("leftBottom",leftBottom);
|
|
|
+ // 右下顶点
|
|
|
+ HashMap<String, Double> rightBottom = new HashMap<>();
|
|
|
+ rightBottom.put("lat",latitude - dlat);
|
|
|
+ rightBottom.put("lng",longitude + dlng);
|
|
|
+ map.put("rightBottom",rightBottom);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 单个设备信息
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/getDevInfo", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> getDevInfo(HttpServletRequest request) {
|
|
|
+ Integer version = request.getParameter("version") == null ? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ String sessionKey = request.getParameter("sessionKey");
|
|
|
+
|
|
|
+ Double devLongitude = request.getParameter("devLongitude") == null ? 0 : Double.valueOf(request.getParameter("devLongitude"));
|
|
|
+ Double devLatitude = request.getParameter("devLatitude") == null ? 0 : Double.valueOf(request.getParameter("devLatitude"));
|
|
|
+ Double curLongitude = request.getParameter("curLongitude") == null ? 0 : Double.valueOf(request.getParameter("curLongitude"));
|
|
|
+ Double curLatitude = request.getParameter("curLatitude") == null ? 0 : Double.valueOf(request.getParameter("curLatitude"));
|
|
|
+ String deviceId = request.getParameter("deviceId");
|
|
|
+ if (openId == null || sessionKey == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openId);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData == null) return toolUtils.response(InterfaceResultEnum.USER_EXISTS_ERROR,version,new Object());
|
|
|
+ HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
+ hashMap.put("version",version);
|
|
|
+ hashMap.put("deviceId",deviceId);
|
|
|
+ List<BenchDevInfoVO> listByDeviceId = benchDevInfoService.getListByDeviceId(hashMap);
|
|
|
+ Double distancefn = this.distancefn(devLatitude, devLongitude, curLatitude, curLongitude, true);
|
|
|
+ BenchDevInfoVO vo = listByDeviceId.get(0);
|
|
|
+ vo.setDistance(distancefn);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
|
|
|
+ }
|
|
|
+ //计算两个坐标之间的距离
|
|
|
+ private Double distancefn(Double lat1, Double lng1,Double lat2, Double lng2, boolean miles ){
|
|
|
+
|
|
|
+ Double pi80 = Math.PI / 180;
|
|
|
+ lat1 *= pi80;
|
|
|
+ lng1 *= pi80;
|
|
|
+ lat2 *= pi80;
|
|
|
+ lng2 *= pi80;
|
|
|
+ Double r = 6372.797; // mean radius of Earth in km
|
|
|
+ Double dlat = lat2 - lat1;
|
|
|
+ Double dlng = lng2 - lng1;
|
|
|
+ Double a = Math.sin(dlat / 2) * Math.sin(dlat / 2) + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dlng / 2) * Math.sin(dlng /2);
|
|
|
+ Double c = 2 * Math.atan2(Math.sqrt(a),Math.sqrt(1-a));
|
|
|
+ Double km = r * c;
|
|
|
+ return (miles ? (km * 0.621371192) : km);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 连接设备
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/connectDevice", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> connectDevice(HttpServletRequest request) throws UnsupportedEncodingException {
|
|
|
+ Integer version = request.getParameter("version") == null ? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String sessionKey = request.getParameter("sessionKey");
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ String deviceId = request.getParameter("deviceId");
|
|
|
+ Integer type = request.getParameter("type") == null ? 0 : Integer.valueOf(request.getParameter("type"));
|
|
|
+ if (openId == null || sessionKey == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openId);
|
|
|
+ benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData == null) return toolUtils.response(InterfaceResultEnum.USER_EXISTS_ERROR,version,new Object());
|
|
|
+ BenchDevInfoVO lampPoleDevice = benchDevInfoService.getLampPoleDevice(deviceId);
|
|
|
+ if (lampPoleDevice == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+
|
|
|
+ String sendTopic = "/WEGW2/WriteIn/"+lampPoleDevice.getSn();
|
|
|
+ String backTopic = "/WEGW2/WriteOut/"+lampPoleDevice.getSn();
|
|
|
+ String cmd = "";
|
|
|
+ if (type == 0) {
|
|
|
+ cmd = "{\"D8\":\"0000000000\"}";
|
|
|
+ } else {
|
|
|
+ cmd = "{\"D8\":\"0001000000\"}";
|
|
|
+ }
|
|
|
+ String hex = "060B";
|
|
|
+
|
|
|
+ String sendData = hex + cmd;
|
|
|
+ String back = toolUtils.sendWifiMqttCmd(sendTopic, sendData, backTopic, 5);
|
|
|
+ if (back != null && !back.equals("")){
|
|
|
+ WifiDTO wifiDTO = new WifiDTO();
|
|
|
+ wifiDTO.setNum(lampPoleDevice.getSn());
|
|
|
+ wifiDTO.setLna1Status(type);
|
|
|
+ wifiDTO.setType4(0);
|
|
|
+ wifiService.updataWifiBySn(wifiDTO);
|
|
|
+ if (type == 0){
|
|
|
+ BenchUserLogDTO benchUserLogDTO = new BenchUserLogDTO();
|
|
|
+ benchUserLogDTO.setSn(lampPoleDevice.getSn());
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String currentTime = simpleDateFormat.format(new Date());
|
|
|
+ benchUserLogDTO.setCloseTime(currentTime);
|
|
|
+ benchUserLogService.updateUserLog(benchUserLogDTO);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,new Object());
|
|
|
+ }else {
|
|
|
+ return toolUtils.response(InterfaceResultEnum.SEND_CMD_TIME_OUT,version,new Object());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 扫描连接设备
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/scanDevQrcode", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> scanDevQrcode(HttpServletRequest request) throws IOException {
|
|
|
+
|
|
|
+ Integer version = request.getParameter("version") == null ? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ String codeInfo = request.getParameter("codeInfo");
|
|
|
+ if (openId == null ) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ BenchUserInfoDTO benchUserInfoDTO = new BenchUserInfoDTO();
|
|
|
+ benchUserInfoDTO.setOpenId(openId);
|
|
|
+ //benchUserInfoDTO.setSessionKey(sessionKey);
|
|
|
+ BenchUserInfoDTO oneData = benchUserInfoService.getOneData(benchUserInfoDTO);
|
|
|
+ if (oneData == null) return toolUtils.response(InterfaceResultEnum.USER_EXISTS_ERROR,version,new Object());
|
|
|
+ String[] codeArr = codeInfo.split("-");
|
|
|
+ if (codeArr.length == 0 || codeArr[0] == null || codeArr[1] == null){
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ }
|
|
|
+ String sn = codeArr[0];
|
|
|
+ String address = codeArr[1];
|
|
|
+ BenchUserLogDTO benchUserLogDTO = new BenchUserLogDTO();
|
|
|
+ benchUserLogDTO.setSn(sn);
|
|
|
+ benchUserLogDTO.setStatus(1);
|
|
|
+ BenchUserLogDTO one = benchUserLogService.getOne(benchUserLogDTO);
|
|
|
+ if (one != null){
|
|
|
+ if (one.getOpenId().equals(openId)){
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEVICE_CONNECTED,version,new Object());
|
|
|
+ }else {
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEVICE_CONNECTED_ELSE,version,new Object());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ benchUserLogDTO.setOpenId(openId);
|
|
|
+ benchUserLogDTO.setSn(null);
|
|
|
+ BenchUserLogDTO res = benchUserLogService.getOne(benchUserLogDTO);
|
|
|
+ if (res != null) return toolUtils.response(InterfaceResultEnum.DEVICE_DISCONNECT,version,new Object());
|
|
|
+ LampPoleDTO lampPoleDTO = new LampPoleDTO();
|
|
|
+ lampPoleDTO.setSn(sn);
|
|
|
+ LampPoleDTO simpleOne = lampPoleService.getSimpleOne(lampPoleDTO);
|
|
|
+ String sendTopic = "/WEGW2/WriteIn/"+sn;
|
|
|
+ String backTopic = "/WEGW2/WriteOut/"+sn;
|
|
|
+ String cmd = "{\"D8\":\"0001000000\"}";
|
|
|
+ String hex = "060B";
|
|
|
+ String sendData = hex+cmd;
|
|
|
+ String back = toolUtils.sendWifiMqttCmd(sendTopic, sendData, backTopic, 5);
|
|
|
+ toolUtils.setLog("scan_dev_qrcode.txt",sendTopic);
|
|
|
+ toolUtils.setLog("scan_dev_qrcode.txt",backTopic);
|
|
|
+ toolUtils.setLog("scan_dev_qrcode.txt",cmd);
|
|
|
+ if (back != null && !back.equals("")){
|
|
|
+ toolUtils.setLog("scan_dev_qrcode.txt", back);
|
|
|
+ if (back.substring(back.length()-2).equals("01")) {
|
|
|
+ if (simpleOne != null) {
|
|
|
+ benchDevInfoService.updateCount(simpleOne.getLampPoleId());
|
|
|
+ }
|
|
|
+ WifiDTO wifiDTO = new WifiDTO();
|
|
|
+ wifiDTO.setLna1Status(1);
|
|
|
+ wifiDTO.setType4(0);
|
|
|
+ wifiDTO.setNum(sn);
|
|
|
+ wifiService.updataWifiBySn(wifiDTO);
|
|
|
+ benchUserLogDTO.setSn(sn);
|
|
|
+ benchUserLogDTO.setAddress(address);
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String currentTime = simpleDateFormat.format(new Date());
|
|
|
+ benchUserLogDTO.setUpdateTime(currentTime);
|
|
|
+ benchUserLogService.addData(benchUserLogDTO);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,new Object());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ return toolUtils.response(InterfaceResultEnum.SEND_CMD_TIME_OUT,version,new Object());
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.SEND_CMD_TIME_OUT,version,new Object());
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 扫描连接设备
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/scanDevList", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> scanDevList(HttpServletRequest request) throws IOException, ParseException {
|
|
|
+
|
|
|
+ Integer version = request.getParameter("version") == null ? 0 : Integer.valueOf(request.getParameter("version"));
|
|
|
+ String openId = request.getParameter("openId");
|
|
|
+ if (openId == null ) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version,new Object());
|
|
|
+ BenchUserLogDTO benchUserLogDTO = new BenchUserLogDTO();
|
|
|
+ benchUserLogDTO.setStatus(1);
|
|
|
+ benchUserLogDTO.setOpenId(openId);
|
|
|
+ SimpleDateFormat outFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ List<BenchUserLogDTO> devList = benchUserLogService.getDevList(benchUserLogDTO);
|
|
|
+ for (BenchUserLogDTO dto:devList) {
|
|
|
+ Date parse = simpleDateFormat.parse(dto.getUpdateTime());
|
|
|
+ dto.setUpdateTime(outFormat.format(parse));
|
|
|
+ }
|
|
|
+ BenchUserLogDTO dto = new BenchUserLogDTO();
|
|
|
+ dto.setList(devList);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,dto);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|