ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
@@ -44,6 +44,9 @@ @ApiModelProperty(value = "奖励积分") @TableField("reward_points") private Integer rewardPoints; @ApiModelProperty(value = "礼盒标记") @TableField("is_gift") private Integer isGift; @ApiModelProperty(value = "添加时间") @TableField("create_time") ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TIntegralRule.java
@@ -48,7 +48,7 @@ @TableField("invite_users_to_earn_points") private String inviteUsersToEarnPoints; @ApiModelProperty(value = "签到得积分{\"num1\":1,\"num2\":[{\"num1\":1,\"num2\":1}]}") @ApiModelProperty(value = "签到得积分{\"num1\":1,\"num2\":[\"1(多少天),2(多少分)\"]}") @TableField("sign_in_for_points") private String signInForPoints; ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TSystemConfiguration.java
@@ -24,7 +24,7 @@ @EqualsAndHashCode(callSuper = false) @TableName("t_system_configuration") @ApiModel(value="TSystemConfiguration对象", description="") public class TSystemConfiguration extends BasePojo { public class TSystemConfiguration implements Serializable{ private static final long serialVersionUID = 1L; ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
New file @@ -0,0 +1,76 @@ package com.ruoyi.account.util; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.ruoyi.account.api.model.TAppUserSign; import com.ruoyi.account.service.TAppUserSignService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Component public class SignDayUtil { // 假设这是你的 signService 接口或者实现类 @Resource private TAppUserSignService signService; /** * 计算用户的最近连续签到天数 * @param userId 用户ID * @return 连续签到的最大天数 */ public int calculateContinuousSignDays(Long userId) { DateTime startOfMonth = DateUtil.beginOfMonth(new Date()); DateTime endOfMonth = DateUtil.endOfMonth(new Date()); // 获取用户的所有签到记录 List<TAppUserSign> signRecords = signService.lambdaQuery() .between(TAppUserSign::getSignDay, startOfMonth, endOfMonth) .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 签到日期列表 * @return 最大连续签到天数 */ private int calculateMaxContinuousSignDays(List<LocalDate> signDays) { int maxContinuousDays = 0; int currentContinuousDays = 0; LocalDate lastSignDay = null; for (LocalDate signDay : signDays) { if (lastSignDay != null && signDay.equals(lastSignDay.plusDays(1))) { currentContinuousDays++; } else { maxContinuousDays = Math.max(maxContinuousDays, currentContinuousDays); currentContinuousDays = 1; } lastSignDay = signDay; } // 更新最后的连续天数 maxContinuousDays = Math.max(maxContinuousDays, currentContinuousDays); return maxContinuousDays; } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java
@@ -61,8 +61,8 @@ .page(Page.of(query.getPageCurr(),query.getPageSize()))); }else{ return AjaxResult.success(noticeService.lambdaQuery() .like(query.getContent()!=null&&query.getContent()!="",TNotice::getContent,query.getContent()) .page(Page.of(query.getPageCurr(),query.getPageSize()))); .like(query.getContent() != null && query.getContent() != "", TNotice::getContent, query.getContent()) .page(Page.of(query.getPageCurr(), query.getPageSize()))); }