| | |
| | | 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") |