|
|
@@ -43,6 +43,8 @@ import com.wxxcx.room.RoomVO;
|
|
|
import com.wxxcx.share.ShareVO;
|
|
|
import com.wxxcx.targets.TargetVO;
|
|
|
import com.wxxcx.user.MiniUserVO;
|
|
|
+import com.wxxcx.user.WxRelatiion;
|
|
|
+
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
@@ -83,6 +85,17 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
null, false, null, null);
|
|
|
JSONObject obj = JSONObject.parseObject(res);
|
|
|
r.data.put("openid", obj.getString("openid"));
|
|
|
+ r.data.put("unionid", obj.getString("unionid"));
|
|
|
+ // 查询是否存在该 openid
|
|
|
+ List<WxRelatiion> list = baseDAO.getJdbcTemplate().query(
|
|
|
+ "SELECT * FROM wx_relation WHERE openid = ?",
|
|
|
+ new Object[]{obj.getString("openid")},
|
|
|
+ new BeanPropertyRowMapper<>(WxRelatiion.class)
|
|
|
+ );
|
|
|
+ if (list.size() <= 0) {
|
|
|
+ String insertSql = "INSERT INTO wx_relation (openid, unionid,fwhopenid) VALUES (?, ?,?)";
|
|
|
+ baseDAO.getJdbcTemplate().update(insertSql, obj.getString("openid"), obj.getString("unionid"), null);
|
|
|
+ }
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
@@ -723,33 +736,14 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
@ApiOperation(value = "读取房间信息")
|
|
|
public R readRoom(String openid, String dev_id) {
|
|
|
R r = JSONUtil.getSuccessMsg(null);
|
|
|
- String dev_id_fix = dev_id.replace(":", "");
|
|
|
- StringBuffer path = new StringBuffer("/mnt/");
|
|
|
- path.append(dev_id_fix + ".json");
|
|
|
-
|
|
|
- // 创建File对象
|
|
|
- File file = new File(path.toString());
|
|
|
- // 文件不存在,直接退出
|
|
|
- if (!file.exists()) {
|
|
|
- r = JSONUtil.getErrorMsg("文件不存在");
|
|
|
- return r;
|
|
|
- }
|
|
|
|
|
|
- StringBuilder jsonStringBuilder = new StringBuilder("");
|
|
|
- // 使用FileReader读取文件
|
|
|
- try (BufferedReader reader = new BufferedReader(new FileReader(path.toString()))) {
|
|
|
- String line;
|
|
|
- while ((line = reader.readLine()) != null) {
|
|
|
- jsonStringBuilder.append(line);
|
|
|
- }
|
|
|
- } catch (IOException e) {
|
|
|
- r = JSONUtil.getErrorMsg(e);
|
|
|
+ DevRoomVO devRoomVO = baseDAO.queryByKey(DevRoomVO.class, "dev_id", dev_id);
|
|
|
+ if (devRoomVO == null || devRoomVO.getRoom_params() == null || devRoomVO.getRoom_params().length() == 0 ) {
|
|
|
+ r = JSONUtil.getErrorMsg("房间信息不存在");
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
- // 将读取到的字符串转换为JSON对象
|
|
|
- String jsonStr = jsonStringBuilder.toString();
|
|
|
- JSONObject jsonObj = JSON.parseObject(jsonStr);
|
|
|
+ JSONObject jsonObj = JSON.parseObject(devRoomVO.getRoom_params());
|
|
|
|
|
|
// 向前端发送数据
|
|
|
r.data.put("data", jsonObj);
|
|
|
@@ -767,25 +761,10 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
public R saveRoom(@RequestBody RoomVO vo) {
|
|
|
R r = JSONUtil.getSuccessMsg(null);
|
|
|
String dev_id = vo.getDev_id();
|
|
|
- System.out.println(vo);
|
|
|
- StringBuffer path = new StringBuffer("/mnt/");
|
|
|
- String dev_id_fix = dev_id.replace(":", "");
|
|
|
- path.append(dev_id_fix + ".json");
|
|
|
- File file = new File(path.toString());
|
|
|
- // 获取文件的父目录(即包含文件的文件夹)
|
|
|
- File parentDir = file.getParentFile();
|
|
|
- // 如果父目录不存在,则创建它
|
|
|
- if (!parentDir.exists()) {
|
|
|
- if (!parentDir.mkdirs()) {
|
|
|
- System.err.println("无法创建目录:" + parentDir.getAbsolutePath());
|
|
|
- r = JSONUtil.getErrorMsg("无法创建目录");
|
|
|
- return r;
|
|
|
- }
|
|
|
- }
|
|
|
- try (FileWriter fileWriter = new FileWriter(path.toString())) {
|
|
|
+
|
|
|
+ try {
|
|
|
String jsonString = JSON.toJSONString(vo);
|
|
|
- // 写入服务器
|
|
|
- fileWriter.write(jsonString);
|
|
|
+
|
|
|
// 写入数据库
|
|
|
JSONObject obj = JSONObject.parseObject(jsonString);
|
|
|
JSONArray roomParams = obj.getJSONArray("roomParams");
|
|
|
@@ -796,21 +775,97 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
room.setDev_id(dev_id);
|
|
|
baseDAO.insertAll(room);
|
|
|
}
|
|
|
- StringBuffer sql = new StringBuffer("update dev_room set room_params=JSON_ARRAY(");
|
|
|
+
|
|
|
+ StringBuffer sql = new StringBuffer("update dev_room set room_params= JSON_OBJECT(");
|
|
|
+
|
|
|
+ sql.append("'openid','" + obj.getString("openid") + "',");
|
|
|
+ sql.append("'dev_id','" + obj.getString("dev_id") + "',");
|
|
|
+ sql.append("'start_x','" + obj.getString("start_x") + "',");
|
|
|
+ sql.append("'stop_x','" + obj.getString("stop_x") + "',");
|
|
|
+ sql.append("'start_y','" + obj.getString("start_y") + "',");
|
|
|
+ sql.append("'stop_y','" + obj.getString("stop_y") + "',");
|
|
|
+ sql.append("'roomParams'," + "JSON_ARRAY(");
|
|
|
+
|
|
|
+ // 子区域插入sql
|
|
|
+ StringBuffer subBuffer = new StringBuffer(", sub_regions= JSON_ARRAY(");
|
|
|
+ // 家具插入sql
|
|
|
+ StringBuffer furBuffer = new StringBuffer(", furniture= JSON_ARRAY(");
|
|
|
if (roomParams.size() > 0) {
|
|
|
+
|
|
|
+ boolean hasSub = false;
|
|
|
+ boolean hasFur = false;
|
|
|
for (int i = 0; i < roomParams.size(); i++) {
|
|
|
JSONObject itemObj = roomParams.getJSONObject(i);
|
|
|
sql.append("JSON_OBJECT('name','" + itemObj.getString("name") + "',");
|
|
|
sql.append("'type','" + itemObj.getString("type") + "',");
|
|
|
- sql.append("'width'," + itemObj.getString("widthToM") + ",");
|
|
|
- sql.append("'height'," + itemObj.getString("heightToM") + ",");
|
|
|
+ sql.append("'width'," + itemObj.getString("width") + ",");
|
|
|
+ sql.append("'height'," + itemObj.getString("height") + ",");
|
|
|
+ sql.append("'heightToM'," + itemObj.getString("heightToM") + ",");
|
|
|
+ sql.append("'left'," + itemObj.getString("left") + ",");
|
|
|
+ sql.append("'rotate'," + itemObj.getString("rotate") + ",");
|
|
|
+ sql.append("'top'," + itemObj.getString("top") + ",");
|
|
|
+ sql.append("'widthToM'," + itemObj.getString("widthToM") + ",");
|
|
|
sql.append("'x'," + itemObj.getString("x") + ",");
|
|
|
sql.append("'y'," + itemObj.getString("y") + ",");
|
|
|
sql.append("'yuanX'," + itemObj.getString("yuanX") + ",");
|
|
|
sql.append("'yuanY'," + itemObj.getString("yuanY") + "),");
|
|
|
+
|
|
|
+ String type = itemObj.getString("type");
|
|
|
+ if (type.contains("area") || type.contains("otherArea")) {
|
|
|
+ // 子区域
|
|
|
+ subBuffer.append("JSON_OBJECT('name','" + itemObj.getString("name") + "',");
|
|
|
+ subBuffer.append("'type','" + itemObj.getString("type") + "',");
|
|
|
+ subBuffer.append("'width'," + itemObj.getString("width") + ",");
|
|
|
+ subBuffer.append("'height'," + itemObj.getString("height") + ",");
|
|
|
+ subBuffer.append("'heightToM'," + itemObj.getString("heightToM") + ",");
|
|
|
+ subBuffer.append("'left'," + itemObj.getString("left") + ",");
|
|
|
+ subBuffer.append("'rotate'," + itemObj.getString("rotate") + ",");
|
|
|
+ subBuffer.append("'top'," + itemObj.getString("top") + ",");
|
|
|
+ subBuffer.append("'widthToM'," + itemObj.getString("widthToM") + ",");
|
|
|
+ subBuffer.append("'x'," + itemObj.getString("x") + ",");
|
|
|
+ subBuffer.append("'y'," + itemObj.getString("y") + ",");
|
|
|
+ subBuffer.append("'yuanX'," + itemObj.getString("yuanX") + ",");
|
|
|
+ subBuffer.append("'yuanY'," + itemObj.getString("yuanY") + "),");
|
|
|
+
|
|
|
+ hasSub = true;
|
|
|
+ } else {
|
|
|
+ // 家具
|
|
|
+ furBuffer.append("JSON_OBJECT('name','" + itemObj.getString("name") + "',");
|
|
|
+ furBuffer.append("'type','" + itemObj.getString("type") + "',");
|
|
|
+ furBuffer.append("'width'," + itemObj.getString("width") + ",");
|
|
|
+ furBuffer.append("'height'," + itemObj.getString("height") + ",");
|
|
|
+ furBuffer.append("'heightToM'," + itemObj.getString("heightToM") + ",");
|
|
|
+ furBuffer.append("'left'," + itemObj.getString("left") + ",");
|
|
|
+ furBuffer.append("'rotate'," + itemObj.getString("rotate") + ",");
|
|
|
+ furBuffer.append("'top'," + itemObj.getString("top") + ",");
|
|
|
+ furBuffer.append("'widthToM'," + itemObj.getString("widthToM") + ",");
|
|
|
+ furBuffer.append("'x'," + itemObj.getString("x") + ",");
|
|
|
+ furBuffer.append("'y'," + itemObj.getString("y") + ",");
|
|
|
+ furBuffer.append("'yuanX'," + itemObj.getString("yuanX") + ",");
|
|
|
+ furBuffer.append("'yuanY'," + itemObj.getString("yuanY") + "),");
|
|
|
+
|
|
|
+ hasFur = true;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
sql.setLength(sql.length() - 1);
|
|
|
- sql.append(") where dev_id ='" + dev_id + "' ");
|
|
|
+ sql.append("))" );
|
|
|
+
|
|
|
+
|
|
|
+ if (hasSub) {
|
|
|
+ subBuffer.setLength(subBuffer.length() - 1);
|
|
|
+ sql.append(subBuffer).append(")");
|
|
|
+ }
|
|
|
+ if (hasFur) {
|
|
|
+ furBuffer.setLength(furBuffer.length() - 1);
|
|
|
+ sql.append(furBuffer).append(")");
|
|
|
+ }
|
|
|
+
|
|
|
+ sql.append(" where dev_id ='" + dev_id + "' ");
|
|
|
+
|
|
|
+ System.out.println(sql.toString());
|
|
|
+ // update dev_room set room_params= JSON_OBJECT('openid','oioMm7VtkWkvHFYBlzCR6couIENQ','dev_id','8CBFEA0B75D8','start_x','-200.0','stop_x','200.0','start_y','-200.0','stop_y','200.0',JSON_OBJECT('name','门','type','other','width',20,'height',80,'heightToM',80.0,'left',303,'rotate',false,'top',191,'widthToM',20.0,'x',-196.97,'y',198.09,'yuanX',0,'yuanY',0)) where dev_id ='8CBFEA0B75D8'
|
|
|
+
|
|
|
baseDAO.updateSQL(sql.toString());
|
|
|
//发送屏蔽区域的数据到服务器
|
|
|
// 创建 ObjectMapper 实例
|
|
|
@@ -1354,10 +1409,10 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
// }
|
|
|
// }
|
|
|
// StringBuffer sql = new StringBuffer("update dev_group set dev_list =JSON_ARRAY(");
|
|
|
-//
|
|
|
+//
|
|
|
// // 列表不为空
|
|
|
// if(updatedArray.size()>0) {
|
|
|
-// for(int i=0;i<updatedArray.size();i++) {
|
|
|
+// for(int i=0;i<updatedArray.size();i++) {
|
|
|
// sql.append("'"+updatedArray.getString(i)+"',");
|
|
|
// }
|
|
|
// sql.setLength(sql.length() - 1);
|
|
|
@@ -1741,7 +1796,7 @@ public class WxxcxIndexController<AesException extends Throwable> {
|
|
|
public R getAccessTokenTwo() {
|
|
|
R r = JSONUtil.getSuccessMsg(null);
|
|
|
// 发送模板消息
|
|
|
- wxSendMessage.queryAccessToken();
|
|
|
+ wxSendMessage.queryAccessToken("测试设备", "17356519496", "oWlo-6iXL0pQeYWZxEpwB8knv6D8");
|
|
|
return r;
|
|
|
}
|
|
|
|