From 6eef6cbd29dc75ad5a353781452e75416d0f44dd Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sun, 14 Jun 2026 15:43:29 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B3=84=EC=A2=8C=20=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=EC=97=90=20=ED=98=84=EA=B8=88(CASH)=20=EC=9C=A0=ED=98=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - WalletRequest 유형 검증에 CASH 허용 - netWorth: CASH를 자산으로 합산(기존 else 분기에서 부채로 잡히던 것 방지) - 추이(trend)는 부호있는 openingBalance+흐름이라 CASH 자동 반영(변경 불필요) Co-Authored-By: Claude Opus 4.8 --- src/main/java/com/sb/web/account/dto/WalletRequest.java | 2 +- src/main/java/com/sb/web/account/service/AccountService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sb/web/account/dto/WalletRequest.java b/src/main/java/com/sb/web/account/dto/WalletRequest.java index 90e7585..5cb3c18 100644 --- a/src/main/java/com/sb/web/account/dto/WalletRequest.java +++ b/src/main/java/com/sb/web/account/dto/WalletRequest.java @@ -14,7 +14,7 @@ import java.time.LocalDate; public class WalletRequest { @NotBlank(message = "유형을 선택하세요.") - @Pattern(regexp = "BANK|CARD|LOAN|INVEST", message = "유형이 올바르지 않습니다.") + @Pattern(regexp = "BANK|CASH|CARD|LOAN|INVEST", message = "유형이 올바르지 않습니다.") private String type; @NotBlank(message = "이름을 입력하세요.") diff --git a/src/main/java/com/sb/web/account/service/AccountService.java b/src/main/java/com/sb/web/account/service/AccountService.java index 90fcd09..780a2d5 100644 --- a/src/main/java/com/sb/web/account/service/AccountService.java +++ b/src/main/java/com/sb/web/account/service/AccountService.java @@ -390,7 +390,7 @@ public class AccountService { .toList(); } - /** 순자산 = 총자산(BANK) − 총부채(CARD/LOAN) */ + /** 순자산 = 총자산(BANK/CASH/INVEST) − 총부채(CARD/LOAN) */ public NetWorthResponse netWorth(Long memberId) { Map balances = balanceMap(memberId); Map inv = investService.valuationByWallet(memberId); @@ -407,7 +407,7 @@ public class AccountService { InvestService.WalletInvest wi = inv.getOrDefault(w.getId(), new InvestService.WalletInvest()); assets += bal + wi.cashDelta + wi.stockEval; } - } else if ("BANK".equals(w.getType())) { + } else if ("BANK".equals(w.getType()) || "CASH".equals(w.getType())) { assets += bal; } else { liabilities += -bal; // 부채는 음수 잔액 → 양수 부채로 표시