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