Skip to content

Commit 86dbea0

Browse files
authored
Merge pull request #179 from 9oormthon-univ/develop
Develop
2 parents 0638733 + 567e3a8 commit 86dbea0

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

src/main/java/com/jangburich/domain/store/service/PrepayService.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.jangburich.domain.store.service;
22

3+
<<<<<<< Updated upstream
34
import java.time.LocalDate;
5+
=======
6+
>>>>>>> Stashed changes
47
import java.util.Optional;
58

69
import org.springframework.stereotype.Service;
@@ -47,6 +50,7 @@ public Message prepay(String userId, PrepayRequest prepayRequest) {
4750
Store store = storeRepository.findById(prepayRequest.storeId())
4851
.orElseThrow(() -> new IllegalArgumentException("유효하지 않은 가게 id 입니다."));
4952

53+
<<<<<<< Updated upstream
5054
team.validateIsTeamLeader(team.getTeamLeader().getUser_id(), user.getUserId());
5155

5256
user.validateHasPointWithPrepayAmount(prepayRequest.prepayAmount(), user.getPoint());
@@ -92,8 +96,52 @@ public Message prepay(String userId, PrepayRequest prepayRequest) {
9296
}
9397

9498
StoreTeam storeTeam = storeAndTeam.get();
99+
storeTeam.setPersonalAllocatedPoint(prepayRequest.personalAllocatedAmount());
95100
storeTeam.recharge(prepayRequest.prepayAmount());
96101

102+
=======
103+
if (!team.getTeamLeader().getUser_id().equals(user.getUserId())) {
104+
return Message.builder()
105+
.message("팀의 리더가 아닌 사람은 선결제를 할 수 없습니다.")
106+
.build();
107+
}
108+
109+
if (prepayRequest.prepayAmount() > user.getPoint()) {
110+
return Message.builder()
111+
.message("보유하고 있는 금액이 선결제 하려는 금액보다 적습니다.")
112+
.build();
113+
}
114+
115+
user.usePoint(prepayRequest.prepayAmount());
116+
PointTransaction pointTransaction = PointTransaction
117+
.builder()
118+
.transactionType(TransactionType.PREPAY)
119+
.transactionedPoint(prepayRequest.prepayAmount())
120+
.user(user)
121+
.store(store)
122+
.build();
123+
124+
pointTransactionRepository.save(pointTransaction);
125+
126+
StoreTeam buildedStoreTeam = StoreTeam
127+
.builder()
128+
.team(team)
129+
.store(store)
130+
.point(prepayRequest.prepayAmount())
131+
.personalAllocatedPoint(prepayRequest.personalAllocatedAmount())
132+
.remainPoint(prepayRequest.prepayAmount())
133+
.build();
134+
135+
Optional<StoreTeam> storeAndTeam = storeTeamRepository.findByStoreAndTeam(store, team);
136+
137+
if (storeAndTeam.isEmpty()) {
138+
storeAndTeam = Optional.of(storeTeamRepository.save(buildedStoreTeam));
139+
}
140+
141+
StoreTeam storeTeam = storeAndTeam.get();
142+
storeTeam.recharge(prepayRequest.prepayAmount());
143+
144+
>>>>>>> Stashed changes
97145
return Message.builder()
98146
.message("매장 선결제가 완료되었습니다.")
99147
.build();
@@ -104,6 +152,12 @@ public PrepaymentInfoResponse getPrepayInfo(String userId, Long storeId, Long te
104152
User user = userRepository.findByProviderId(userId)
105153
.orElseThrow(() -> new DefaultNullPointerException(ErrorCode.INVALID_AUTHENTICATION));
106154

155+
<<<<<<< Updated upstream
156+
=======
157+
Team team = teamRepository.findById(teamId)
158+
.orElseThrow(() -> new IllegalArgumentException("유효하지 않은 팀 id 입니다."));
159+
160+
>>>>>>> Stashed changes
107161
StoreTeam storeTeam = storeTeamRepository.findByStoreIdAndTeamId(storeId, teamId)
108162
.orElse(null);
109163

0 commit comments

Comments
 (0)