Skip to content

Commit f6b9384

Browse files
committed
fix: code rabbit 수정요청 사항
1 parent 2780c92 commit f6b9384

File tree

8 files changed

+32
-10
lines changed

8 files changed

+32
-10
lines changed

nginx/nginx.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ http {
2828
# 백엔드 API
2929
location /api/ {
3030
# [중요] Docker 컨테이너 이름(ongil-backend)으로 통신
31-
proxy_pass http://ongil-backend:8080/;
31+
proxy_pass http://ongil-backend:8080;
3232
proxy_set_header Host $host;
3333
proxy_set_header X-Real-IP $remote_addr;
3434
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

src/main/java/com/ongil/backend/domain/order/converter/OrderConverter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public OrderDetailResponse toDetailResponse(Order order, List<OrderItemDto> item
6969
order.getTotalAmount(),
7070
order.getRecipient(),
7171
order.getRecipientPhone(),
72-
order.getDeliveryAddress() + " " + (order.getDetailAddress() != null ? order.getDetailAddress() : ""),
72+
order.getDeliveryAddress() + (order.getDetailAddress() != null ? " " + order.getDetailAddress() : ""),
7373
order.getDeliveryMessage(),
7474
order.getCreatedAt()
7575
);
@@ -134,12 +134,13 @@ public OrderCancelResponse toCancelResponse(Order order, List<OrderItemDto> item
134134
order.getId(),
135135
order.getOrderNumber(),
136136
order.getOrderStatus(),
137+
order.getTotalAmount(),
137138
order.getCanceledAt(),
138139
order.getCancelReason(),
139140
order.getCancelDetail(),
140141
itemDtos,
141142
refundInfo,
142-
order.getDeliveryAddress() + " " + (order.getDetailAddress() != null ? order.getDetailAddress() : ""),
143+
order.getDeliveryAddress() + (order.getDetailAddress() != null ? " " + order.getDetailAddress() : ""),
143144
order.getRecipient(),
144145
order.getRecipientPhone(),
145146
order.getDeliveryMessage(),

src/main/java/com/ongil/backend/domain/order/dto/response/OrderCancelResponse.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ public record OrderCancelResponse(
2020
@Schema(description = "주문 상태")
2121
OrderStatus orderStatus,
2222

23+
@Schema(description = "주문 총액")
24+
Integer totalAmount,
25+
2326
@Schema(description = "취소 일시")
2427
LocalDateTime canceledAt,
2528

src/main/java/com/ongil/backend/domain/order/dto/response/RefundInfoDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public record RefundInfoDto(
1111
@Schema(description = "배송비")
1212
Integer shippingFee,
1313

14-
@Schema(description = "반품비 (상품 금액 - 배송비)")
15-
Integer returnFee
14+
@Schema(description = "환불 금액 (상품 금액 - 배송비)")
15+
Integer refundAmount
1616
) {
1717
}

src/main/java/com/ongil/backend/domain/order/service/OrderService.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.time.LocalTime;
66
import java.util.ArrayList;
77
import java.util.List;
8+
import java.util.Optional;
89

910
import org.springframework.data.domain.Page;
1011
import org.springframework.data.domain.Pageable;
@@ -45,7 +46,9 @@
4546
import com.ongil.backend.global.common.exception.ErrorCode;
4647

4748
import lombok.RequiredArgsConstructor;
49+
import lombok.extern.slf4j.Slf4j;
4850

51+
@Slf4j
4952
@Service
5053
@RequiredArgsConstructor
5154
@Transactional(readOnly = true)
@@ -160,11 +163,19 @@ public OrderCancelResponse cancelOrder(Long userId, Long orderId, OrderCancelReq
160163

161164
// 4. 재고 복원
162165
for (OrderItem orderItem : order.getOrderItems()) {
163-
productOptionRepository.findByProductIdAndSizeAndColor(
166+
Optional<ProductOption> optionOpt = productOptionRepository.findByProductIdAndSizeAndColor(
164167
orderItem.getProduct().getId(),
165168
orderItem.getSelectedSize(),
166169
orderItem.getSelectedColor()
167-
).ifPresent(option -> option.restoreStock(orderItem.getQuantity()));
170+
);
171+
if (optionOpt.isPresent()) {
172+
optionOpt.get().restoreStock(orderItem.getQuantity());
173+
} else {
174+
log.warn("재고 복원 실패 - productId: {}, size: {}, color: {}",
175+
orderItem.getProduct().getId(),
176+
orderItem.getSelectedSize(),
177+
orderItem.getSelectedColor());
178+
}
168179
}
169180

170181
// 5. 장바구니 담기 (선택)
@@ -191,7 +202,7 @@ public OrderDetailResponse updateDeliveryAddress(Long userId, Long orderId, Deli
191202
Order order = getOrderAndValidateOwner(userId, orderId);
192203

193204
if (order.getOrderStatus() != OrderStatus.ORDER_RECEIVED) {
194-
throw new AppException(ErrorCode.ORDER_CANCEL_NOT_ALLOWED);
205+
throw new AppException(ErrorCode.ORDER_UPDATE_NOT_ALLOWED);
195206
}
196207

197208
Address address = addressRepository.findById(request.addressId())
@@ -238,9 +249,9 @@ private RefundInfoDto calculateRefundInfo(Order order) {
238249
.mapToInt(item -> item.getPriceAtOrder() * item.getQuantity())
239250
.sum();
240251
int shippingFee = 0;
241-
int returnFee = Math.max(productAmount - shippingFee, 0);
252+
int refundAmount = Math.max(productAmount - shippingFee, 0);
242253

243-
return new RefundInfoDto(productAmount, shippingFee, returnFee);
254+
return new RefundInfoDto(productAmount, shippingFee, refundAmount);
244255
}
245256

246257
public OrderHistoryResponse getOrderHistory(

src/main/java/com/ongil/backend/domain/payment/entity/Payment.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ public Payment(Integer paymentAmount, Integer usedPoints, PaymentMethod paymentM
5656
}
5757

5858
public void cancelPayment() {
59+
if (this.paymentStatus == PaymentStatus.CANCELED) {
60+
return;
61+
}
5962
this.paymentStatus = PaymentStatus.CANCELED;
6063
this.canceledAt = LocalDateTime.now();
6164
}

src/main/java/com/ongil/backend/domain/product/entity/ProductOption.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public ProductOption(Product product, String size, String color, Integer stock)
4242

4343
// 재고 복원
4444
public void restoreStock(int quantity) {
45+
if (quantity <= 0) {
46+
throw new IllegalArgumentException("복원 수량은 양수여야 합니다.");
47+
}
4548
this.stock += quantity;
4649
}
4750

src/main/java/com/ongil/backend/global/common/exception/ErrorCode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public enum ErrorCode {
6767
INVALID_POINT_USAGE(HttpStatus.BAD_REQUEST, "포인트 사용 금액이 유효하지 않습니다. (0 미만 혹은 결제 금액 초과)", "ORDER-004"),
6868
ORDER_CANCEL_NOT_ALLOWED(HttpStatus.BAD_REQUEST, "주문 접수 상태에서만 취소가 가능합니다.", "ORDER-005"),
6969
ORDER_ALREADY_CANCELED(HttpStatus.BAD_REQUEST, "이미 취소된 주문입니다.", "ORDER-006"),
70+
ORDER_UPDATE_NOT_ALLOWED(HttpStatus.BAD_REQUEST, "주문 접수 상태에서만 변경이 가능합니다.", "ORDER-007"),
7071

7172
// ADDRESS
7273
ADDRESS_NOT_FOUND(HttpStatus.NOT_FOUND, "배송지 정보를 찾을 수 없습니다.", "ADDRESS-001"),

0 commit comments

Comments
 (0)