Просмотр исходного кода

Creating library and user repository and user service

Vlada645 1 месяц назад
Родитель
Сommit
fc04c32df2

+ 9 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/model/Library.java

@@ -18,4 +18,13 @@ public class Library {
     private int totalGameCount;
     private int totalPlaytimeSum;
     private float avgLibraryRating;
+
+    public void setUser(User newUser) { user = newUser;}
+
+    public void setTotalGamesCount(int i) { totalGameCount = i;}
+
+    public void setTotalPlaytimeSum(int i) { totalGameCount = i;}
+
+    public void setAvgLibraryRating(float v) { avgLibraryRating = v;
+    }
 }

+ 8 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/model/User.java

@@ -29,5 +29,13 @@ public class User {
 
     @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY )
     private Library library;
+
+    public void setMemberSince(LocalDateTime now) { memberSince = now;}
+    public void setAccountStatus(String status) {accountStatus = status;}
+    public void setWalletBalance(BigDecimal newWalletBalance) {walletBalance = newWalletBalance;}
+    public void setTotalSpent(BigDecimal spent) { totalSpent = spent;}
+
+    public void setLibrary(Library library) {
+    }
 }
 

+ 9 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/repository/LibraryRepository.java

@@ -0,0 +1,9 @@
+package pl.dmss.vmaneliuk.database.repository;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+import pl.dmss.vmaneliuk.database.model.Library;
+
+@Repository
+public interface LibraryRepository extends JpaRepository<Library, Long> {
+}

+ 1 - 1
final project/database/src/main/java/pl/dmss/vmaneliuk/database/repository/UserRepository.java

@@ -5,7 +5,7 @@ import pl.dmss.vmaneliuk.database.model.User;
 
 import java.util.Optional;
 
-public class UserRepository implements JpaRepository<User, Long> {
+public interface UserRepository extends JpaRepository<User, Long> {
     Optional<User> findByEmail(String email);
 
 }

+ 43 - 0
final project/database/src/main/java/pl/dmss/vmaneliuk/database/services/UserService.java

@@ -0,0 +1,43 @@
+package pl.dmss.vmaneliuk.database.services;
+
+import jakarta.transaction.Transactional;
+import org.springframework.stereotype.Service;
+import pl.dmss.vmaneliuk.database.model.Library;
+import pl.dmss.vmaneliuk.database.model.User;
+import pl.dmss.vmaneliuk.database.repository.UserRepository;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class UserService {
+    private final UserRepository userRepository;
+
+    public UserService(UserRepository userRepository) {
+        this.userRepository = userRepository;
+    }
+
+    public List<User> getAllUsers() {
+        return userRepository.findAll();
+    }
+
+    @Transactional
+    public User registerUser(User user) {
+        // Set default values for a new user
+        user.setMemberSince(LocalDateTime.now());
+        user.setAccountStatus("ACTIVE");
+        user.setWalletBalance(BigDecimal.ZERO);
+        user.setTotalSpent(BigDecimal.ZERO);
+
+        // Automatically create and link an empty library
+        Library library = new Library();
+        library.setUser(user);
+        library.setTotalGamesCount(0);
+        library.setTotalPlaytimeSum(0);
+        library.setAvgLibraryRating(0.0F);
+
+        user.setLibrary(library);
+        return userRepository.save(user);
+    }
+}