signinCalendar+apifix

Change-Id: I9c64341669a4eff45f871f1c7a19045049d4c376
diff --git a/src/main/java/com/example/g8backend/service/ISigningService.java b/src/main/java/com/example/g8backend/service/ISigningService.java
index e408e6c..08b1760 100644
--- a/src/main/java/com/example/g8backend/service/ISigningService.java
+++ b/src/main/java/com/example/g8backend/service/ISigningService.java
@@ -1,7 +1,12 @@
 package com.example.g8backend.service;
 
 import com.example.g8backend.dto.ApiResponse;
+import com.example.g8backend.entity.UserSignin;
+
+import java.time.LocalDate;
+import java.util.List;
 
 public interface ISigningService {
     boolean signIn(Long userId);
+    List<UserSignin> getSigninsByDateRange(Long userId, LocalDate startDate, LocalDate endDate);
 }
\ No newline at end of file
diff --git a/src/main/java/com/example/g8backend/service/impl/SigninServiceImpl.java b/src/main/java/com/example/g8backend/service/impl/SigninServiceImpl.java
index 1f70520..429efa8 100644
--- a/src/main/java/com/example/g8backend/service/impl/SigninServiceImpl.java
+++ b/src/main/java/com/example/g8backend/service/impl/SigninServiceImpl.java
@@ -10,6 +10,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDate;
+import java.util.List;
 
 @Service
 @RequiredArgsConstructor
@@ -49,4 +50,13 @@
         userMapper.updateById(user);
         return true;
     }
+
+    @Override
+    public List<UserSignin> getSigninsByDateRange(Long userId, LocalDate startDate, LocalDate endDate) {
+        QueryWrapper<UserSignin> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id", userId)
+                .between("signin_date", startDate, endDate)
+                .orderByAsc("signin_date");
+        return userSigninMapper.selectList(queryWrapper);
+    }
 }
\ No newline at end of file