Skip to content

Commit

Permalink
Fix/auction (#103)
Browse files Browse the repository at this point in the history
* Fix: 각 품목 경매 완료조건 수정

* Fix: 농산물 최신순 정렬
  • Loading branch information
klkim1913 authored Aug 14, 2023
1 parent 09b1a67 commit a4e50d0
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import com.anywayclear.service.ProduceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
Expand Down Expand Up @@ -52,7 +54,7 @@ public ResponseEntity<ProduceResponse> getProduce(@Positive @PathVariable("id")
@GetMapping
public ResponseEntity<MultiResponse<ProduceResponse, Produce>> getProduceList(
@RequestParam(value = "userId", required = false) String sellerId, @RequestParam(required = false, defaultValue = "all") String filter, @RequestParam List<Integer> statusNoList,
Pageable pageable, @RequestParam(required = false, defaultValue = "") String name) {
@PageableDefault(sort = "createdAt", direction = Sort.Direction.DESC, size = 9) Pageable pageable, @RequestParam(required = false, defaultValue = "") String name) {
log.debug("컨트롤러 전체조회 진입");
produceService.updateProduceStatus();
return ResponseEntity.ok(produceService.getProducePage(statusNoList, pageable, name, sellerId, filter));
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/anywayclear/entity/Produce.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.anywayclear.entity;

import com.anywayclear.dto.request.ProduceCreateRequest;
import com.anywayclear.util.BaseTime;
import lombok.*;

import javax.persistence.*;
Expand All @@ -12,7 +13,7 @@
@Setter
@Entity
@NoArgsConstructor
public class Produce {
public class Produce extends BaseTime {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand Down
33 changes: 11 additions & 22 deletions src/main/java/com/anywayclear/service/AuctionService.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ public class AuctionService {

private final DealService dealService;

public AuctionService(AuctionRepository auctionRepository,
MemberRepository memberRepository, ProduceRepository produceRepository, DealService dealService) {
public AuctionService(AuctionRepository auctionRepository, MemberRepository memberRepository, ProduceRepository produceRepository, DealService dealService) {
this.auctionRepository = auctionRepository;
this.memberRepository = memberRepository;
this.produceRepository = produceRepository;
Expand All @@ -51,24 +50,21 @@ public BiddingResponse Bidding(long auctionId, String consumerId, BiddingRequest
}
auction.setPrice(request.getPrice()); // 트랜잭션 내에서 변경시 자동 update
auction.setNickname(consumer.getNickname());
return BiddingResponse.builder()
.userId(consumerId)
.nickname(consumer.getNickname())
.updatedAt(auction.getUpdatedAt())
.price(request.getPrice())
.build();
return BiddingResponse.builder().userId(consumerId).nickname(consumer.getNickname()).updatedAt(auction.getUpdatedAt()).price(request.getPrice()).build();
}

@Transactional
public void checkAuctionFinished(long auctionId) {
Auction auction=auctionRepository.findById(auctionId).orElseThrow(()->new CustomException(INVALID_AUCTION_ID));
Auction auction = auctionRepository.findById(auctionId).orElseThrow(() -> new CustomException(INVALID_AUCTION_ID));
Produce produce = auction.getProduce();
if (produce.getStatus() == 1 && !auction.isClosed() && LocalDateTime.now().isAfter(auction.getLastBidding().plusMinutes(5))) {
auction.setClosed(true);
produce.setEa(produce.getEa() - 1);
// 한 상품의 모든 경매가 종료되었을 경우
if (produce.getEa() == 0) {
produce.setStatus(2);
// produce.setEa(produce.getEa() - 1);
produce.setStatus(2);
for (Auction a : produce.getAuctionList()) {
if (!a.isClosed()) {
produce.setStatus(1);
}
}
}
}
Expand All @@ -85,12 +81,7 @@ public AuctionResponseList getAuctionList(long produceId) {
public Long changeFinished(long auctionId) {
Auction auction = auctionRepository.findById(auctionId).orElseThrow(() -> new CustomException(INVALID_AUCTION_ID));
auction.setClosed(true);
DealCreateRequest dealCreateRequest = DealCreateRequest.builder()
.endPrice(auction.getPrice())
.consumer(memberRepository.findByNickname(auction.getNickname()).orElseThrow(() -> new CustomException(INVALID_MEMBER)))
.seller(auction.getProduce().getSeller())
.produce(auction.getProduce())
.build();
DealCreateRequest dealCreateRequest = DealCreateRequest.builder().endPrice(auction.getPrice()).consumer(memberRepository.findByNickname(auction.getNickname()).orElseThrow(() -> new CustomException(INVALID_MEMBER))).seller(auction.getProduce().getSeller()).produce(auction.getProduce()).build();
return dealService.createDeal(dealCreateRequest);
}

Expand All @@ -101,8 +92,6 @@ public Long changeFinished(long auctionId) {
public BiddingResponse autoBidding(long auctionId, BiddingRequest request) {
Auction auction = auctionRepository.findById(auctionId).orElseThrow(() -> new CustomException(INVALID_AUCTION_ID));
auction.setPrice(auction.getPrice() + 100);
return BiddingResponse.builder()
.price(request.getPrice())
.build();
return BiddingResponse.builder().price(request.getPrice()).build();
}
}

0 comments on commit a4e50d0

Please sign in to comment.