diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java index e2c920fa..792e74a6 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java @@ -45,7 +45,7 @@ public class BlockUserAction extends AdminAction { result = RestResult.resultOf(errorCode); response.setContent(new Gson().toJson(result)); - if (inputUserBlock.getStatus() != 0) { + if (inputUserBlock.getStatus() == 2) { RPCCenter.getInstance().sendRequest(null, null, RPCCenter.KICKOFF_USER_REQUEST, inputUserBlock.getUserId().getBytes(), inputUserBlock.getUserId(), TargetEntry.Type.TARGET_TYPE_USER, null, true); } diff --git a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java index 4f841a2e..f808c6a3 100644 --- a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java +++ b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java @@ -1623,6 +1623,27 @@ public class DatabaseStore { }); } + void deleteUserStatus(String userId) { + mScheduler.execute(()->{ + Connection connection = null; + PreparedStatement statement = null; + try { + connection = DBUtil.getConnection(); + String sql = "delete from t_user_status where _uid = ?"; + statement = connection.prepareStatement(sql); + statement.setString(1, userId); + int count = statement.executeUpdate(); + LOG.info("Update rows {}", count); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + Utility.printExecption(LOG, e); + } finally { + DBUtil.closeDB(connection, statement); + } + }); + } + void updateUserStatus(String userId, int status) { mScheduler.execute(()->{ Connection connection = null; diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index b128f1a4..a7c664f6 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1165,7 +1165,6 @@ public class MemoryMessagesStore implements IMessagesStore { } else { mUserMap.put(userId, status); } - databaseStore.updateUserStatus(userId, status); return ErrorCode.ERROR_CODE_SUCCESS; } diff --git a/broker/src/main/java/io/moquette/persistence/UserStatusLoader.java b/broker/src/main/java/io/moquette/persistence/UserStatusLoader.java index 7115237b..b13ac61c 100644 --- a/broker/src/main/java/io/moquette/persistence/UserStatusLoader.java +++ b/broker/src/main/java/io/moquette/persistence/UserStatusLoader.java @@ -27,7 +27,7 @@ public class UserStatusLoader implements MapStore { @Override public void delete(String s) { - getDatabaseStore().deleteUser(s); + getDatabaseStore().deleteUserStatus(s); } @Override diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java index b4c41fc5..fcc8c4c1 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java @@ -143,6 +143,26 @@ public class Main { System.exit(-1); } + resultVoid =UserAdmin.updateUserBlockStatus(userInfo.getUserId(), 0); + if (resultVoid != null && resultVoid.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("block user done"); + } else { + System.out.println("block user failure"); + System.exit(-1); + } + + resultCheckUserStatus = UserAdmin.checkUserBlockStatus(userInfo.getUserId()); + if (resultCheckUserStatus != null && resultCheckUserStatus.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + if (resultCheckUserStatus.getResult().getStatus() == 0) { + System.out.println("check user status success"); + } else { + System.out.println("user status not correct"); + System.exit(-1); + } + } else { + System.out.println("block user failure"); + System.exit(-1); + } //*********************************************** //**** 群组相关功能