프로젝트 로직

Welcome to Seoyun Dev Log·2023년 2월 9일
0

결제 요청

⭐️ 테이블 생성시 match 때문에 해줘야함

ALTER TABLE t_farm_auction ADD FULLTEXT INDEX idx_contents (auction_item);

ALTER TABLE t_point_event_log ADD FULLTEXT INDEX idx_contents (point_event_status);
java.sql.SQLException: Can't find FULLTEXT index matching the column list
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-j-8.0.31.jar:8.0.31]
    
2023-02-10 01:34:26.350  WARN 11597 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1191, SQLState: HY000
2023-02-10 01:34:26.350 ERROR 11597 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : Can't find FULLTEXT index matching the column list
2023-02-10 01:34:26.370  WARN 11597 --- [nio-8080-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler com.i5e2.likeawesomevegetable.exception.ExceptionManager#runtimeExceptionHandler(PaymentException)

1. 사용자 결제 요청

  • EndPoint: POST /api/v1/payment/point-info

  • 📌추가할 부분
    일반 유저로 들어올 경우 권한 없다고 처리해 줘야함

1) 사용자 결제 요청 테이블 저장

2) view 에서 결제 요청

  • EndPoint: GET /payment

3) 포인트 충전 (카드 결제)

  • 결제 성공시:
    결제 성공 리다이렉트 URL에는 paymentKey, orderId, amount 세 가지 쿼리 파라미터가 들어있습니다
https://{ORIGIN}/success?paymentKey={PAYMENT_KEY}&orderId={ORDER_ID}&amount={AMOUNT}
  • 결제 실패시:
    결제 요청에 실패하면 메서드를 호출할 때 파라미터에 포함해서 보냈던 failUrl로 리다이렉트 됩니다.
    failUrl에는 code, message, orderId 세 가지 쿼리 파라미터가 들어있습니다.
https://{ORIGIN}/fail?code={ERROR_CODE}&message={ERROR_MESSAGE}&orderId={ORDER_ID}

3-1) payment 데이터 저장

3-2) point event log 데이터 저장

3-3) user point 테이블 업데이트


2. 보증금 예치 요청

  • EndPoint: POST /api/v1/deposit-pending

1) user point deposit 테이블 데이터 저장

pending 상태

1-2) 보증금 예치하면 해당 Post글 DISABLED, ABLE로 노출 활성화 상태 변경 (update)

1-3) 사용자 포인트 테이블 정보 업데이트

point는 deposit을 예치했다고해서 차감되지 않는다
정산시 차감


3. 관리자 정산

관리자 회원가입

관리자 정산 요청

4. 환불 요청

  • 📌deposit으로 묶여있는 건 환불 요청 불가 로직 추가
  • 📌만약 현재 잔여 포인트보다 더 많은 환불을 요구하는 경우 예외처리

1. 사용자 결제 환불 요청 (order)

  • cancelOrderId : CANCEL-ROLE_COMPANY-날짜-UUID

2. paymentKey를 통해 전액 환불

📌 만약 요청금액과 paymetKey amount랑 일치하지 않을경우 예외처리

1-1) payment 테이블 payment status CANCELED로 상태 변경

1-2) point event log에 금액 음수(-)로 변경한 뒤 데이터 저장

📌point event status 변경할 수 있으면 변경 지금은 취소해도 NORMAL로 들어감

1-3) 사용자 포인트 차감

📌전체 포인트에서 환불 처리한 값 만큼 차감


마이페이지

1. 사용자 포인트 사용 내역 조회

  • 없는 경우 에러남: FULLTEXT 인덱스 안해줘서 에러남

2. 관리자 포인트 사용 내역 조회

사용자, 관리자 로그인 하지 않은 경우 (토큰 없는 경우 500에러남)
권한 없다고 에러 내줘야함

⭐️ 아이디값이 기업, 농가, 일반 모두 중복된다 1부터 index를 시작하기 때문에
그래서 그냥 아이디값을 넣고 접속하면 다른 유저로 접속할 수 있음

1. 기업 마이페이지

1) 작성한 모집글 리스트

  • 작성한 모집글 리스트 페이징

2) 입찰한 경매글 리스트

  • 입찰한 경매글 리스트 페이징

2. 농가 마이페이지

1) 참여한 모집글 리스트

  • 참여한 모집글 리스트

2) 경매글 리스트

  • 작성한 경매글 리스트

3. 공통 마이페이지

1) 사용자 포인트 사용내역 조회

4. 관리자 포인트 정산 내역 조회


경매 품목별 최저가 5개

http://localhost:8080/api/v1/item/lowest/151
  • EndPoint: path 품목코드
    : 품목코드 전달하면 해당 품목 경매 시작가 최저 5개의 게시글 가져옴
profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글

관련 채용 정보