Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#282] 대기열 기능 구현 #283

Merged
merged 220 commits into from
Oct 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
a1605db
[Init] frontend 초기세팅
kangkings Sep 4, 2024
d93e042
[Setting] vue프로젝트 초기 환경설정(#96) (#97)
kangkings Sep 6, 2024
853fa24
[FRONT_USER_003] 로그인 화면 구현 (#50) (#98)
kangkings Sep 6, 2024
36b8820
[#69] 판매자 게시글 컴포넌트 구현 (#100)
ohgyulim Sep 6, 2024
36de408
[#48] 일반회원가입 화면 구현 (#99)
kangkings Sep 6, 2024
a96db15
[Feat] OrdersMain 컴포넌트 구현 (#92)
syy0O Sep 6, 2024
cf2f767
[Feat] OrdersPages 구현 (#92)
syy0O Sep 6, 2024
15657f0
[Feat] orders 라우터 설정 구현
syy0O Sep 6, 2024
cdef239
Merge branch 'frontend-dev' into frontend/feature/orders/OrderMainCom…
syy0O Sep 6, 2024
23e5016
Merge pull request #101 from beyond-sw-camp/frontend/feature/orders/O…
syy0O Sep 6, 2024
14994d2
[Feat] 업체회원가입 화면 구현 (#49) (#102)
kangkings Sep 6, 2024
f2af225
[Feat] 마이페이지 기본 화면 구현 (#61)
Sep 6, 2024
76bafe4
[Chore] 상세 버튼 CSS 수정 (#61)
Sep 7, 2024
2032960
[#51] 아이디찾기 화면 구현 (#103)
kangkings Sep 7, 2024
3ab629e
[Feat] 아이디찾기 성공 화면 구현 (#52) (#104)
kangkings Sep 7, 2024
19775d8
[#54] 비밀번호 재설정 화면 구현 (#106)
kangkings Sep 7, 2024
4205d18
[Chore] 마이페이지 Aside CSS 수정 (#61)
Sep 7, 2024
da5ca6c
Merge branch 'frontend-dev' into frontend/feature/user/MyPage
NakyungSong Sep 7, 2024
38f8c6c
Merge pull request #107 from beyond-sw-camp/frontend/feature/user/MyPage
NakyungSong Sep 7, 2024
116cf9d
[Feat] 비밀번호 찾기 화면 구현 (#53) (#108)
kangkings Sep 9, 2024
21ad257
[Feat] 비밀번호찾기 대기 화면 구현 (#105) (#109)
kangkings Sep 9, 2024
7af7477
[Feat] 잘못된 비밀번호 재설정 화면 구현 (#55) (#110)
kangkings Sep 9, 2024
8b8442e
[#62] 주문 상세 조회 화면 구현 (#111)
NakyungSong Sep 9, 2024
497727f
[#73] 판매자 게시글 등록 페이지 기능 구현 (#112)
ohgyulim Sep 9, 2024
110e5c2
[Feat] 게시글 상세 화면 구현 (#58)
syy0O Sep 9, 2024
9304fca
[Feat] 게시글 상세화면 문의, 설명 tab 구현
syy0O Sep 9, 2024
ed4193b
[Feat] 로그인 기능 구현 (#78) (#115)
kangkings Sep 9, 2024
8ae6e54
[#113] 판매자 게시글 목록 조회 화면 구현 (#116)
ohgyulim Sep 9, 2024
0cabf16
[Feat] 게시글 상세화면 nav component 분리
syy0O Sep 9, 2024
a00c494
[#117] 카테고리별 게시글 목록 조회 화면 구현 (#118)
kangkings Sep 9, 2024
da29e17
[Feat] 게시글 상세화면 css 수정 (#58)
syy0O Sep 9, 2024
39c4322
[Feat] 상품 상세페이지 css 수정 (#58)
syy0O Sep 9, 2024
394e9a3
[Feat] cursor pointer 추가
syy0O Sep 9, 2024
c5a1c67
[Feat] cursor pointer 추가 (#58)
syy0O Sep 9, 2024
ca575c2
Merge branch 'frontend-dev' into frontend/feature/board/BoardDetailPage
syy0O Sep 9, 2024
79c1ba0
Merge pull request #119 from beyond-sw-camp/frontend/feature/board/Bo…
syy0O Sep 9, 2024
53355cf
[#72] 일반회원가입 기능 구현 (#120)
kangkings Sep 9, 2024
cd967e2
[Feat] 구매하기 버튼 emit 동작 구현 (#68)
syy0O Sep 9, 2024
15fe793
[#75] 메인 화면 구현 (#121)
NakyungSong Sep 10, 2024
7fb13bb
[#74] 업체회원가입 기능 구현 (#122)
kangkings Sep 10, 2024
cddc5aa
[Feat] order 생성 기능 구현 (#68)
syy0O Sep 10, 2024
2544212
[Feat] store key 환경변수 처리 구현 (#68)
syy0O Sep 10, 2024
6bc8455
[#114] 판매자 게시글 목록 조회 페이지 기능 구현 (#123)
ohgyulim Sep 10, 2024
19bad32
[#88] 1:1 문의 목록 조회 화면 구현 (#124)
NakyungSong Sep 10, 2024
8fac9de
[#70] 판매자 주문 관리 화면 구현 (#126)
ohgyulim Sep 10, 2024
9d68b16
[Feat] 주문 내역 컴포넌트화 & 포인트 유효성 검증 구현 (#68)
syy0O Sep 10, 2024
2e72c40
[#63] 관심게시글 조회 화면 구현 (#127)
NakyungSong Sep 10, 2024
fddcd7c
[Feat] 포인트 기능 가격의 10%만 사용가능하게 구현 (#68)
syy0O Sep 11, 2024
42a935d
[Fix] 포인트 최대 가능금액 에러 수정 (#68)
syy0O Sep 11, 2024
b7f54c3
[FIx] 포인트 validation 기능 수정 (#68)
syy0O Sep 11, 2024
b403bd8
[Fix] 포인트 입력창 한글입력 안되게 수정 (#68)
syy0O Sep 11, 2024
b3e0f45
Merge branch 'frontend-dev' into frontend/feature/orders/OrdersPage-O…
syy0O Sep 11, 2024
3c6c053
Merge pull request #129 from beyond-sw-camp/frontend/feature/orders/O…
syy0O Sep 11, 2024
df56bc7
[#71] 1:1 문의 관리 화면 구현 (#130)
ohgyulim Sep 11, 2024
52b54ea
[#85] 문의 등록 화면 구현 (#133)
NakyungSong Sep 11, 2024
6e41816
[#66] 배송지 관리 화면 구현 (#134)
ohgyulim Sep 11, 2024
d5bbb22
[#135] 헤더 로고 이미지 변경 (#136)
NakyungSong Sep 12, 2024
6fb3bb2
[Feat] 문의 등록 시 문의 목록에 업데이트 기능 추가 (#59)
Sep 12, 2024
7c39a36
[Feat] 문의 목록에서 자세히 보기 토글 기능 구현 (#64)
Sep 12, 2024
5e4b534
[Feat] portone api 설정
syy0O Sep 12, 2024
52d244f
[Feat] proxy path 설정 (#141)
syy0O Sep 12, 2024
8fe766b
[Feat] portone api v1으로 버전 변경 (#141)
syy0O Sep 12, 2024
7d104c9
Merge pull request #142 from beyond-sw-camp/frontend/feature/orders/O…
syy0O Sep 12, 2024
719e1f9
[Feat] 작성자 이름 마스킹 처리 구현 (예: 송*경) (#64)
Sep 13, 2024
44978dd
[Feat] 수정 모달창에 기존 문의 내용 세팅 및 수정된 내용 업데이트 기능 구현 (#64)
Sep 13, 2024
7978801
[#144] 게시글 작성 할인율 입력 기능 구현 (#147)
ohgyulim Sep 13, 2024
ed6cb12
[#64] 문의 상세 조회 화면 구현 (#145)
NakyungSong Sep 13, 2024
91d9b35
[#60] 문의 목록 조회 기능 구현 (#152)
NakyungSong Sep 16, 2024
b99812a
[Fix] 충돌 해결
ohgyulim Sep 17, 2024
df7d4e0
[#157] 판매자 게시글 목록 조회 페이징 구현 (#158)
ohgyulim Sep 17, 2024
babbcb7
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 17, 2024
294e024
[Fix] 충돌 해결
ohgyulim Sep 17, 2024
25c0888
[Feat] 주문 페이지 구현 (#57)
syy0O Sep 18, 2024
9174b97
[Feat] 주문 완료 및 결제 취소 기능 구현 (#57)
syy0O Sep 18, 2024
dc5ad85
[Feat] 받는사람 전화번호, 이름 유효성 검증 구현 (#57)
syy0O Sep 18, 2024
dcf6d52
[Feat] 뒤로가기 누르면, 주문 취소 처리 구현 (#57)
syy0O Sep 18, 2024
dcfaea3
[Fix] 함수명 오타 수정 (#57)
syy0O Sep 18, 2024
68613f4
[#78] 로그인 기능 개선 - 소셜로그인 추가 및 백엔드 연동 (#155)
kangkings Sep 18, 2024
9d2b113
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 18, 2024
ccbca70
[Feat]일반회원정보 조회 페이지 기능 구현(#95)
kangkings Sep 18, 2024
c026af5
[Feat] 일반회원정보 조회기능 구현 (#6)
kangkings Sep 18, 2024
e45f730
[Feat] 배송지 관리 기능 구현 (#94)
kangkings Sep 19, 2024
67bc168
Merge branch 'frontend/feature/user/mypage-address' of https://github…
ohgyulim Sep 19, 2024
9a8b9b9
[#164] 판매자 게시글 상세 조회 백엔드 연동 구현 (#169)
ohgyulim Sep 19, 2024
acafacc
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 19, 2024
2fe6d16
[#167] 게시글 조회 백엔드 연동 구현 (#171)
ohgyulim Sep 19, 2024
0181aac
[Fix] 충돌 해결
ohgyulim Sep 19, 2024
b8bc60a
[hotfix] 충돌로 인한 파일 변경 내역 수정 (#176)
ohgyulim Sep 19, 2024
c3329d3
[Feat] 결제 취소처리 수정 (#57)
syy0O Sep 19, 2024
02689b8
Merge branch 'frontend-dev' into frontend/feature/orders/complete-orders
syy0O Sep 19, 2024
236d999
Merge pull request #166 from beyond-sw-camp/frontend/feature/orders/c…
syy0O Sep 19, 2024
994c014
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 19, 2024
df5defb
[#94, #95] 배송지 관리 기능, 일반회원정보 조회 기능 구현 (#175)
kangkings Sep 19, 2024
b0b23ac
[Fix] 병합 오류 수정
kangkings Sep 19, 2024
17a04d6
[#94] 배송지 관리 기능(삭제) 구현 (#182)
kangkings Sep 19, 2024
9838665
[#59, #60] 문의 등록 기능 구현, 문의 목록 조회 기능 구현 (#177)
NakyungSong Sep 19, 2024
9c5c6b9
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 19, 2024
18863ea
[Feat] 판매자 주문 목록 조회 구현 (#76)
syy0O Sep 20, 2024
86ce3e7
[Feat] 배송지 관리기능 구현 - 기본 배송지 설정 (#94) (#185)
kangkings Sep 20, 2024
afc8477
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 20, 2024
b687c7b
[Feat] 판매자 주문 내역 상세 조회 구현 (#76)
syy0O Sep 20, 2024
4a6b5a2
[Feat] 주문내역 상세조회 데이터 연결 구현 (#76)
syy0O Sep 20, 2024
81412a0
[#60] 문의 목록 조회 기능 구현 (#183)
NakyungSong Sep 20, 2024
23fc902
[#94] 배송지 관리 기능 구현 (#187)
kangkings Sep 20, 2024
4b900c3
[Feat] 주문 완료 상태 뱃지 css 변경 (#76)
syy0O Sep 20, 2024
7aec815
[Fix] 충돌해결
ohgyulim Sep 20, 2024
375e259
[#56] 메인 페이지 기능 구현 (#191)
ohgyulim Sep 20, 2024
62e292e
Merge branch 'frontend-dev' into frontend/feature/orders/company-list
syy0O Sep 21, 2024
00fe958
[Fix] conflict 해결
syy0O Sep 21, 2024
f044032
Merge pull request #192 from beyond-sw-camp/frontend/feature/orders/c…
syy0O Sep 21, 2024
731c6fc
[Fix] store 이름 수정
syy0O Sep 21, 2024
392ee16
[Feat] 주문 내역, 상세 조회 컴포넌트 구현 (#87, #89)
syy0O Sep 21, 2024
02e7eba
[Feat] mypage 주문 내역 조회 구현 (#87)
syy0O Sep 21, 2024
42a2b35
[Feat] 주문 내역 페이징처리 구현 (#87)
syy0O Sep 21, 2024
17368e4
[Feat] 가격 toLocaleString 적용 (#87)
syy0O Sep 21, 2024
b66d537
[Feat] 주문내역 상품 사진 수정 (#87)
syy0O Sep 21, 2024
acf55f7
Merge pull request #196 from beyond-sw-camp/frontend/feature/orders/c…
syy0O Sep 21, 2024
2c6c20b
[Feat] 사용자 주문정보 상세 조회 (#89)
syy0O Sep 22, 2024
316f042
Merge branch 'frontend-dev' into frontend/feature/mypage-orders
syy0O Sep 22, 2024
6d24a0d
[Feat] 사용자 주문 내역, 상세 조회 기능 구현 (#87, #89)
syy0O Sep 22, 2024
cf000b7
[Fix] 결제 취소 에러 수정
syy0O Sep 22, 2024
547f54a
[Feat] 주문 취소 구현
syy0O Sep 22, 2024
c8bad49
[#189] 문의 삭제 기능 구현 (#194)
NakyungSong Sep 22, 2024
a508164
[Feat] 주문 유저정보 적용
syy0O Sep 22, 2024
264a427
[Fix] 판매자 주문내역 조회 수정
syy0O Sep 22, 2024
62df478
[Feat] delivery modal 추가 (#202)
syy0O Sep 22, 2024
a4f1a0a
[Feat] 배송지 변경 기능 구현 (#202)
syy0O Sep 22, 2024
2ea415a
[#93, #95] 회원정보 조회, 수정기능 구현 (#199)
kangkings Sep 22, 2024
1ed5d9e
[#56, #167]게시글 상세 목록 조회/메인 페이지 기능 구현 (#204)
ohgyulim Sep 23, 2024
7492482
Merge branch 'frontend-dev' into frontend/feature/mypage-orders
syy0O Sep 23, 2024
71ede54
Merge pull request #200 from beyond-sw-camp/frontend/feature/mypage-o…
syy0O Sep 23, 2024
5d26a75
Merge pull request #203 from beyond-sw-camp/frontend/feature/orders/d…
syy0O Sep 23, 2024
f07c63a
[#73] 판매자 게시글 등록 axios 예외처리 수정 (#212)
ohgyulim Sep 23, 2024
4edb817
[#79] 1:1 문의 관리 기능 구현 (#206)
NakyungSong Sep 23, 2024
7936e3e
[#91] 내 문의 조회 기능 구현 (#208)
NakyungSong Sep 23, 2024
8887295
[Fix] 충돌해결
ohgyulim Sep 23, 2024
5b05943
[#213] 관심게시글 등록 및 라우팅 권한 기능 구현 (#214)
kangkings Sep 23, 2024
d6291e8
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 23, 2024
a0ecb06
[Fix] 병합오류 수정
kangkings Sep 23, 2024
96a489a
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 23, 2024
9d9c08b
[Fix] 병합오류 수정
kangkings Sep 23, 2024
c3b7a75
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 23, 2024
1315f86
[Feat] 검색창 엔터키 기능 구현
ohgyulim Sep 23, 2024
f1b5321
[Feat] 검색창 엔터키 기능 구현
ohgyulim Sep 23, 2024
d27061b
[Feat] 검색창 엔터키 기능 구현
ohgyulim Sep 23, 2024
253a291
[Hotfix] 결제 에러 수정
syy0O Sep 23, 2024
83c2e5b
[Hotfix] 검색창 엔터키 기능 구현
ohgyulim Sep 23, 2024
8e13887
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 23, 2024
8682343
[Hotfix] 카테고리 검색 기능 수정
ohgyulim Sep 23, 2024
7abb244
[Fix] order entity, dto 수정 (#222)
syy0O Sep 23, 2024
4582316
[Fix] 포인트 처리 수정 (#222)
syy0O Sep 23, 2024
7c5db30
[Fix] 탭 닫거나, 뒤로가기 눌렀을 때, 취소처리 (#222)
syy0O Sep 23, 2024
cc78d45
[Hotfix] 화면 에러 수정
ohgyulim Sep 25, 2024
50f6d47
Merge branch 'frontend-dev' into frontend/fix/orders
syy0O Sep 27, 2024
502102c
[Fix] 주문내역 ui 수정
syy0O Sep 27, 2024
39a6029
Merge pull request #223 from beyond-sw-camp/frontend/fix/orders
syy0O Sep 27, 2024
adf2ab8
[Hotfix] 소셜 로그인 요청 url 변경
ohgyulim Sep 27, 2024
e53b947
Merge branch 'develop' into frontend-dev
ohgyulim Sep 27, 2024
59ce28f
[Hotfix] .gitignore 수정
ohgyulim Sep 27, 2024
7607fd5
Merge branch 'frontend-dev' of https://github.com/beyond-sw-camp/be06…
ohgyulim Sep 27, 2024
ecd1bbf
[Merge] Backend dev (#233)
kangkings Sep 27, 2024
ca48b79
[Fix] 젠킨스 파이프라인 동작 트리거 수정 merge all
kangkings Sep 27, 2024
0c1297f
merge pull request #234 from beyond-sw-camp/backend-dev
ohgyulim Sep 27, 2024
5757004
merge pull request #235 from beyond-sw-camp/backend-dev
ohgyulim Sep 27, 2024
c096613
[Hotfix] configmap 변수 확인
syy0O Sep 27, 2024
fc03dcb
merge pull request #236 from beyond-sw-camp/frontend-dev
syy0O Sep 27, 2024
9ddd3d9
[Feat] 운영망 CI/CD 파이프라인 구현
kangkings Sep 28, 2024
a838c94
[Fix] 운영망 CI/CD 파이프라인 작업 브랜치 수정
kangkings Sep 28, 2024
756edd5
[Fix] 운영망 CI/CD 파이프라인 작업 브랜치 수정
kangkings Sep 28, 2024
56b493c
[#242] 게시글 리스트 조회 페이지 수정 (#238)
ohgyulim Sep 29, 2024
51258d4
[Feat] 관심게시글 기능 구현 (#90) (#239)
ohgyulim Sep 29, 2024
696a9c0
[#79, #91, #189, #217] 1:1 문의 관리 기능 구현, 내 문의 기능 구현, 문의 삭제 기능 구현, 문의 수…
NakyungSong Sep 29, 2024
2a7dd4d
merge pull request #243 from beyond-sw-camp/backend-dev
ohgyulim Sep 29, 2024
8074172
[Feat] jenkins pipeline 수정
syy0O Sep 29, 2024
90c66e9
merge pull request #244 from beyond-sw-camp/frontend-dev
ohgyulim Sep 29, 2024
fa04f3b
merge jenkins파일 수정 frontend
syy0O Sep 29, 2024
2038a60
Merge branch 'develop' of https://github.com/beyond-sw-camp/be06-fin-…
syy0O Sep 29, 2024
6aeddaf
merge jenkins pipline 주석 추가 frontend
syy0O Sep 29, 2024
1497ce4
merge jenkins pipline 수정 frontend
syy0O Sep 29, 2024
1c10a72
merge pull request #246 from beyond-sw-camp/backend-dev
syy0O Sep 29, 2024
f86ad59
merge jenkins pipeline수정 frontend
syy0O Sep 29, 2024
d839222
merge branch 'develop' of https://github.com/beyond-sw-camp/be06-fin-…
syy0O Sep 29, 2024
4bcfbbe
Merge branch 'develop' of https://github.com/beyond-sw-camp/be06-fin-…
syy0O Sep 29, 2024
9b6df49
merge jenkins pipline frontend
syy0O Sep 29, 2024
d9d6eaa
merge pull request #247 from beyond-sw-camp/backend-dev
syy0O Sep 29, 2024
144c0cd
[#249] 관심 게시글 표시 유지 기능 구현 (#250)
ohgyulim Sep 30, 2024
e7ed64c
[Fix] 운영망 파이프라인 수정
kangkings Sep 30, 2024
074f0bd
[Merge] Dealivey v1.72 배포 (all)
kangkings Sep 30, 2024
f14bcc3
[Fix] 운영망 파이프라인 수정
kangkings Sep 30, 2024
27ec37a
Merge branch 'main' into develop
kangkings Sep 30, 2024
86c6c57
[#253] 상품 게시글 등록 조건 변경 (#256)
ohgyulim Oct 1, 2024
27fb494
merge pull request #259 from beyond-sw-camp/frontend-dev
ohgyulim Oct 1, 2024
229cde8
merge pull request #260 from beyond-sw-camp/backend-dev
ohgyulim Oct 1, 2024
aa9cf26
[Docs] Update Jenkinsfile
syy0O Oct 1, 2024
4d4ea7d
[Docs] Update Jenkinsfile
syy0O Oct 1, 2024
0a375b7
[Docs] Update Jenkinsfile
syy0O Oct 1, 2024
2b00776
Update Jenkinsfile
syy0O Oct 1, 2024
e003388
Update Jenkinsfile
syy0O Oct 1, 2024
2783568
merge pull request #265 from beyond-sw-camp/backend-dev
ohgyulim Oct 1, 2024
f4aae24
[Docs] 주석 삭제
ohgyulim Oct 1, 2024
836969f
[merge] 회원가입 시 이름 최대길이 수정 backend
kangkings Oct 2, 2024
6433298
[merge] 유효성 검증 동작 오류 수정 frontend (#271)
kangkings Oct 2, 2024
f78d421
[Fix] 게시글 조회 카운트 쿼리 에러 수정 (#275)
ohgyulim Oct 2, 2024
ebe3b8c
[Init] 대기열 프로젝트 추가
ohgyulim Oct 7, 2024
464e095
[Feat] 대기열 등록 기능 구현 (#282)
ohgyulim Oct 8, 2024
b1e926e
Merge branch 'develop' of https://github.com/beyond-sw-camp/be06-fin-…
ohgyulim Oct 8, 2024
14690ef
[Feat] queue 서비스 구현
syy0O Oct 11, 2024
6237015
[Feat] 진행 큐 추가
ohgyulim Oct 11, 2024
664f59c
[Feat] schedule 구현
syy0O Oct 11, 2024
18b1263
[Fix] enable schdule 어노테이션 추가
syy0O Oct 11, 2024
645ee96
[Feat] 대기큐 랭킹 확인 구현
syy0O Oct 11, 2024
f64faaa
[Feat] 대기큐 & 진행큐에서 사용자 삭제 구현
syy0O Oct 11, 2024
222b3f4
[Feat] cookie 값 추가
syy0O Oct 11, 2024
16193c4
[Feat] 게시글 추가시 대기열 추가 기능 구현
ohgyulim Oct 11, 2024
5551d9e
[Fix] 충돌 해결
ohgyulim Oct 11, 2024
219b666
[Feat] queue exit 구현
syy0O Oct 11, 2024
3d5caa7
[Feat] 결제 취소 시, queue exit 구현
syy0O Oct 11, 2024
efacaf9
[Refactor] 하드 코딩 환경변수화
ohgyulim Oct 14, 2024
0ee8758
[Refactor] 하드 코딩 환경변수화
ohgyulim Oct 14, 2024
854462e
[Remove] 필요없는 패키지 삭제
ohgyulim Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,25 @@ public ProductBoardRepositoryCustomImpl(EntityManager em) {

@Override
public Page<ProductBoard> search(String search, Pageable pageable) {
Predicate condition = getCondition(search);
JPQLQuery<ProductBoard> query = queryFactory
.selectFrom(qProductBoard)
.leftJoin(qProductBoard.category, qCategory).fetchJoin()
.leftJoin(qProductBoard.company, qCompany).fetchJoin()
.leftJoin(qProductBoard.products, qProduct).fetchJoin()
.where(getCondition(search));
.where(condition);

JPQLQuery<Long> countQuery = queryFactory
.select(qProductBoard.count())
.from(qProductBoard)
.where(getCondition(search));
int total = queryFactory.selectFrom(qProductBoard)
.where(condition)
.fetch().size();

List<ProductBoard> result = query
.orderBy(qProductBoard.idx.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();

long count = countQuery.fetch().size();

return new PageImpl<>(result, pageable, count);
return new PageImpl<>(result, pageable, total);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.example.backend.domain.board.service;

import java.time.LocalDateTime;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import lombok.RequiredArgsConstructor;

@Service
@RequiredArgsConstructor
public class ProductBoardQueueService {
private final RestTemplate restTemplate;

public Boolean createQueue(Long productBoardIdx, LocalDateTime endedAt) {
String url = "/queue/create?productBoardIdx=" + productBoardIdx + "&endedAt=" + endedAt;
ResponseEntity<Boolean> result = restTemplate.getForEntity(url, Boolean.class);
return result.getBody();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;

Expand All @@ -20,7 +18,6 @@
import org.example.backend.domain.board.product.repository.ProductRepository;
import org.example.backend.domain.board.repository.ProductBoardRepository;
import org.example.backend.domain.board.repository.ProductThumbnailImageRepository;
import org.example.backend.domain.likes.model.entity.Likes;
import org.example.backend.domain.likes.repository.LikesRepository;
import org.example.backend.global.common.constants.BaseResponseStatus;
import org.example.backend.global.common.constants.BoardStatus;
Expand All @@ -29,8 +26,6 @@
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.domain.SliceImpl;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

Expand All @@ -44,6 +39,7 @@
@Service
@RequiredArgsConstructor
public class ProductBoardService {
private final ProductBoardQueueService productBoardQueueService;
private final ProductBoardRepository productBoardRepository;
private final ProductRepository productRepository;
private final ProductThumbnailImageRepository productThumbnailImageRepository;
Expand Down Expand Up @@ -118,6 +114,11 @@ public void create(Long companyIdx, ProductBoardDto.BoardCreateRequest boardCrea
ProductBoard savedProductBoard = saveProductBoard(companyIdx, boardCreateRequest, thumbnailUrls.get(0), productDetailUrl);
List<Product> savedProducts = saveProduct(boardCreateRequest, savedProductBoard);
List<ProductThumbnailImage> productThumbnailImages = saveProductThumbnailImage(boardCreateRequest, thumbnailUrls, savedProductBoard);

Boolean isCreated = productBoardQueueService.createQueue(savedProductBoard.getIdx(), savedProductBoard.getEndedAt());
if (!isCreated) {
throw new InvalidCustomException(BaseResponseStatus.PRODUCT_BOARD_QUEUE_CREATE_FAIL);
}
}

// 판매자 게시글 조회
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.example.backend.domain.orders.service;

import java.util.HashMap;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

@Service
@Slf4j
@RequiredArgsConstructor
public class OrderQueueService {
private final RestTemplate restTemplate;

private final String QUEUE_URL = "/queue";

public void exitQueue(Long boardIdx, Long userIdx) {
// 요청 본문을 Map으로 생성
Map<String, Long> requestBody = new HashMap<>();
requestBody.put("boardIdx", boardIdx);
requestBody.put("userIdx", userIdx);

// RestTemplate으로 POST 요청 전송
ResponseEntity<String> response = restTemplate.postForEntity(QUEUE_URL + "/delete", requestBody, String.class);

if (response.getStatusCode().is2xxSuccessful()) {
log.info("[Order Exit Queue] Queue deletion successful");
} else {
log.info("[Order Exit Queue] Failed to delete queue token");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class OrderService {
private final int COMPANY_PAGE_SIZE = 5;
private final int USER_PAGE_SIZE = 3;
private final PaymentService paymentService;
private final OrderQueueService orderQueueService;

private final OrdersRepository ordersRepository;
private final OrderedProductRepository orderedProductRepository;
Expand All @@ -49,7 +50,7 @@ public class OrderService {
@Transactional
public OrderCreateResponse register(User user, OrderRegisterRequest request) {

validateOrder(request);
validateOrder(request, user.getIdx());

Orders order = OrderRegisterRequest.toEntity(request.getBoardIdx(), user);
ordersRepository.save(order);
Expand All @@ -66,20 +67,27 @@ public OrderCreateResponse register(User user, OrderRegisterRequest request) {
}


public void validateOrder(OrderRegisterRequest order){
public void validateOrder(OrderRegisterRequest order, Long userIdx){

ProductBoard board = productBoardRepository.findById(order.getBoardIdx())
.orElseThrow(() -> new InvalidCustomException(ORDER_FAIL_EVENT_NOT_FOUND));
.orElseThrow(() -> {
orderQueueService.exitQueue(order.getBoardIdx(), userIdx);
return new InvalidCustomException(ORDER_FAIL_EVENT_NOT_FOUND);
});

if (board.getEndedAt().isBefore(LocalDateTime.now())) {
throw new InvalidCustomException(ORDER_FAIL_EXPIRED_EVENT); // 이벤트가 끝났을 때
}

order.getOrderedProducts().forEach((product) -> {
Product orderdProduct = productRepository.findByIdWithLock(product.getIdx())
.orElseThrow(() -> new InvalidCustomException(ORDER_FAIL_PRODUCT_NOT_FOUND)); // 해당하는 상품을 찾을 수가 없을 때
.orElseThrow(() -> {
orderQueueService.exitQueue(order.getBoardIdx(), userIdx);
return new InvalidCustomException(ORDER_FAIL_PRODUCT_NOT_FOUND); // 해당하는 상품을 찾을 수가 없을 때
});

if (product.getQuantity() > orderdProduct.getStock()) {
orderQueueService.exitQueue(order.getBoardIdx(), userIdx);
throw new InvalidCustomException(ORDER_CREATE_FAIL_LACK_STOCK); // 재고 수량 없을 때
}
});
Expand All @@ -105,15 +113,18 @@ public void complete(User user, OrderCompleteRequest request) {
order.getUser().deductPoints(order.getUsedPoint());
order.setStatus(OrderStatus.ORDER_COMPLETE);
ordersRepository.save(order);
orderQueueService.exitQueue(order.getBoardIdx(), user.getIdx());

} catch (IamportResponseException | IOException e) { // 해당하는 결제 정보를 찾지 못했을 때
order.setStatus(OrderStatus.ORDER_FAIL);
ordersRepository.save(order);
orderQueueService.exitQueue(order.getBoardIdx(), user.getIdx());
throw new InvalidCustomException(ORDER_PAYMENT_FAIL);

} catch (InvalidCustomException e) { // 결제 검증 중 발생한 예외 처리
order.setStatus(OrderStatus.ORDER_FAIL);
ordersRepository.save(order);
orderQueueService.exitQueue(order.getBoardIdx(), user.getIdx());
throw e;
}
}
Expand All @@ -129,6 +140,7 @@ public void cancel(User user, Long idx) {

if (order.getStatus() != OrderStatus.ORDER_COMPLETE) {
ordersRepository.delete(order);
orderQueueService.exitQueue(order.getBoardIdx(), user.getIdx());
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ public Delivery toDeliveryEntity(User user){
@AllArgsConstructor
@Builder
public static class UserDetailResponse{
private Long userIdx;
private String name;
private String email;
private String address;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ public void earnPoints(Long point) {

public UserDto.UserDetailResponse toUserDetailResponse(){
return UserDto.UserDetailResponse.builder()
.userIdx(this.idx)
.name(this.name)
.email(this.email)
.address(this.address)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.example.backend.global.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;

@Aspect
@Component
public class MethodExcutionTimer {
private static final Logger logger = LoggerFactory.getLogger(MethodExcutionTimer.class);

//특정 어노테이션이 달려있는 메소드들 만 하고 싶다. -> custom annotation 만듦
@Pointcut("@annotation(org.example.backend.global.common.annotation.Timer)")
private void timerPointcut(){
}

@Around("timerPointcut()")
public Object traceTIme(ProceedingJoinPoint joinPoint) throws Throwable {
StopWatch stopWatch = new StopWatch();

try {
stopWatch.start();
return joinPoint.proceed(); // 실제 객체의 메소드 실행
}finally {
stopWatch.stop();
logger.info("{} - 시간 - {}s", joinPoint.getSignature().toString(), stopWatch.getTotalTimeMillis());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.example.backend.global.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Timer {
}
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ public enum BaseResponseStatus {
PRODUCT_BOARD_REMOVE_FAIL_START_TIME_PASSED(false, 4050, "상품게시글 삭제에 실패했습니다. 시작 시간이 이미 지나 게시글을 삭제할 수 없습니다."),
PRODUCT_BOARD_LIST_FAIL(false, 4100, "상품게시글 조회에 실패했습니다."),
PRODUCT_BOARD_DETAIL_FAIL(false, 4200, "상품 상세 조회에 실패했습니다."),
PRODUCT_BOARD_QUEUE_CREATE_FAIL(false, 4300, "대기열 생성에 실패했습니다."),

// 관심 기능 5000
LIKES_REGISTER_FAIL(false, 5000, "관심게시글 등록에 실패했습니다."),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.example.backend.global.infra.network.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {
@Value("${domain}")
private String domain;

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder
.rootUri(domain)
.build();
}
}
3 changes: 1 addition & 2 deletions backend/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,7 @@ server:
encoding:
charset: UTF-8
force: true
context-path: ${CONTEXT_PATH}
# context-path: ${CONTEXT_PATH}

# ex. https://www.dealivery.com
domain: ${DOMAIN}

Loading