1
1
package com .jangburich .domain .store .service ;
2
2
3
+ <<<<<<< Updated upstream
3
4
import java .time .LocalDate ;
5
+ =======
6
+ >>>>>>> Stashed changes
4
7
import java .util .Optional ;
5
8
6
9
import org .springframework .stereotype .Service ;
@@ -47,6 +50,7 @@ public Message prepay(String userId, PrepayRequest prepayRequest) {
47
50
Store store = storeRepository .findById (prepayRequest .storeId ())
48
51
.orElseThrow (() -> new IllegalArgumentException ("유효하지 않은 가게 id 입니다." ));
49
52
53
+ <<<<<<< Updated upstream
50
54
team .validateIsTeamLeader (team .getTeamLeader ().getUser_id (), user .getUserId ());
51
55
52
56
user .validateHasPointWithPrepayAmount (prepayRequest .prepayAmount (), user .getPoint ());
@@ -92,8 +96,52 @@ public Message prepay(String userId, PrepayRequest prepayRequest) {
92
96
}
93
97
94
98
StoreTeam storeTeam = storeAndTeam .get ();
99
+ storeTeam .setPersonalAllocatedPoint (prepayRequest .personalAllocatedAmount ());
95
100
storeTeam .recharge (prepayRequest .prepayAmount ());
96
101
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
97
145
return Message .builder ()
98
146
.message ("매장 선결제가 완료되었습니다." )
99
147
.build ();
@@ -104,6 +152,12 @@ public PrepaymentInfoResponse getPrepayInfo(String userId, Long storeId, Long te
104
152
User user = userRepository .findByProviderId (userId )
105
153
.orElseThrow (() -> new DefaultNullPointerException (ErrorCode .INVALID_AUTHENTICATION ));
106
154
155
+ <<<<<<< Updated upstream
156
+ =======
157
+ Team team = teamRepository .findById (teamId )
158
+ .orElseThrow (() -> new IllegalArgumentException ("유효하지 않은 팀 id 입니다." ));
159
+
160
+ >>>>>>> Stashed changes
107
161
StoreTeam storeTeam = storeTeamRepository .findByStoreIdAndTeamId (storeId , teamId )
108
162
.orElse (null );
109
163
0 commit comments