Skip to content

Commit

Permalink
feat: 구매 API 로직 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
junseokkim committed Nov 14, 2023
1 parent 34a3107 commit 2016a5e
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 9 deletions.
9 changes: 9 additions & 0 deletions src/main/java/zerobibim/flory/domain/Image/entity/Image.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,21 @@ public class Image extends BaseTime {

private Long senderId;

private Long receiverId;

private Boolean isNFT;

@Builder
public Image(String url) {
this.url = url;
this.senderId = null;
this.receiverId = null;
this.isNFT = Boolean.FALSE;
}

public void updateImage(Long senderId, Long receiverId) {
this.senderId = senderId;
this.receiverId = receiverId;
this.isNFT = Boolean.TRUE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,15 @@
import zerobibim.flory.domain.Image.mapper.ImageMapper;
import zerobibim.flory.domain.Image.repository.ImageRepository;
import zerobibim.flory.global.common.ApiPayload.code.status.ErrorStatus;
import zerobibim.flory.global.common.EntityLoader;
import zerobibim.flory.global.common.ExceptionHandler;
import zerobibim.flory.utils.S3ImageComponent;

import java.util.Optional;

@Service
@RequiredArgsConstructor
public class ImageService {
public class ImageService implements EntityLoader<Image, Long> {

private final ImageMapper imageMapper;
private final ImageRepository imageRepository;
Expand All @@ -35,4 +38,17 @@ private String uploadImage(final MultipartFile flowerImage) {
}
return s3ImageComponent.uploadImage("flower-image", flowerImage);
}

@Transactional
public void makeNft(Long imageId, Long senderId, Long receiverId) {
Image image = loadEntity(imageId);
image.updateImage(senderId, receiverId);
}

@Override
public Image loadEntity(Long id) {
Optional<Image> image = imageRepository.findImageById(id);
if(image.isEmpty()) throw new ExceptionHandler(ErrorStatus.IMAGE_NOT_FOUND);
return image.get();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class PurchaseCreateRequest {
private String receiverNickname;
private Long flowerId;
private int flowerQuentity;
private String nftComment;
private LocalDate receiveDate;
private int deliveryTip;
private int totalPrice;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ public class Purchase extends BaseTime {

private int flowerCnt;

private String nftComment;

private int deliveryTip;

private int totalPrice;
Expand All @@ -50,15 +48,14 @@ public class Purchase extends BaseTime {
@Builder
public Purchase(Member sender, Member receiver, LocalDate receiveDate,
Flower flower, String receiverName, String receiverAddress,
int flowerCnt, String nftComment, int deliveryTip, int totalPrice) {
int flowerCnt, int deliveryTip, int totalPrice) {
this.sender = sender;
this.receiver = receiver;
this.receiveDate = receiveDate;
this.receiverName = receiverName;
this.receiverAddress = receiverAddress;
this.flower = flower;
this.flowerCnt = flowerCnt;
this.nftComment = nftComment;
this.deliveryTip = deliveryTip;
this.totalPrice = totalPrice;
this.isDelivered = Boolean.FALSE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
public class PurchaseMapper {
public Purchase toEntity(Member sender, Member receiver, LocalDate receiveDate,
Flower flower, String receiverName, String receiverAddress,
int flowerCnt, String nftComment, int deliveryTip, int totalPrice) {
int flowerCnt, int deliveryTip, int totalPrice) {
return Purchase.builder()
.sender(sender)
.receiver(receiver)
Expand All @@ -20,7 +20,6 @@ public Purchase toEntity(Member sender, Member receiver, LocalDate receiveDate,
.receiverName(receiverName)
.receiverAddress(receiverAddress)
.flowerCnt(flowerCnt)
.nftComment(nftComment)
.deliveryTip(deliveryTip)
.totalPrice(totalPrice)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import zerobibim.flory.domain.Image.service.ImageService;
import zerobibim.flory.domain.flower.entity.Flower;
import zerobibim.flory.domain.flower.service.FlowerService;
import zerobibim.flory.domain.member.entity.Member;
Expand All @@ -24,16 +25,19 @@ public class PurchaseService implements EntityLoader<Purchase, Long> {
private final PurchaseMapper purchaseMapper;
private final MemberService memberService;
private final FlowerService flowerService;
private final ImageService imageService;

public PurchaseIdResponse createPurchase(PurchaseCreateRequest request) {
Member sender = memberService.loadEntity(request.getMemberId());
Member receiver = memberService.findMemberByNickname(request.getReceiverNickname());
Flower flower = flowerService.loadEntity(request.getFlowerId());
if(flower.getImage() == null) throw new ExceptionHandler(ErrorStatus.NO_IMAGE_IN_FLOWER);
imageService.makeNft(flower.getImage().getId(), sender.getId(), receiver.getId());

Purchase newPurchase = purchaseRepository.save(
purchaseMapper.toEntity(
sender, receiver, request.getReceiveDate(), flower, request.getReceiverName(), request.getReceiverAddress(),
request.getFlowerQuentity(), request.getNftComment(), request.getDeliveryTip(), request.getTotalPrice()
request.getFlowerQuentity(), request.getDeliveryTip(), request.getTotalPrice()
));

return new PurchaseIdResponse(newPurchase.getId());
Expand Down

0 comments on commit 2016a5e

Please sign in to comment.