작업한 코드
// 나의 판매상품 수정
@Transactional
public void updateSellerProduct(Long productId, ProductUpdateRequest productUpdateRequest, User user) {
Product product = productRepository.findById(productId).orElseThrow(
() -> new IllegalArgumentException("게시물이 존재하지 않습니다.")
);
if (product.getSeller().getId() != user.getId()) {
throw new IllegalArgumentException("판매자가 아닙니다.");
}
product.update(productUpdateRequest.getTitle(), productUpdateRequest.getPrice(), productUpdateRequest.getProductDetail());
productRepository.save(product);
// return new SellerProductResponse(product);
}
// 나의 판매상품 삭제
@Transactional
public void deleteSellerProduct(Long productId, User user) {
Product product = productRepository.findById(productId).orElseThrow(
() -> new IllegalArgumentException("게시물이 존재하지 않습니다.")
);
if (product.getSeller().getId() != user.getId()) {
throw new IllegalArgumentException("판매자가 아닙니다.");
}
productRepository.delete(product);
}
// 전체상품 고객(구매)요청 목록 조회
@Transactional
public List<ProductPurchasePermissionResponse> getPurchasePermissionList() {
List<Product> products = productRepository.findAllByOrderByModifiedAtDesc();
List<ProductPurchasePermissionResponse> productPurchasePermissionResponses = new ArrayList<>();
for (Product product : products) {
List<PurchasePermission> purchasePermissions = purchasePermissionRepository.findPurchasePermissionBy();
List<PurchasePermissionResponse> purchasePermissionResponses = new ArrayList<>();
User user = new User(); // ??
for (PurchasePermission purchasePermission : purchasePermissions) {
purchasePermissionResponses.add(new PurchasePermissionResponse(user,purchasePermission));
}
productPurchasePermissionResponses.add(new ProductPurchasePermissionResponse(product));
}
return productPurchasePermissionResponses;
}
// 고객(거래)요청 수락&완료
@Transactional
public void updatePurchasePermission(Long permissionId, User username) {
PurchasePermission purchasePermission = purchasePermissionRepository.findById(permissionId).orElseThrow(
() -> new IllegalArgumentException("구매 요청이 존재하지 않습니다.")
);
if (!purchasePermission.getBidder().equals(username)) {
throw new IllegalArgumentException("경매자만 수정할 수 있습니다.");
}
// PurchasePermission purchasePermission1 = purchasePermissionRepository.findByTransactionStatus(TransactionStatusEnum.WAITING).orElseThrow(
// () -> new IllegalArgumentException("진행 중이 아닙니다.")
// );
purchasePermissionRepository.save(
new PurchasePermission(TransactionStatusEnum.ACCEPTANCE)
);
// 거부...
// purchasePermissionRepository.save(
// new PurchasePermission(TransactionStatusEnum.REFUSAL)
// );
}
// 나의 판매상품 수정
@PutMapping("/sellers/products/{productId}")
public ResponseEntity<StatusResponse> updateSellerProduct(@PathVariable Long productId, @RequestBody ProductUpdateRequest productUpdateRequest, User user) {
StatusResponse statusResponse = new StatusResponse(HttpStatus.CREATED.value(), "수정 완료");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", StandardCharsets.UTF_8));
sellerService.updateSellerProduct(productId, productUpdateRequest, user);
return new ResponseEntity<>(statusResponse, headers, HttpStatus.CREATED);
}
// 전체상품 고객(구매)요청 목록 조회
@GetMapping("/sellers/purchase-permission")
public List<ProductPurchasePermissionResponse> getPurchasePermissionList() {
return sellerService.getPurchasePermissionList();
}
// 고객(거래)요청 수락&완료
@PutMapping("/sellers/purchase-permission/{permissionId}")
public ResponseEntity<StatusResponse> updatePurchasePermission(@PathVariable Long permissionId, @AuthenticationPrincipal UserDetailsImpl userDetails, User username) {
sellerService.updatePurchasePermission(permissionId, username);
return ResponseEntity.accepted().body(new StatusResponse(HttpStatus.ACCEPTED.value(), "구매 요청 허락"));
// return ResponseEntity.accepted().body(new StatusResponse(HttpStatus.ACCEPTED.value(), "구매 요청 거부"));
}
팀원들과 합쳤을 때 실행에 문제 없고, 콘솔 잘 작동하는 거 확인 완료! 내일까지 최대한 빨리 기능 구현 마무리 하고 리펙토링 해야 함
이제 여기서 문제 많이 발생할 거 같은데..... 그래도 우선 실행창에서 오류가 안 뜬다는 것만 해도 행복함,,