From 79f8dd9ea28ddc1b2b54d350a3079e5742b31ff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9E=AC=ED=98=81?= Date: Sat, 7 Dec 2024 02:23:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=B0=94=EB=A1=9C=EB=B9=8C=20?= =?UTF-8?q?=EC=84=B8=EA=B8=88=20=EA=B3=84=EC=82=B0=EC=84=9C=20=EC=97=AD?= =?UTF-8?q?=EB=B0=9C=ED=96=89=20api=20=EC=B1=84=EB=B2=88=20=ED=98=84?= =?UTF-8?q?=EC=9E=AC=20=EC=8B=9C=EA=B0=84=20=EA=B8=B0=EC=A4=80=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95=20(#208)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 장바구니 추가 기능 구현 * feat: 장바구니 조회 기능 구현 * feat: 상품 주문과 식권 사용 기능 구현 * style: 포인트트랜잭션 레포지토리명 변경 * deploy: 재배포 * deploy: 재배포2 * deploy: 로그인 로직 수정에 따른 재배포 * deploy: 로그인 로직 수정에 따른 재배포2 * feat: 식권 사용 기능 구현 * feat: yml 수정 사항 반영 * feat: 식권 사용 로직 수정 * feat: 주문 로직 수정 완료 * fix: 장바구니에 아무것도 없을 때 주문 시 active 되는 현상 수정 * feat: 주문 완료 시 리턴 값 수정 * feat: 내 그룹 조회 기능 구현 * feat: 기본 프로필 이미지 url 추가 * feat: 그룹 멤버 전체 조회 기능 구현 * feat: 1인당 사용 가능 금액 설정 컬럼 추가 * feat: 내 지갑 조회 기능 구현 * feat: 선결제 기능 구현 * feat: 유저 홈 화면 조회 기능 구현 * feat: 그룹 상세 조회 기능 구현 * feat: 가게 상세 조회 쿼리 수정 * deploy: 변경사항 반영을 위한 커밋 * deploy: 수정 사항 반영 재배포 * deploy: rds 교체로 인한 재배포 * deploy: rds 교체로 인한 재배포2 * feat: 홈 화면 소속팀 조회 쿼리 제대로 안되던 현상 해결, 대표이미지 반환 추가 * feat: 그룹 상세 조회 응답 컬럼명 변경 * feat: memberLimit 컬럼 삭제 * feat: 선결제 시 기존 결제 내역과 멱등성 문제 해결 * fix: 팀 상세 조회 시 이미지 쿼리가 의미 없이 join 되던 쿼리 수정 * feat: 가게 검색 기능 대폭 수정 * feat: 프론트 요구사 반영 * feat: searchcondition 삭제 * feat: 팀타입 desription 리턴 하도록 수정 * feat: 카테고리별 팀 조회 시 팀 생성일 컬럼 추가 * feat: 매장찾기_상세 페이지 조회 기능 구현 * feat: 비밀 코드 조회 기능 엔드 포인트 수정 * fix: conflict fix * hotfix: 서버 복구 * hotfix: 서버 복구2 * feat: Barobill api 연동 * fix: 홈 화면에 같은 데이터가 중복되는 현상 수정 * infra: ElastiCache 연결을 위한 docker-compose 설정 * infra: cicd script 수정 * infra: cicd script ec2 주소 설정 * infra: cicd script 수정2 * infra: cicd script 수정3 * infra: cicd script 수정4 * infra: cicd script 수정5 * infra: cicd script 수정6 * infra: cicd script 수정7 * infra: cicd script 수정7 * infra: cicd script 수정8 * infra: cicd script 수정9 * infra: cicd script 수정10 * infra: cicd script 수정11 * infra: cicd script 수정12 * infra: cicd script 수정13 * infra: cicd script 수정14 * infra: cicd script 수정15 * infra: cicd script 수정16 * infra: cicd script 수정17 * infra: cicd script 수정18 * infra: cicd script 수정19 * infra: cicd script 수정20 * infra: cicd script 수정21 * infra: cicd script 수정22 * fix: 보유금액이 선결제 금액보다 작을 경우 상태값 변경(200->400) * feat: 홈화면 가게 별 선결제 디데이 추가, 쿼리문 조정 * feat: 주문하기 로직 정상화 * feat: 장바구니에 다른 가게 물건이 있는지 검증 구현 * feat: 장바구니 비우기 기능 구현 * deploy: cd retry * feat: 매장 상세 페이지 조회 메뉴 정렬 조건 추가 * feat: 세금명세서 역발행 기능 추가 * feat: 거래 타입명 변경 * feat: pointTransaction 금액 음수(-) 표시 추가 * feat: 세금계산서 역발행 요청 기능 구현 * feat: 팀 조회 시 진행 상태값 반환 추가 * feat: 그룹 상세 조회 path storeId 추가 * feat: 그룹 조회 시 팀 id 조회 추가 * feat: 그룹 상세 조회에서 개별 매장 상세 조회 기능 구현 * feat: 매장 상세 조회 시 menuId 값 반환 추가 * feat: cart 조회 시 menuId, menuImg 반환 추가 * feat: 장바구니 조회 시 가게 id, name, catrogry 반환 추가 * feat: storeCategory 이름 한글 표기로 수정 * feat: 바로빌 세금 계산서 역발행 api 채번 현재 시간 기준으로 수정 * chore: 세금계산서 수신 이메일 수정 --- .../barobill/application/BarobillService.java | 14 ++++++++------ .../barobill/presentation/BarobillController.java | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/jangburich/domain/barobill/application/BarobillService.java b/src/main/java/com/jangburich/domain/barobill/application/BarobillService.java index 536fb5c..11a2319 100644 --- a/src/main/java/com/jangburich/domain/barobill/application/BarobillService.java +++ b/src/main/java/com/jangburich/domain/barobill/application/BarobillService.java @@ -9,6 +9,8 @@ import com.jangburich.domain.barobill.dto.request.GetCertificateRegistURLRequest; import com.jangburich.domain.barobill.dto.request.RegistAndReverseIssueTaxInvoiceRequest; import com.jangburich.domain.barobill.dto.request.RegistCorpRequest; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.regex.Pattern; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -82,14 +84,14 @@ public void getTaxInvoiceStateEX() { } @Transactional - public void registAndReverseIssueTaxInvoice( - RegistAndReverseIssueTaxInvoiceRequest registAndReverseIssueTaxInvoiceRequest) { + public void registAndReverseIssueTaxInvoice() { + String timestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); // 공급자, 공급받는자의 관리번호 채번 -// String invoicerMgtNum = "000003-R"; -// String invoiceeMgtNum = "000003-E"; + String invoicerMgtNum = timestamp + "-R"; + String invoiceeMgtNum = timestamp + "-E"; - String invoicerMgtNum = registAndReverseIssueTaxInvoiceRequest.invoicerMgtNum(); - String invoiceeMgtNum = registAndReverseIssueTaxInvoiceRequest.invoiceeMgtNum(); +// String invoicerMgtNum = registAndReverseIssueTaxInvoiceRequest.invoicerMgtNum(); +// String invoiceeMgtNum = registAndReverseIssueTaxInvoiceRequest.invoiceeMgtNum(); // 공급자, 공급받는자의 바로빌 아이디 불러오기 // String invoicerBarobillID = registAndReverseIssueTaxInvoiceRequest.invoicerBarobillID(); diff --git a/src/main/java/com/jangburich/domain/barobill/presentation/BarobillController.java b/src/main/java/com/jangburich/domain/barobill/presentation/BarobillController.java index 2fa04b6..10435b1 100644 --- a/src/main/java/com/jangburich/domain/barobill/presentation/BarobillController.java +++ b/src/main/java/com/jangburich/domain/barobill/presentation/BarobillController.java @@ -33,8 +33,8 @@ public ResponseCustom registCorp( @Operation(summary = "세금계산서 역발행 요청", description = "세금 계산서를 소상공인이 역발행 요청합니다.") @PostMapping("/registAndReverseIssueTaxInvoice") - public ResponseCustom registAndReverseIssueTaxInvoice(@RequestBody RegistAndReverseIssueTaxInvoiceRequest registAndReverseIssueTaxInvoiceRequest) { - barobillService.registAndReverseIssueTaxInvoice(registAndReverseIssueTaxInvoiceRequest); + public ResponseCustom registAndReverseIssueTaxInvoice() { + barobillService.registAndReverseIssueTaxInvoice(); return ResponseCustom.OK(Message.builder().message("success").build()); } From d5551c233285498ef674e35db9218509a34b4a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9E=AC=ED=98=81?= Date: Sat, 7 Dec 2024 03:13:45 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EA=B7=B8=EB=A3=B9=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20=EB=A6=AC=ED=84=B4=20=EA=B0=92?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20(#209)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 장바구니 추가 기능 구현 * feat: 장바구니 조회 기능 구현 * feat: 상품 주문과 식권 사용 기능 구현 * style: 포인트트랜잭션 레포지토리명 변경 * deploy: 재배포 * deploy: 재배포2 * deploy: 로그인 로직 수정에 따른 재배포 * deploy: 로그인 로직 수정에 따른 재배포2 * feat: 식권 사용 기능 구현 * feat: yml 수정 사항 반영 * feat: 식권 사용 로직 수정 * feat: 주문 로직 수정 완료 * fix: 장바구니에 아무것도 없을 때 주문 시 active 되는 현상 수정 * feat: 주문 완료 시 리턴 값 수정 * feat: 내 그룹 조회 기능 구현 * feat: 기본 프로필 이미지 url 추가 * feat: 그룹 멤버 전체 조회 기능 구현 * feat: 1인당 사용 가능 금액 설정 컬럼 추가 * feat: 내 지갑 조회 기능 구현 * feat: 선결제 기능 구현 * feat: 유저 홈 화면 조회 기능 구현 * feat: 그룹 상세 조회 기능 구현 * feat: 가게 상세 조회 쿼리 수정 * deploy: 변경사항 반영을 위한 커밋 * deploy: 수정 사항 반영 재배포 * deploy: rds 교체로 인한 재배포 * deploy: rds 교체로 인한 재배포2 * feat: 홈 화면 소속팀 조회 쿼리 제대로 안되던 현상 해결, 대표이미지 반환 추가 * feat: 그룹 상세 조회 응답 컬럼명 변경 * feat: memberLimit 컬럼 삭제 * feat: 선결제 시 기존 결제 내역과 멱등성 문제 해결 * fix: 팀 상세 조회 시 이미지 쿼리가 의미 없이 join 되던 쿼리 수정 * feat: 가게 검색 기능 대폭 수정 * feat: 프론트 요구사 반영 * feat: searchcondition 삭제 * feat: 팀타입 desription 리턴 하도록 수정 * feat: 카테고리별 팀 조회 시 팀 생성일 컬럼 추가 * feat: 매장찾기_상세 페이지 조회 기능 구현 * feat: 비밀 코드 조회 기능 엔드 포인트 수정 * fix: conflict fix * hotfix: 서버 복구 * hotfix: 서버 복구2 * feat: Barobill api 연동 * fix: 홈 화면에 같은 데이터가 중복되는 현상 수정 * infra: ElastiCache 연결을 위한 docker-compose 설정 * infra: cicd script 수정 * infra: cicd script ec2 주소 설정 * infra: cicd script 수정2 * infra: cicd script 수정3 * infra: cicd script 수정4 * infra: cicd script 수정5 * infra: cicd script 수정6 * infra: cicd script 수정7 * infra: cicd script 수정7 * infra: cicd script 수정8 * infra: cicd script 수정9 * infra: cicd script 수정10 * infra: cicd script 수정11 * infra: cicd script 수정12 * infra: cicd script 수정13 * infra: cicd script 수정14 * infra: cicd script 수정15 * infra: cicd script 수정16 * infra: cicd script 수정17 * infra: cicd script 수정18 * infra: cicd script 수정19 * infra: cicd script 수정20 * infra: cicd script 수정21 * infra: cicd script 수정22 * fix: 보유금액이 선결제 금액보다 작을 경우 상태값 변경(200->400) * feat: 홈화면 가게 별 선결제 디데이 추가, 쿼리문 조정 * feat: 주문하기 로직 정상화 * feat: 장바구니에 다른 가게 물건이 있는지 검증 구현 * feat: 장바구니 비우기 기능 구현 * deploy: cd retry * feat: 매장 상세 페이지 조회 메뉴 정렬 조건 추가 * feat: 세금명세서 역발행 기능 추가 * feat: 거래 타입명 변경 * feat: pointTransaction 금액 음수(-) 표시 추가 * feat: 세금계산서 역발행 요청 기능 구현 * feat: 팀 조회 시 진행 상태값 반환 추가 * feat: 그룹 상세 조회 path storeId 추가 * feat: 그룹 조회 시 팀 id 조회 추가 * feat: 그룹 상세 조회에서 개별 매장 상세 조회 기능 구현 * feat: 매장 상세 조회 시 menuId 값 반환 추가 * feat: cart 조회 시 menuId, menuImg 반환 추가 * feat: 장바구니 조회 시 가게 id, name, catrogry 반환 추가 * feat: storeCategory 이름 한글 표기로 수정 * feat: 바로빌 세금 계산서 역발행 api 채번 현재 시간 기준으로 수정 * chore: 세금계산서 수신 이메일 수정 * feat: 그룹 상세 조회 리턴 값 추가 --- .../TeamQueryDslRepositoryImpl.java | 117 +++++++++--------- .../dto/response/MyTeamDetailsResponse.java | 14 ++- 2 files changed, 69 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/jangburich/domain/team/domain/repository/TeamQueryDslRepositoryImpl.java b/src/main/java/com/jangburich/domain/team/domain/repository/TeamQueryDslRepositoryImpl.java index 9a6acd4..1f820c6 100644 --- a/src/main/java/com/jangburich/domain/team/domain/repository/TeamQueryDslRepositoryImpl.java +++ b/src/main/java/com/jangburich/domain/team/domain/repository/TeamQueryDslRepositoryImpl.java @@ -82,34 +82,36 @@ public MyTeamDetailsResponse findMyTeamDetailsAsMember(Long userId, Long teamId) .fetch(); return queryFactory - .selectDistinct(new QMyTeamDetailsResponse( - storeTeam.team.id, - storeTeam.team.name, - storeTeam.team.description, - Expressions.constant(-1), - storeTeam.remainPoint, - storeTeam.personalAllocatedPoint, - pointTransaction.transactionedPoint.sum(), - Expressions.constant(prepayedStores), - Expressions.constant(images), - Expressions.constant(images.size()), - Expressions.constant(todayPayments), - Expressions.constant(todayPayments.size()) - )) - .from(storeTeam) - .leftJoin(team).on(storeTeam.team.id.eq(teamId)) - .leftJoin(userTeam).on(userTeam.team.id.eq(storeTeam.team.id)) - .leftJoin(pointTransaction).on(pointTransaction.transactionType.eq(TransactionType.FOOD_PURCHASE), - pointTransaction.user.userId.eq(userId)) - .where(storeTeam.team.id.eq(teamId)) - .groupBy( - storeTeam.team.id, - storeTeam.team.name, - storeTeam.team.description, - storeTeam.remainPoint, - storeTeam.personalAllocatedPoint - ) - .fetchOne(); + .selectDistinct(new QMyTeamDetailsResponse( + storeTeam.team.id, + Expressions.constant(false), + storeTeam.store.name, + storeTeam.team.name, + storeTeam.team.description, + Expressions.constant(-1), + storeTeam.remainPoint, + storeTeam.personalAllocatedPoint, + pointTransaction.transactionedPoint.sum(), + Expressions.constant(prepayedStores), + Expressions.constant(images), + Expressions.constant(images.size()), + Expressions.constant(todayPayments), + Expressions.constant(todayPayments.size()) + )) + .from(storeTeam) + .leftJoin(team).on(storeTeam.team.id.eq(teamId)) + .leftJoin(userTeam).on(userTeam.team.id.eq(storeTeam.team.id)) + .leftJoin(pointTransaction).on(pointTransaction.transactionType.eq(TransactionType.FOOD_PURCHASE), + pointTransaction.user.userId.eq(userId)) + .where(storeTeam.team.id.eq(teamId)) + .groupBy( + storeTeam.team.id, + storeTeam.team.name, + storeTeam.team.description, + storeTeam.remainPoint, + storeTeam.personalAllocatedPoint + ) + .fetchOne(); } @@ -150,36 +152,37 @@ public MyTeamDetailsResponse findMyTeamDetailsAsLeader(Long userId, Long teamId) TransactionType.FOOD_PURCHASE)) .fetch(); - return queryFactory - .selectDistinct(new QMyTeamDetailsResponse( - storeTeam.team.id, - storeTeam.team.name, - storeTeam.team.description, - storeTeam.point, - storeTeam.remainPoint, - Expressions.constant(-1), - pointTransaction.transactionedPoint.sum(), - Expressions.constant(prepayedStores), - Expressions.constant(images), - Expressions.constant(images.size()), - Expressions.constant(todayPayments), - Expressions.constant(todayPayments.size()) - )) - .from(storeTeam) - .leftJoin(team).on(storeTeam.team.id.eq(teamId)) - .leftJoin(userTeam).on(userTeam.team.id.eq(storeTeam.team.id)) - .leftJoin(pointTransaction).on(pointTransaction.transactionType.eq(TransactionType.FOOD_PURCHASE), - pointTransaction.user.userId.eq(userId)) - .where(storeTeam.team.id.eq(teamId)) - .groupBy( - storeTeam.team.id, - storeTeam.team.name, - storeTeam.team.description, - storeTeam.point, - storeTeam.remainPoint - ) - .fetchOne(); + .selectDistinct(new QMyTeamDetailsResponse( + storeTeam.team.id, + Expressions.constant(true), + storeTeam.store.name, + storeTeam.team.name, + storeTeam.team.description, + storeTeam.point, + storeTeam.remainPoint, + Expressions.constant(-1), + pointTransaction.transactionedPoint.sum(), + Expressions.constant(prepayedStores), + Expressions.constant(images), + Expressions.constant(images.size()), + Expressions.constant(todayPayments), + Expressions.constant(todayPayments.size()) + )) + .from(storeTeam) + .leftJoin(team).on(storeTeam.team.id.eq(teamId)) + .leftJoin(userTeam).on(userTeam.team.id.eq(storeTeam.team.id)) + .leftJoin(pointTransaction).on(pointTransaction.transactionType.eq(TransactionType.FOOD_PURCHASE), + pointTransaction.user.userId.eq(userId)) + .where(storeTeam.team.id.eq(teamId)) + .groupBy( + storeTeam.team.id, + storeTeam.team.name, + storeTeam.team.description, + storeTeam.point, + storeTeam.remainPoint + ) + .fetchOne(); } diff --git a/src/main/java/com/jangburich/domain/team/dto/response/MyTeamDetailsResponse.java b/src/main/java/com/jangburich/domain/team/dto/response/MyTeamDetailsResponse.java index 1273fa6..4429d4f 100644 --- a/src/main/java/com/jangburich/domain/team/dto/response/MyTeamDetailsResponse.java +++ b/src/main/java/com/jangburich/domain/team/dto/response/MyTeamDetailsResponse.java @@ -5,6 +5,8 @@ public record MyTeamDetailsResponse( Long teamId, + Boolean isMeLeader, + String storeName, String teamName, String description, int totalPrepaidAmount, @@ -19,12 +21,14 @@ public record MyTeamDetailsResponse( ) { @QueryProjection - public MyTeamDetailsResponse(Long teamId, String teamName, String description, int totalPrepaidAmount, - int remainingAmount, int personalAllocatedAmount, int userUsedAmount, - List prepayedStores, List teamMemberImgUrl, - int totalMemberCount, - List todayPayments, int totalTodayTransactionCount) { + public MyTeamDetailsResponse(Long teamId, Boolean isMeLeader, String storeName, String teamName, String description, + int totalPrepaidAmount, int remainingAmount, int personalAllocatedAmount, + int userUsedAmount, List prepayedStores, List teamMemberImgUrl, + int totalMemberCount, List todayPayments, + int totalTodayTransactionCount) { this.teamId = teamId; + this.isMeLeader = isMeLeader; + this.storeName = storeName; this.teamName = teamName; this.description = description; this.totalPrepaidAmount = totalPrepaidAmount;