2121import kr .pickple .back .auth .repository .RedisRepository ;
2222import kr .pickple .back .chat .domain .ChatRoom ;
2323import kr .pickple .back .chat .service .ChatRoomService ;
24- import kr .pickple .back .common .domain .RegistrationStatus ;
2524import kr .pickple .back .game .domain .Category ;
2625import kr .pickple .back .game .domain .GameDomain ;
2726import kr .pickple .back .game .domain .GameMember ;
3938import kr .pickple .back .game .repository .GameMemberRepository ;
4039import kr .pickple .back .game .repository .GamePositionRepository ;
4140import kr .pickple .back .game .repository .GameRepository ;
42- import kr .pickple .back .game .repository .entity .GameEntity ;
43- import kr .pickple .back .game .repository .entity .GamePosition ;
44- import kr .pickple .back .member .domain .Member ;
4541import kr .pickple .back .member .domain .MemberDomain ;
46- import kr .pickple .back .member .domain .MemberPosition ;
47- import kr .pickple .back .member .dto .response .MemberResponse ;
4842import kr .pickple .back .member .implement .MemberReader ;
4943import kr .pickple .back .member .repository .MemberPositionRepository ;
5044import kr .pickple .back .member .repository .MemberRepository ;
51- import kr .pickple .back .position .domain .Position ;
5245import lombok .RequiredArgsConstructor ;
5346
5447@ Service
@@ -71,6 +64,14 @@ public class GameService {
7164 private final GameWriter gameWriter ;
7265 private final GameMemberWriter gameMemberWriter ;
7366
67+ private static long getSecondsBetween (
68+ final LocalDateTime gameCreatedDateTime ,
69+ final LocalDateTime gamePlayDateTime
70+ ) {
71+ return Duration .between (gameCreatedDateTime , gamePlayDateTime )
72+ .getSeconds ();
73+ }
74+
7475 /**
7576 * 게임 생성
7677 */
@@ -132,26 +133,10 @@ private Long getSecondsBetweenCreatedAndEnd(final LocalDateTime gameCreatedDateT
132133 return getSecondsBetween (gameCreatedDateTime , gameEndDateTime );
133134 }
134135
135- private static long getSecondsBetween (
136- final LocalDateTime gameCreatedDateTime ,
137- final LocalDateTime gamePlayDateTime
138- ) {
139- return Duration .between (gameCreatedDateTime , gamePlayDateTime )
140- .getSeconds ();
141- }
142-
143136 private String makeGameStatusUpdateKey (final GameStatus gameStatus , final Long id ) {
144137 return String .format ("game:%s:%d" , gameStatus .toString (), id );
145138 }
146139
147- /**
148- * 게임 상태 업데이트
149- */
150- @ Transactional
151- public void updateGameStatus (final GameStatus gameStatus , final Long gameId ) {
152- gameWriter .updateMemberRegistrationStatus (gameStatus , gameId );
153- }
154-
155140 /**
156141 * 게임 상세 조회
157142 */
@@ -185,26 +170,24 @@ private List<GameResponse> findGamesByAddress(final String address, final Pageab
185170 final List <GameDomain > gameDomains = gameReader .findGamesByAddress (address , pageable );
186171
187172 return gameDomains .stream ()
188- .map (gameDomain -> GameResponseMapper .mapToGameResponseDto (gameDomain , gameReader .readAllMembersByGameIdAndStatus (gameDomain .getGameId (), CONFIRMED )))
173+ .map (gameDomain -> GameResponseMapper .mapToGameResponseDto (
174+ gameDomain ,
175+ gameReader .readAllMembersByGameIdAndStatus (gameDomain .getGameId (), CONFIRMED )
176+ )
177+ )
189178 .toList ();
190179 }
191180
192181 /**
193182 * 특정 지역의 게스트 모집글 조회
194183 */
195184 public List <GameResponse > findGamesWithInAddress (final MainAddress mainAddress ) {
196- final List <GameEntity > gameEntities = gameRepository .findGamesWithInAddress (
197- mainAddress .getAddressDepth1 (),
198- mainAddress .getAddressDepth2 ()
199- );
200-
201- return gameEntities .stream ()
202- .filter (GameEntity ::isNotEndedGame )
203- .map (game -> GameResponse .of (
204- game ,
205- getMemberResponsesByStatus (game , CONFIRMED ),
206- getPositionsByGame (game ),
207- addressReader .readMainAddressById (game .getAddressDepth1Id (), game .getAddressDepth2Id ())
185+ final List <GameDomain > gameDomains = gameReader .findGamesWithInAddress (mainAddress );
186+
187+ return gameDomains .stream ()
188+ .map (gameDomain -> GameResponseMapper .mapToGameResponseDto (
189+ gameDomain ,
190+ gameReader .readAllMembersByGameIdAndStatus (gameDomain .getGameId (), CONFIRMED )
208191 )
209192 )
210193 .toList ();
@@ -218,42 +201,15 @@ public List<GameResponse> findGamesWithInDistance(
218201 final Double longitude ,
219202 final Double distance
220203 ) {
221- final List <GameEntity > gameEntities = gameRepository .findGamesWithInDistance (latitude , longitude , distance );
222-
223- return gameEntities .stream ()
224- .filter (GameEntity ::isNotEndedGame )
225- .map (game -> GameResponse .of (
226- game ,
227- getMemberResponsesByStatus (game , CONFIRMED ),
228- getPositionsByGame (game ),
229- addressReader .readMainAddressById (game .getAddressDepth1Id (), game .getAddressDepth2Id ())
230- )
231- )
232- .toList ();
233- }
204+ final List <GameDomain > gameDomains = gameReader .findGamesWithInDistance (latitude , longitude , distance );
234205
235- private List <MemberResponse > getMemberResponsesByStatus (final GameEntity gameEntity , final RegistrationStatus status ) {
236- return gameMemberRepository .findAllByGameIdAndStatus (gameEntity .getId (), status )
237- .stream ()
238- .map (gameMember -> memberRepository .getMemberById (gameMember .getMemberId ()))
239- .map (member -> MemberResponse .of (
240- member ,
241- getPositionsByMember (member ),
242- addressReader .readMainAddressById (member .getAddressDepth1Id (), member .getAddressDepth2Id ())
206+ return gameDomains .stream ()
207+ .filter (GameDomain ::isNotEndedGame )
208+ .map (gameDomain -> GameResponseMapper .mapToGameResponseDto (
209+ gameDomain ,
210+ gameReader .readAllMembersByGameIdAndStatus (gameDomain .getGameId (), CONFIRMED )
243211 )
244212 )
245213 .toList ();
246214 }
247-
248- private List <Position > getPositionsByMember (final Member member ) {
249- final List <MemberPosition > memberPositions = memberPositionRepository .findAllByMemberId (member .getId ());
250-
251- return Position .fromMemberPositions (memberPositions );
252- }
253-
254- private List <Position > getPositionsByGame (final GameEntity gameEntity ) {
255- final List <GamePosition > gamePositions = gamePositionRepository .findAllByGameId (gameEntity .getId ());
256-
257- return Position .fromGamePositions (gamePositions );
258- }
259215}
0 commit comments