From 75d5c9fa9bc0725a2eed9336b173de3986af1f34 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Thu, 9 Jul 2026 23:46:24 +0900 Subject: [PATCH] =?UTF-8?q?feat(point):=20=EC=9B=94=EB=B3=84=20=ED=8F=AC?= =?UTF-8?q?=EC=9D=B8=ED=8A=B8=20=EB=82=B4=EC=97=AD=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?API=20=E2=80=94=20year/month=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../java/com/sb/web/auth/controller/AuthController.java | 7 ++++++- src/main/java/com/sb/web/point/PointService.java | 7 ++++++- src/main/java/com/sb/web/point/mapper/PointMapper.java | 3 +++ src/main/resources/mapper/PointMapper.xml | 9 +++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sb/web/auth/controller/AuthController.java b/src/main/java/com/sb/web/auth/controller/AuthController.java index ac9ebea..94ef128 100644 --- a/src/main/java/com/sb/web/auth/controller/AuthController.java +++ b/src/main/java/com/sb/web/auth/controller/AuthController.java @@ -102,10 +102,15 @@ public class AuthController { return java.util.Map.of("points", pointService.getPoints(current.getId())); } - /** 포인트 적립/차감 내역 (최신순) */ + /** 포인트 적립/차감 내역 — year+month 지정 시 해당 월 전건, 미지정 시 최근 100건 */ @GetMapping("/point-history") public java.util.List pointHistory( + @RequestParam(required = false) Integer year, + @RequestParam(required = false) Integer month, @RequestAttribute(AuthInterceptor.CURRENT_MEMBER) SessionUser current) { + if (year != null && month != null) { + return pointService.getHistory(current.getId(), year, month); + } return pointService.getHistory(current.getId()); } diff --git a/src/main/java/com/sb/web/point/PointService.java b/src/main/java/com/sb/web/point/PointService.java index 3ae2931..fa4a8d4 100644 --- a/src/main/java/com/sb/web/point/PointService.java +++ b/src/main/java/com/sb/web/point/PointService.java @@ -167,8 +167,13 @@ public class PointService { return p == null ? 0L : p; } - /** 최근 포인트 적립/차감 내역 (최신순) */ + /** 최근 포인트 적립/차감 내역 (최신순, 최대 100건) */ public java.util.List getHistory(Long memberId) { return pointMapper.findHistory(memberId, 100); } + + /** 특정 연월 포인트 적립/차감 내역 (최신순, 전건) */ + public java.util.List getHistory(Long memberId, int year, int month) { + return pointMapper.findHistoryByMonth(memberId, year, month); + } } diff --git a/src/main/java/com/sb/web/point/mapper/PointMapper.java b/src/main/java/com/sb/web/point/mapper/PointMapper.java index bc483c0..4f83621 100644 --- a/src/main/java/com/sb/web/point/mapper/PointMapper.java +++ b/src/main/java/com/sb/web/point/mapper/PointMapper.java @@ -26,4 +26,7 @@ public interface PointMapper { /** 최근 적립/차감 내역 (최신순, 최대 limit건) */ List findHistory(@Param("memberId") Long memberId, @Param("limit") int limit); + + /** 특정 연월 적립/차감 내역 (최신순, 전건) */ + List findHistoryByMonth(@Param("memberId") Long memberId, @Param("year") int year, @Param("month") int month); } diff --git a/src/main/resources/mapper/PointMapper.xml b/src/main/resources/mapper/PointMapper.xml index 6eba1c4..7d0c2e3 100644 --- a/src/main/resources/mapper/PointMapper.xml +++ b/src/main/resources/mapper/PointMapper.xml @@ -34,4 +34,13 @@ LIMIT #{limit} + +