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