From 77b88bd856c598eaa49121eac7848f9f0935eb4a Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 09 六月 2025 16:45:53 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java index 5a287f5..f2f1b87 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java @@ -4,7 +4,9 @@ import cn.hutool.core.date.DateUtil; import com.ruoyi.account.api.model.TAppUserSign; import com.ruoyi.account.service.TAppUserSignService; +import org.springframework.cglib.core.Local; import org.springframework.stereotype.Component; +import sun.rmi.server.LoaderHandler; import javax.annotation.Resource; import java.time.LocalDate; @@ -48,6 +50,31 @@ return calculateMaxContinuousSignDays(signDays); } + public int calculateContinuousSignDays1(Long userId, LocalDate date) { + DateTime startOfMonth = DateUtil.beginOfMonth(new Date()); +// DateTime endOfMonth = DateUtil.endOfMonth(new Date()); + // 获取用户的所有签到记录 + List<TAppUserSign> signRecords = signService.lambdaQuery() + .between(TAppUserSign::getSignDay, startOfMonth, date) + .eq(TAppUserSign::getAppUserId, userId) + .orderByDesc(TAppUserSign::getSignDay) + .list(); + + // 如果没有签到记录,则返回0 + if (signRecords.isEmpty()) { + return 0; + } + + // 将签到日期转换为 LocalDate 列表,并按照日期排序 + List<LocalDate> signDays = signRecords.stream() + .map(TAppUserSign::getSignDay) + .sorted() + .collect(Collectors.toList()); + + // 计算连续签到的最大天数 + return calculateMaxContinuousSignDays(signDays); + } + /** * 根据签到日期列表计算连续签到的最大天数 * @param signDays 签到日期列表 @@ -71,6 +98,6 @@ // 更新最后的连续天数 maxContinuousDays = Math.max(maxContinuousDays, currentContinuousDays); - return maxContinuousDays; + return currentContinuousDays; } } -- Gitblit v1.7.1