Skip to content

Commit

Permalink
Feat/concur (#33)
Browse files Browse the repository at this point in the history
* Feat: 입찰하기 임시 구현

* Feat: 입찰하기 임시 구현2

* Feat: 농산물에 멤버 및 찜수 추가
  • Loading branch information
klkim1913 authored Aug 1, 2023
1 parent 6cb0ed7 commit 94686c3
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 21 deletions.
19 changes: 10 additions & 9 deletions src/main/java/com/anywayclear/controller/AuctionController.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@
import com.anywayclear.service.AuctionService;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.annotation.Secured;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

@RestController("/api/auctions")

@RestController
@RequestMapping("/api/auctions")
//@Secured({"ROLE_CONSUMER", "ROLE_SELLER"})
public class AuctionController {
private final AuctionService auctionService;
Expand All @@ -19,8 +18,10 @@ public AuctionController(AuctionService auctionService) {
this.auctionService = auctionService;
}

// @PostMapping("/{auction-id}")
// public ResponseEntity<BiddingResponse> bidding(@PathVariable("auction-id") long auctionId, @Valid @RequestBody BiddingRequest request) {
// return auctionService.Bidding(auctionId,request);
// }
@PostMapping("/{auction-id}")
public ResponseEntity<BiddingResponse> bidding(
@PathVariable("auction-id") long auctionId,
@RequestBody BiddingRequest request) { // 인증정보 받기 추가 예정
return ResponseEntity.ok(auctionService.Bidding(auctionId,request));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class BiddingResponse {
private String userId;
private int price;
private final String userId;
private final int price;

@Builder
public BiddingResponse(String userId, int price) {
Expand Down
14 changes: 10 additions & 4 deletions src/main/java/com/anywayclear/dto/response/ProduceResponse.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.anywayclear.dto.response;

import com.anywayclear.entity.Auction;
import com.anywayclear.entity.Dib;
import com.anywayclear.entity.Member;
import com.anywayclear.entity.Produce;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;
import java.util.List;
Expand All @@ -13,6 +13,7 @@
//@Setter
public class ProduceResponse {
private final String name;
private final String seller;
private final String description;
private final String image;
private final int startPrice;
Expand All @@ -22,10 +23,12 @@ public class ProduceResponse {
private final LocalDateTime endDate;
private final int status;
private final List<AuctionResponse> auctionResponseList;
private final int dibNum;

@Builder
public ProduceResponse(String name, String description, String image, int startPrice, int kg, int ea, LocalDateTime startDate, LocalDateTime endDate,int status,AuctionResponseList auctionResponseList) {
public ProduceResponse(String name, Member member, String description, String image, int startPrice, int kg, int ea, LocalDateTime startDate, LocalDateTime endDate, int status, AuctionResponseList auctionResponseList, List<Dib> dibList) {
this.name = name;
this.seller = member.getNickname();
this.description = description;
this.image = image;
this.startPrice = startPrice;
Expand All @@ -35,11 +38,13 @@ public ProduceResponse(String name, String description, String image, int startP
this.endDate = endDate;
this.status = status;
this.auctionResponseList = auctionResponseList.getAuctionResponseList();
this.dibNum = dibList.size();
}

public static ProduceResponse toResponse(Produce produce) {
return ProduceResponse.builder()
.name(produce.getImage())
.name(produce.getName())
.member(produce.getMember())
.description(produce.getDescription())
.image(produce.getImage())
.startPrice(produce.getStartPrice())
Expand All @@ -49,6 +54,7 @@ public static ProduceResponse toResponse(Produce produce) {
.endDate(produce.getEndDate())
.status(produce.getStatus())
.auctionResponseList(new AuctionResponseList(produce.getAuctionList()))
.dibList(produce.getDibList())
.build();
}
}
1 change: 1 addition & 0 deletions src/main/java/com/anywayclear/entity/Auction.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Auction {
@Id
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/anywayclear/entity/Produce.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public class Produce {
@OneToMany(mappedBy = "produce")
private List<Auction> auctionList = new ArrayList<>();

@OneToMany(mappedBy = "produce")
private List<Dib> dibList = new ArrayList<>();
@Builder
public Produce(String name, String description, String image, int startPrice, int kg, int ea, LocalDateTime startDate, LocalDateTime endDate, int status) {
this.name = name;
Expand Down
18 changes: 14 additions & 4 deletions src/main/java/com/anywayclear/service/AuctionService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import com.anywayclear.dto.request.BiddingRequest;
import com.anywayclear.dto.response.BiddingResponse;
import com.anywayclear.entity.Auction;
import com.anywayclear.repository.AuctionRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class AuctionService {
Expand All @@ -13,8 +15,16 @@ public AuctionService(AuctionRepository auctionRepository) {
this.auctionRepository = auctionRepository;
}

// public BiddingResponse Bidding(long auctionId,BiddingRequest request) {
// int price = auctionRepository.findById(auctionId).orElseThrow(() -> new RuntimeException("없는 경매입니다.")).getPrice();
//
// }
@Transactional
public BiddingResponse Bidding(long auctionId,BiddingRequest request) {
Auction auction = auctionRepository.findById(auctionId).orElseThrow(() -> new RuntimeException("없는 경매입니다."));
if (request.getPrice() < auction.getPrice() + 100) { // 가격 기준 정해지면 수정할 로직
throw new RuntimeException("최저입찰보다 낮은 가격입니다!");
}
auction.setPrice(request.getPrice());
return BiddingResponse.builder()
.userId(request.getUserId()) // 유저 아이디는 요청한 유저에게 자동으로 받기로 수정 예정
.price(request.getPrice())
.build();
}
}

0 comments on commit 94686c3

Please sign in to comment.