feat: add user leveling and experience system

This commit is contained in:
Tim
2025-07-28 12:34:45 +08:00
parent a5900aa60d
commit 1c2751422d
18 changed files with 167 additions and 10 deletions

View File

@@ -17,15 +17,16 @@ public class UserVisitService {
private final UserVisitRepository userVisitRepository;
private final UserRepository userRepository;
public void recordVisit(String username) {
public boolean recordVisit(String username) {
User user = userRepository.findByUsername(username)
.orElseThrow(() -> new com.openisle.exception.NotFoundException("User not found"));
LocalDate today = LocalDate.now();
userVisitRepository.findByUserAndVisitDate(user, today).orElseGet(() -> {
return userVisitRepository.findByUserAndVisitDate(user, today).map(v -> false).orElseGet(() -> {
UserVisit visit = new UserVisit();
visit.setUser(user);
visit.setVisitDate(today);
return userVisitRepository.save(visit);
userVisitRepository.save(visit);
return true;
});
}