Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2b4684b

Browse filesBrowse files
charlesuukylekim2123
authored andcommitted
refactor: 게임 카테고리별, 주소별, 지역별, 중심좌표 기준 조회 기능을 바뀐 계층 구조에 맞게 수정
1 parent 06aa1f0 commit 2b4684b
Copy full SHA for 2b4684b

File tree

Expand file treeCollapse file tree

3 files changed

+62
-74
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+62
-74
lines changed
Open diff view settings
Collapse file

‎src/main/java/kr/pickple/back/game/implement/GameMapper.java‎

Copy file name to clipboardExpand all lines: src/main/java/kr/pickple/back/game/implement/GameMapper.java
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public static GameDomain mapToGameDomain(
4040
.memberCount(gameEntity.getMemberCount())
4141
.maxMemberCount(gameEntity.getMaxMemberCount())
4242
.host(host)
43-
.addressDepth1(mainAddress.getAddressDepth1().getName())
44-
.addressDepth2(mainAddress.getAddressDepth2().getName())
43+
.addressDepth1Name(mainAddress.getAddressDepth1().getName())
44+
.addressDepth2Name(mainAddress.getAddressDepth2().getName())
4545
.positions(positions)
4646
.chatRoom(chatRoom)
4747
.build();
Collapse file

‎src/main/java/kr/pickple/back/game/implement/GameReader.java‎

Copy file name to clipboardExpand all lines: src/main/java/kr/pickple/back/game/implement/GameReader.java
+35-3Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,17 @@ public List<GameDomain> findGamesByAddress(final String address, final Pageable
8888
Sort.Order.asc("id")
8989
)
9090
);
91-
91+
9292
final MainAddress mainAddress = addressReader.readMainAddressByAddressStrings(address);
9393

94-
final Page<GameEntity> games = gameRepository.findByAddressDepth1IdAndAddressDepth2IdAndStatusNot(
94+
final Page<GameEntity> gameEntities = gameRepository.findByAddressDepth1IdAndAddressDepth2IdAndStatusNot(
9595
mainAddress.getAddressDepth1().getId(),
9696
mainAddress.getAddressDepth2().getId(),
9797
GameStatus.ENDED,
9898
pageRequest
9999
);
100100

101-
return games.stream()
101+
return gameEntities.stream()
102102
.map(gameEntity -> GameMapper.mapToGameDomain(
103103
gameEntity,
104104
mainAddress,
@@ -107,4 +107,36 @@ public List<GameDomain> findGamesByAddress(final String address, final Pageable
107107
readPositionsByGameId(gameEntity.getId())))
108108
.toList();
109109
}
110+
111+
public List<GameDomain> findGamesWithInAddress(MainAddress mainAddress) {
112+
final List<GameEntity> gameEntities = gameRepository.findGamesWithInAddress(
113+
mainAddress.getAddressDepth1(),
114+
mainAddress.getAddressDepth2()
115+
);
116+
117+
return gameEntities.stream()
118+
.map(gameEntity -> GameMapper.mapToGameDomain(
119+
gameEntity,
120+
mainAddress,
121+
memberReader.readByMemberId(gameEntity.getHostId()),
122+
chatRoomRepository.getChatRoomById(gameEntity.getChatRoomId()),
123+
readPositionsByGameId(gameEntity.getId())))
124+
.toList();
125+
}
126+
127+
public List<GameDomain> findGamesWithInDistance(Double latitude, Double longitude, Double distance) {
128+
final List<GameEntity> gameEntities = gameRepository.findGamesWithInDistance(latitude, longitude, distance);
129+
130+
return gameEntities.stream()
131+
.map(gameEntity -> GameMapper.mapToGameDomain(
132+
gameEntity,
133+
addressReader.readMainAddressById(
134+
gameEntity.getAddressDepth1Id(),
135+
gameEntity.getAddressDepth2Id()
136+
),
137+
memberReader.readByMemberId(gameEntity.getHostId()),
138+
chatRoomRepository.getChatRoomById(gameEntity.getChatRoomId()),
139+
readPositionsByGameId(gameEntity.getId())))
140+
.toList();
141+
}
110142
}
Collapse file

‎src/main/java/kr/pickple/back/game/service/GameService.java‎

Copy file name to clipboardExpand all lines: src/main/java/kr/pickple/back/game/service/GameService.java
+25-69Lines changed: 25 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import kr.pickple.back.auth.repository.RedisRepository;
2222
import kr.pickple.back.chat.domain.ChatRoom;
2323
import kr.pickple.back.chat.service.ChatRoomService;
24-
import kr.pickple.back.common.domain.RegistrationStatus;
2524
import kr.pickple.back.game.domain.Category;
2625
import kr.pickple.back.game.domain.GameDomain;
2726
import kr.pickple.back.game.domain.GameMember;
@@ -39,16 +38,10 @@
3938
import kr.pickple.back.game.repository.GameMemberRepository;
4039
import kr.pickple.back.game.repository.GamePositionRepository;
4140
import 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;
4541
import kr.pickple.back.member.domain.MemberDomain;
46-
import kr.pickple.back.member.domain.MemberPosition;
47-
import kr.pickple.back.member.dto.response.MemberResponse;
4842
import kr.pickple.back.member.implement.MemberReader;
4943
import kr.pickple.back.member.repository.MemberPositionRepository;
5044
import kr.pickple.back.member.repository.MemberRepository;
51-
import kr.pickple.back.position.domain.Position;
5245
import 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

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.