From 2914eea299ec5a1d6bfdf40b2743226ef9cbc5af Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 28 九月 2026 11:43:04 +0800
Subject: [PATCH] 脱敏接口调整及返回数据调整
---
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java | 47 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
index 84b2775..2d9357a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
@@ -45,29 +45,58 @@
public List<TGameRecord> getData(@RequestBody GameDataQuery query){
if (query.getStoreId()==null){
// 获取到游戏ids
- List<Integer> gameIds = gameService.list(new QueryWrapper<Game>().eq("operationId", query.getObjectId()))
- .stream().map(Game::getId).collect(Collectors.toList());
+ List<Game> games = gameService.list(new QueryWrapper<Game>().eq("operationId", query.getObjectId()));
+ List<Integer> gameIds = games.stream().map(Game::getId).collect(Collectors.toList());
+ // 运营商下没有智慧球场时,不能省略 gameId 条件后查询全部支付记录。
+ if (gameIds.isEmpty()) {
+ return new ArrayList<>();
+ }
// 根据游戏ids查询智慧球场支付记录
QueryWrapper<TGameRecord> wrapper = new QueryWrapper<TGameRecord>().eq("status", 1)
.ne("payType", 3)
.ne("payType", 4);
- if(gameIds.size() > 0){
- wrapper.in("gameId", gameIds);
+ if (query.getStartTime() != null && query.getEndTime() != null) {
+ wrapper.between("time", query.getStartTime(), query.getEndTime());
}
+ wrapper.in("gameId", gameIds);
List<TGameRecord> list = gameRecordService.list(wrapper);
+ fillMissingSiteId(list, games);
return list;
}else{
- List<Integer> gameIds = gameService.list(new QueryWrapper<Game>().eq("storeId", query.getStoreId()))
- .stream().map(Game::getId).collect(Collectors.toList());
- QueryWrapper wrapper = new QueryWrapper<TGameRecord>().eq("status", 1).eq("payType", 1).eq("payType", 2);
- if(gameIds.size() > 0){
- wrapper.in("gameId", gameIds);
+ List<Game> games = gameService.list(new QueryWrapper<Game>().eq("storeId", query.getStoreId()));
+ List<Integer> gameIds = games.stream().map(Game::getId).collect(Collectors.toList());
+ // 门店下没有智慧球场时,不能省略 gameId 条件后查询全部支付记录。
+ if (gameIds.isEmpty()) {
+ return new ArrayList<>();
}
+ QueryWrapper<TGameRecord> wrapper = new QueryWrapper<TGameRecord>()
+ .eq("status", 1)
+ .in("payType", 1, 2);
+ if (query.getStartTime() != null && query.getEndTime() != null) {
+ wrapper.between("time", query.getStartTime(), query.getEndTime());
+ }
+ wrapper.in("gameId", gameIds);
List<TGameRecord> list = gameRecordService.list(wrapper);
+ fillMissingSiteId(list, games);
return list;
}
}
+ /**
+ * 旧游戏支付记录可能没有写入 t_game_record.siteId,场地归属以 t_game.siteId 为准补齐,
+ * 让调用方能够按场地类型做收入统计。
+ */
+ private void fillMissingSiteId(List<TGameRecord> records, List<Game> games) {
+ Map<Integer, Integer> gameSiteIds = games.stream()
+ .filter(game -> game.getId() != null && game.getSiteId() != null)
+ .collect(Collectors.toMap(Game::getId, Game::getSiteId, (first, ignored) -> first));
+ for (TGameRecord record : records) {
+ if (record.getSiteId() == null) {
+ record.setSiteId(gameSiteIds.get(record.getGameId()));
+ }
+ }
+ }
+
@ResponseBody
@PostMapping("/student/webStudentList")
--
Gitblit v1.7.1