From 3f45e8fdfa31d7b764d60a7c0cb5dd11944ed418 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 21 九月 2026 23:38:59 +0800
Subject: [PATCH] bug:统计数据修正
---
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java | 31 +++++++++++++++++++++++++++----
1 files changed, 27 insertions(+), 4 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 cf2faf8..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,8 +45,8 @@
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<>();
@@ -55,12 +55,16 @@
QueryWrapper<TGameRecord> wrapper = new QueryWrapper<TGameRecord>().eq("status", 1)
.ne("payType", 3)
.ne("payType", 4);
+ 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());
+ 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<>();
@@ -68,12 +72,31 @@
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