From c12d0b24cf819e1577b3413ba53f3eff1637a608 Mon Sep 17 00:00:00 2001 From: republicline <1464474399@qq.com> Date: Tue, 15 Oct 2024 16:19:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=BB=E9=99=A4=E8=81=8A=E5=A4=A9?= =?UTF-8?q?=E5=AE=A4=E7=9A=84token=E6=A0=A1=E9=AA=8C,=20=E8=87=AA=E7=94=B1?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/rax/vital/v1/handler/ChatHandler.java | 7 +- .../service/impl/ChatServiceImpl.java | 88 ++++++++++--------- .../src/main/resources/application.yml | 2 +- 3 files changed, 54 insertions(+), 43 deletions(-) diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java index 5faaf44..4450f97 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java @@ -32,13 +32,16 @@ public class ChatHandler implements WebSocketHandler { @Override public void handleMessage(WebSocketSession session, WebSocketMessage message) throws Exception { - String decode = URLDecoder.decode(session.getUri().getQuery()); + String query = session.getUri().getQuery(); + String decode = URLDecoder.decode(query); +// System.out.println("query = " + query); Map params = GetHttpParamUtil.getParams(decode); String token = (String) params.get("token"); + // String token = "azIc_An5dRViceuMN5B5_S-k-1YH8gTCkzc9A6d8mJYguTOEOXWHLaojcpqNNrhYG_9QSUV_y9LpYCN01SqY-GHcXJoMEqCxU-3Qudvkizll3T6mOWK-MJDODMZHETGj"; OAuth2Authorization authorization = authorizationService.findByToken(token, OAuth2TokenType.ACCESS_TOKEN); if (authorization != null) { String username = authorization.getPrincipalName(); - +// System.out.println("username = " + username); String payload = (String) message.getPayload(); JSONObject jsonObject = JSONObject.parseObject(payload); diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/ChatServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/ChatServiceImpl.java index 94c123b..2a15b24 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/ChatServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/ChatServiceImpl.java @@ -157,17 +157,17 @@ public class ChatServiceImpl implements ChatService { } @Override - public void sendMessageMysql(String username, String patientName, String idNum, String date, WebSocketSession session, String msg) { + public void sendMessageMysql(String username, String patientName, String idNum, String date, WebSocketSession session, String msg) throws SQLException { CustomDataSource dataSource = datasourceMap.get(session.getId()); // String databaseName = patientName + idNum; String databaseName = idNum; - ArrayList history = new ArrayList<>(); if (dataSource == null) { dataSource = new MySQLSource(mysqlHost, mysqlPassword, mysqlUsername, databaseName); boolean status = dataSource.open(); + if (status) { datasourceMap.put(session.getId(), dataSource); sessionDatabaseMap.put(session.getId(), databaseName); @@ -183,26 +183,30 @@ public class ChatServiceImpl implements ChatService { } - - String sql = "select content, create_time \"creatTime\", create_user \"createUser\", create_name \"createName\" from t_chat where deleted = 0 and revoked = 0 order by create_time asc "; Connection connection = dataSource.getConnection(); - try { - Statement statement = connection.createStatement(); - ResultSet resultSet = statement.executeQuery(sql); - while (resultSet.next()) { - Map map = new HashMap(); - map.put("content", resultSet.getString("content")); - map.put("creatTime", resultSet.getString("creatTime")); - map.put("createUser", resultSet.getString("createUser")); - map.put("createName", resultSet.getString("createName")); - history.add(map); + DatabaseMetaData metaData = connection.getMetaData(); + String tableName = "t_chat"; + ResultSet tablesx = metaData.getTables(null, null, tableName, new String[]{"TABLE"}); + String sql = "select content, create_time \"creatTime\", create_user \"createUser\", create_name \"createName\" from t_chat where deleted = 0 and revoked = 0 order by create_time asc "; + if (tablesx.next()) { + try { + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(sql); + while (resultSet.next()) { + Map map = new HashMap(); + map.put("content", resultSet.getString("content")); + map.put("creatTime", resultSet.getString("creatTime")); + map.put("createUser", resultSet.getString("createUser")); + map.put("createName", resultSet.getString("createName")); + history.add(map); + } + JSONObject param = new JSONObject(); + param.put("history", history); + param.put("msgType", "msg"); + session.sendMessage(new TextMessage(param.toJSONString().getBytes())); + } catch (Exception e) { + e.printStackTrace(); } - JSONObject param = new JSONObject(); - param.put("history", history); - param.put("msgType", "msg"); - session.sendMessage(new TextMessage(param.toJSONString().getBytes())); - } catch (Exception e) { - e.printStackTrace(); } } else { JSONObject jsonObject = new JSONObject(); @@ -221,27 +225,31 @@ public class ChatServiceImpl implements ChatService { if (StringUtils.hasText(msg)) { JSONObject param = new JSONObject(); - SysUser sysUser = SysUserService.getOne(Wrappers.lambdaQuery().eq(SysUser::getUsername, username)); Connection connection = dataSource.getConnection(); - try { - Statement statement = connection.createStatement(); - String sql = "CREATE TABLE `t_chat` (\n" + - " `id` int NOT NULL AUTO_INCREMENT,\n" + - " `content` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + - " `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + - " `create_user` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + - " `create_name` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + - " `deleted` bit(1) NULL DEFAULT NULL,\n" + - " `revoked` bit(1) NULL DEFAULT NULL,\n" + - " PRIMARY KEY (`id`) USING BTREE\n" + - ") ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;"; - statement.execute(sql); - } catch (SQLException e) { - e.printStackTrace(); + DatabaseMetaData metaData = connection.getMetaData(); + String tableName = "t_chat"; + ResultSet tablesx = metaData.getTables(null, null, tableName, new String[]{"TABLE"}); + System.out.println("tablesx = " + tablesx.next()); + if (!tablesx.next()) { + try { + Statement statement = connection.createStatement(); + String sql = "CREATE TABLE `t_chat` (\n" + + " `id` int NOT NULL AUTO_INCREMENT,\n" + + " `content` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + + " `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + + " `create_user` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + + " `create_name` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,\n" + + " `deleted` bit(1) NULL DEFAULT NULL,\n" + + " `revoked` bit(1) NULL DEFAULT NULL,\n" + + " PRIMARY KEY (`id`) USING BTREE\n" + + ") ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;"; + statement.execute(sql); + } catch (SQLException e) { + e.printStackTrace(); + } } - PreparedStatement preparedStatement = null; try { preparedStatement = connection.prepareStatement("INSERT INTO t_chat (content, create_time, create_user, create_name, deleted, revoked) VALUES (?, ?, ?, ?, ?, ?)"); @@ -252,9 +260,9 @@ public class ChatServiceImpl implements ChatService { param.put("createTime", now); preparedStatement.setString(3, username); param.put("createUser", username); - String name = sysUser.getName(); - preparedStatement.setString(4, name); - param.put("createName", name); +// String name = sysUser.getName(); + preparedStatement.setString(4, username); + param.put("createName", username); preparedStatement.setInt(5, 0); preparedStatement.setInt(6, 0); param.put("msgType", "msg"); diff --git a/upms/upms-biz/src/main/resources/application.yml b/upms/upms-biz/src/main/resources/application.yml index 30ac342..9bfb22c 100644 --- a/upms/upms-biz/src/main/resources/application.yml +++ b/upms/upms-biz/src/main/resources/application.yml @@ -100,7 +100,7 @@ mybatis-plus: jdbc-type-for-null: 'null' call-setters-on-nulls: true shrink-whitespaces-in-sql: true -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl --- spring: