From a8c3f70973c47520beefd94e8665ca8f60afaaa0 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Tue, 9 Jun 2026 19:04:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=88=A0=E9=99=A4=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E8=AE=B0=E5=BD=95=E5=89=8D=E5=85=88=E5=88=A0?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E7=AD=94=E9=A2=98=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/whitelist-api-en.md | 6 +++--- docs/whitelist-api-zh.md | 6 +++--- pom.xml | 2 +- .../controller/WhitelistController.java | 10 +++++----- .../service/impl/PlayersServiceImpl.java | 13 +++++++++++-- .../controller/WhitelistControllerTest.java | 12 ++++++------ 6 files changed, 29 insertions(+), 20 deletions(-) diff --git a/docs/whitelist-api-en.md b/docs/whitelist-api-en.md index 36ac30c..683be7b 100644 --- a/docs/whitelist-api-en.md +++ b/docs/whitelist-api-en.md @@ -129,7 +129,7 @@ curl -H "X-API-TOKEN: " \ GET /api/whitelist/rejected ``` -Returns paginated list of rejected players (status=0). +Returns paginated list of rejected players (status=3). **Parameters:** Same as `/list` (including `all`). @@ -364,9 +364,9 @@ curl -H "X-API-TOKEN: " \ | status | statusText | |--------|------------| -| 0 | 已拒绝 (Rejected) | | 1 | 已通过 (Approved) | | 2 | 待审核 (Pending) | +| 3 | 已拒绝 (Rejected) | --- @@ -409,7 +409,7 @@ curl -H "X-API-TOKEN: " \ | playerName | String | Minecraft username | | uuid | String | Mojang account UUID | | qq | String | QQ number | -| status | Byte | 0=rejected, 1=approved, 2=pending | +| status | Byte | 1=approved, 2=pending, 3=rejected | | description | String | Application note | | createTime | String | Application timestamp (ISO 8601) | | regionCode | Long | Region postal code | diff --git a/docs/whitelist-api-zh.md b/docs/whitelist-api-zh.md index 9a17c93..db4769f 100644 --- a/docs/whitelist-api-zh.md +++ b/docs/whitelist-api-zh.md @@ -129,7 +129,7 @@ curl -H "X-API-TOKEN: " \ GET /api/whitelist/rejected ``` -分页查询已被拒绝的玩家(status=0)。 +分页查询已被拒绝的玩家(status=3)。 **请求参数:** 同 `/list`(含 `all` 参数)。 @@ -350,9 +350,9 @@ curl -H "X-API-TOKEN: " \ | status | statusText | |--------|------------| -| 0 | 已拒绝 | | 1 | 已通过 | | 2 | 待审核 | +| 3 | 已拒绝 | --- @@ -395,7 +395,7 @@ curl -H "X-API-TOKEN: " \ | playerName | String | Minecraft 用户名 | | uuid | String | Mojang 正版 UUID | | qq | String | QQ 号 | -| status | Byte | 0=已拒绝, 1=已通过, 2=待审核 | +| status | Byte | 1=已通过, 2=待审核, 3=已拒绝 | | description | String | 申请备注 | | createTime | String | 申请时间(ISO 8601) | | regionCode | Long | 地区邮政编码 | diff --git a/pom.xml b/pom.xml index 6274536..4ca35af 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.linearpast MinecraftManager - 1.1.3 + 1.1.5 MinecraftManager MinecraftManager diff --git a/src/main/java/com/linearpast/minecraftmanager/controller/WhitelistController.java b/src/main/java/com/linearpast/minecraftmanager/controller/WhitelistController.java index 7de9b14..9a4e9e7 100644 --- a/src/main/java/com/linearpast/minecraftmanager/controller/WhitelistController.java +++ b/src/main/java/com/linearpast/minecraftmanager/controller/WhitelistController.java @@ -61,7 +61,7 @@ public class WhitelistController { } /** - * 获取被拒绝列表(status=0) + * 获取被拒绝列表(status=3) */ @GetMapping("/rejected") public Result getRejected( @@ -72,7 +72,7 @@ public class WhitelistController { ) { Pageable pageable = all ? Pageable.unpaged() : PageRequest.of(page - 1, size); Page players = playersService.getPlayers( - playerName, null, null, (byte) 0, + playerName, null, null, (byte) 3, null, null, pageable ); return Result.successPage(players.getContent(), players.getTotalElements()); @@ -94,7 +94,7 @@ public class WhitelistController { @PostMapping("/reject/{id}") public Result reject(@PathVariable Integer id, HttpSession session) { Operators operators = (Operators) session.getAttribute("adminAccount"); - int code = playersService.updatePlayerStatus(id, (byte) 0, operators); + int code = playersService.updatePlayerStatus(id, (byte) 3, operators); return code > 0 ? Result.success().msg("已拒绝申请") : Result.error("操作失败,Rcon连接错误或玩家不存在"); } @@ -122,7 +122,7 @@ public class WhitelistController { @PostMapping("/batchReject") public Result batchReject(@RequestBody List ids, HttpSession session) { Operators operators = (Operators) session.getAttribute("adminAccount"); - int code = playersService.updatePlayersStatus(ids, (byte) 0, operators); + int code = playersService.updatePlayersStatus(ids, (byte) 3, operators); return code > 0 ? Result.success().msg("成功处理:" + code + "/" + ids.size()) : Result.error("操作失败"); } @@ -143,7 +143,7 @@ public class WhitelistController { Map stats = new HashMap<>(); stats.put("approved", playersService.getPlayersCountByStatus((byte) 1)); stats.put("pending", playersService.getPlayersCountByStatus((byte) 2)); - stats.put("rejected", playersService.getPlayersCountByStatus((byte) 0)); + stats.put("rejected", playersService.getPlayersCountByStatus((byte) 3)); return Result.success(stats); } diff --git a/src/main/java/com/linearpast/minecraftmanager/service/impl/PlayersServiceImpl.java b/src/main/java/com/linearpast/minecraftmanager/service/impl/PlayersServiceImpl.java index 2c8adf6..5d16f8d 100644 --- a/src/main/java/com/linearpast/minecraftmanager/service/impl/PlayersServiceImpl.java +++ b/src/main/java/com/linearpast/minecraftmanager/service/impl/PlayersServiceImpl.java @@ -5,6 +5,7 @@ import com.linearpast.minecraftmanager.entity.Players; import com.linearpast.minecraftmanager.entity.view.PlayerInfoView; import com.linearpast.minecraftmanager.repository.PlayersRepository; import com.linearpast.minecraftmanager.repository.view.PlayerInfoViewRepository; +import com.linearpast.minecraftmanager.service.inter.PlayerAnswersService; import com.linearpast.minecraftmanager.service.inter.PlayersService; import com.linearpast.minecraftmanager.utils.WhitelistTarget; import com.linearpast.minecraftmanager.utils.config.ConfigLoader; @@ -44,6 +45,8 @@ public class PlayersServiceImpl implements PlayersService { @Autowired private PlayerInfoViewRepository playerInfoViewRepository; @Autowired + private PlayerAnswersService playerAnswersService; + @Autowired private MinecraftRconUtils rconService; @Autowired private JavaMailSenderImpl mailSender; @@ -76,13 +79,18 @@ public class PlayersServiceImpl implements PlayersService { if(minecraftRcon == null) return false; RconResponse response = minecraftRcon.sendSync(new SelfWhiteListCommand(Target.player(byId.getPlayerName()), WhiteListModes.REMOVE)); if(response.getResponseId() != 0) return false; - this.asyncSendEmail(byId, (byte)0, true); + this.asyncSendEmail(byId, (byte)3, true); + playerAnswersService.deleteAllPlayerAnswers(byId); playersRepository.deleteById(id); return true; } @Override public void forceDeletePlayer(List ids) { + List players = playersRepository.findAllById(ids); + for (Players player : players) { + playerAnswersService.deleteAllPlayerAnswers(player); + } playersRepository.deleteAllById(ids); } @@ -165,7 +173,8 @@ public class PlayersServiceImpl implements PlayersService { RconResponse response = minecraftRcon.sendSync(new SelfWhiteListCommand(Target.player(players.getPlayerName()), WhiteListModes.REMOVE)); if (response.getResponseId() == 0) { successIds.add(players.getId()); - asyncSendEmail(players, (byte) 0, true); + asyncSendEmail(players, (byte) 3, true); + playerAnswersService.deleteAllPlayerAnswers(players); } }); playersRepository.deleteAllById(successIds); diff --git a/src/test/java/com/linearpast/minecraftmanager/controller/WhitelistControllerTest.java b/src/test/java/com/linearpast/minecraftmanager/controller/WhitelistControllerTest.java index 8bbff36..f4eaf70 100644 --- a/src/test/java/com/linearpast/minecraftmanager/controller/WhitelistControllerTest.java +++ b/src/test/java/com/linearpast/minecraftmanager/controller/WhitelistControllerTest.java @@ -107,7 +107,7 @@ class WhitelistControllerTest { @Test void getRejected_shouldReturnPage() throws Exception { Page page = new PageImpl<>(Collections.emptyList()); - when(playersService.getPlayers(isNull(), isNull(), isNull(), eq((byte) 0), + when(playersService.getPlayers(isNull(), isNull(), isNull(), eq((byte) 3), isNull(), isNull(), any(Pageable.class))).thenReturn(page); mockMvc.perform(get("/api/whitelist/rejected")) @@ -149,7 +149,7 @@ class WhitelistControllerTest { @Test void reject_success() throws Exception { - when(playersService.updatePlayerStatus(eq(1), eq((byte) 0), any(Operators.class))).thenReturn(1); + when(playersService.updatePlayerStatus(eq(1), eq((byte) 3), any(Operators.class))).thenReturn(1); mockMvc.perform(post("/api/whitelist/reject/1").session(adminSession)) .andExpect(status().isOk()) @@ -159,7 +159,7 @@ class WhitelistControllerTest { @Test void reject_failure() throws Exception { - when(playersService.updatePlayerStatus(eq(99), eq((byte) 0), any(Operators.class))).thenReturn(0); + when(playersService.updatePlayerStatus(eq(99), eq((byte) 3), any(Operators.class))).thenReturn(0); mockMvc.perform(post("/api/whitelist/reject/99").session(adminSession)) .andExpect(status().isOk()) @@ -234,7 +234,7 @@ class WhitelistControllerTest { @Test void batchReject_success() throws Exception { List ids = List.of(1, 2); - when(playersService.updatePlayersStatus(eq(ids), eq((byte) 0), any(Operators.class))).thenReturn(2); + when(playersService.updatePlayersStatus(eq(ids), eq((byte) 3), any(Operators.class))).thenReturn(2); mockMvc.perform(post("/api/whitelist/batchReject") .session(adminSession) @@ -277,7 +277,7 @@ class WhitelistControllerTest { void getStats_shouldReturnCounts() throws Exception { when(playersService.getPlayersCountByStatus((byte) 1)).thenReturn(10); when(playersService.getPlayersCountByStatus((byte) 2)).thenReturn(5); - when(playersService.getPlayersCountByStatus((byte) 0)).thenReturn(3); + when(playersService.getPlayersCountByStatus((byte) 3)).thenReturn(3); mockMvc.perform(get("/api/whitelist/stats")) .andExpect(status().isOk()) @@ -332,7 +332,7 @@ class WhitelistControllerTest { @Test void checkPlayer_rejectedStatus() throws Exception { Players player = new Players(); - player.setStatus((byte) 0); + player.setStatus((byte) 3); when(playersService.getPlayer("RejectedGuy")).thenReturn(player);