增加付费片单,修复种子列表搜索排序
Change-Id: Ib645906c0f240f954676790daf2ff0e5f16f6e0a
diff --git a/src/main/java/com/example/myproject/service/UserService.java b/src/main/java/com/example/myproject/service/UserService.java
index 7f0b48a..ca16ddf 100644
--- a/src/main/java/com/example/myproject/service/UserService.java
+++ b/src/main/java/com/example/myproject/service/UserService.java
@@ -334,6 +334,7 @@
import com.example.myproject.entity.Users;
import com.example.myproject.entity.UserInviteCode;
import com.example.myproject.repository.FriendRelationRepository;
+import com.example.myproject.repository.LoginLogRepository;
import com.example.myproject.repository.UserRepository;
import com.example.myproject.repository.UserInviteCodeRepository;
import jakarta.transaction.Transactional;
@@ -344,6 +345,7 @@
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
+import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -363,6 +365,11 @@
@Autowired
private FriendRelationRepository friendRelationRepository;
+ private final LoginLogRepository loginLogRepository;
+
+ public UserService(LoginLogRepository loginLogRepository) {
+ this.loginLogRepository = loginLogRepository;
+ }
// 生成邀请码
public Map<String, Object> generateInviteCode(Long userId) {
@@ -445,8 +452,8 @@
return "邀请码无效或已被使用";
}
- // 设置默认等级为2(由于邀请码有效)
- Long level = 2L;
+ // 设置默认等级为1(由于邀请码有效)
+ Long level = 1L;
// 设置默认头像 URL
String avatarUrl = "https://example.com/default-avatar.jpg"; // 默认头像
@@ -722,13 +729,56 @@
if (user == null) {
return "用户不存在";
}
- // 累加money
- Integer currentMoney = user.getMoney() == null ? 0 : user.getMoney();
- user.setMoney(currentMoney + amount);
+ // 处理money为BigDecimal
+ BigDecimal currentMoney = user.getMoney() == null ? BigDecimal.ZERO : user.getMoney();
+ BigDecimal rechargeAmount = new BigDecimal(amount);
+ BigDecimal newMoney = currentMoney.add(rechargeAmount);
+
+ user.setMoney(newMoney);
userRepository.save(user);
return "充值成功,当前余额:" + user.getMoney();
}
+ public Users getById(Long userId) {
+ return userRepository.findById(userId).orElse(null);
+ }
+
+
+ /**
+ * 检查用户是否有连续三天的登录记录
+ * @param userId 用户ID
+ * @return 是否有连续三天的登录记录
+ */
+ public boolean hasConsecutiveLoginDays(Long userId) {
+ // 获取用户的所有登录日期
+ List<LocalDateTime> loginDates = loginLogRepository.findDistinctLoginDates(userId);
+
+ if (loginDates.size() < 3) {
+ return false;
+ }
+
+ // 将日期转换为LocalDate并排序
+ List<LocalDate> dates = loginDates.stream()
+ .map(LocalDateTime::toLocalDate)
+ .distinct()
+ .sorted()
+ .toList();
+
+ // 检查是否有连续的三天
+ for (int i = 0; i < dates.size() - 2; i++) {
+ LocalDate date1 = dates.get(i);
+ LocalDate date2 = dates.get(i + 1);
+ LocalDate date3 = dates.get(i + 2);
+
+ if (date2.equals(date1.plusDays(1)) && date3.equals(date2.plusDays(1))) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+
}