刘帅
2026-09-21 3f45e8fdfa31d7b764d60a7c0cb5dd11944ed418
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
@@ -45,31 +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());
            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(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;
        }
    }
    /**
     * 旧游戏支付记录可能没有写入 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")