From cb46cadf5a673f53a4ddcf93cadd1f376a9adeea Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 19 八月 2024 17:45:46 +0800 Subject: [PATCH] 8.19.1 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java | 4 +- ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TIntegralRule.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java | 76 ++++++++++++++++++++++++++++++++++++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TSystemConfiguration.java | 2 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java | 3 + 5 files changed, 83 insertions(+), 4 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java index a3e77c3..ea350ac 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java +++ b/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") diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TIntegralRule.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TIntegralRule.java index 9e0a6bb..0d5a429 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TIntegralRule.java +++ b/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; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TSystemConfiguration.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TSystemConfiguration.java index 154cd93..d63735c 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TSystemConfiguration.java +++ b/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; 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 new file mode 100644 index 0000000..5a287f5 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java @@ -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; + } +} diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java index 06838a6..5fdd48e 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java +++ b/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()))); } -- Gitblit v1.7.1