diff --git a/src/main/java/ru/soune/nocopy/entity/complaint/ComplaintEntity.java b/src/main/java/ru/soune/nocopy/entity/complaint/ComplaintEntity.java index acb19e9..37d4e3a 100644 --- a/src/main/java/ru/soune/nocopy/entity/complaint/ComplaintEntity.java +++ b/src/main/java/ru/soune/nocopy/entity/complaint/ComplaintEntity.java @@ -39,12 +39,6 @@ public class ComplaintEntity { @JsonIgnore private Violation violation; - @OneToOne(cascade = CascadeType.ALL) - @JoinColumn(name = "law_case_id") - @ToString.Exclude - @JsonIgnore - private LawCase lawCase; - @Column(name = "created_at", updatable = false) @CreatedDate private LocalDateTime createdAt; @@ -55,4 +49,12 @@ public class ComplaintEntity { @Column(name = "not_moderated_file") private Boolean not_moderated_file; + + @PrePersist + public void prePersist() { + if (this.createdAt == null) { + this.createdAt = LocalDateTime.now(); + } + this.updatedAt = LocalDateTime.now(); + } } diff --git a/src/main/java/ru/soune/nocopy/entity/notification/Notification.java b/src/main/java/ru/soune/nocopy/entity/notification/Notification.java index 31035cb..87b772b 100644 --- a/src/main/java/ru/soune/nocopy/entity/notification/Notification.java +++ b/src/main/java/ru/soune/nocopy/entity/notification/Notification.java @@ -26,7 +26,7 @@ public class Notification { @Column(name = "created_at", updatable = false) @CreatedDate - private LocalDateTime createdAt; + private LocalDateTime createdAt = LocalDateTime.now(); @LastModifiedDate @Column(name = "updated_at") @@ -46,4 +46,13 @@ public class Notification { @JoinColumn(name = "user_id") @JsonIgnore private User user; + + @PrePersist + public void prePersist() { + if (this.createdAt == null) { + this.createdAt = LocalDateTime.now(); + } + + this.updatedAt = LocalDateTime.now(); + } } diff --git a/src/main/java/ru/soune/nocopy/entity/payment/Payment.java b/src/main/java/ru/soune/nocopy/entity/payment/Payment.java index 3646fbc..cb164eb 100644 --- a/src/main/java/ru/soune/nocopy/entity/payment/Payment.java +++ b/src/main/java/ru/soune/nocopy/entity/payment/Payment.java @@ -61,4 +61,13 @@ public class Payment { @JoinColumn(name = "tariff_id") @JsonIgnore private Tariff tariff; + + + @PrePersist + public void prePersist() { + if (this.createdAt == null) { + this.createdAt = LocalDateTime.now(); + } + this.updatedAt = LocalDateTime.now(); + } } \ No newline at end of file diff --git a/src/main/java/ru/soune/nocopy/entity/user/moderation/UserVerification.java b/src/main/java/ru/soune/nocopy/entity/user/moderation/UserVerification.java index 71b1d1e..16d70b3 100644 --- a/src/main/java/ru/soune/nocopy/entity/user/moderation/UserVerification.java +++ b/src/main/java/ru/soune/nocopy/entity/user/moderation/UserVerification.java @@ -41,4 +41,12 @@ public class UserVerification { @Enumerated(EnumType.STRING) @Column(name = "status") private ModerationStatus moderationStatus; + + @PrePersist + public void prePersist() { + if (this.createdAt == null) { + this.createdAt = LocalDateTime.now(); + } + this.updatedAt = LocalDateTime.now(); + } } diff --git a/src/main/java/ru/soune/nocopy/entity/violation/ViolationNotion.java b/src/main/java/ru/soune/nocopy/entity/violation/ViolationNotion.java index 0c361bc..06a397c 100644 --- a/src/main/java/ru/soune/nocopy/entity/violation/ViolationNotion.java +++ b/src/main/java/ru/soune/nocopy/entity/violation/ViolationNotion.java @@ -43,4 +43,12 @@ public class ViolationNotion { @Column(name = "message") private String message; + + @PrePersist + public void prePersist() { + if (this.createdAt == null) { + this.createdAt = LocalDateTime.now(); + } + this.updatedAt = LocalDateTime.now(); + } } diff --git a/src/main/java/ru/soune/nocopy/repository/NotificationRepository.java b/src/main/java/ru/soune/nocopy/repository/NotificationRepository.java index 50e3762..3b6af62 100644 --- a/src/main/java/ru/soune/nocopy/repository/NotificationRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/NotificationRepository.java @@ -11,6 +11,7 @@ import ru.soune.nocopy.entity.notification.NotificationStatus; import ru.soune.nocopy.entity.notification.NotificationType; import ru.soune.nocopy.entity.user.User; +import java.time.LocalDateTime; import java.util.List; public interface NotificationRepository extends JpaRepository { @@ -29,12 +30,13 @@ public interface NotificationRepository extends JpaRepository ids, @Param("user") User user, @Param("oldStatus") NotificationStatus oldStatus, - @Param("newStatus") NotificationStatus newStatus); + @Param("newStatus") NotificationStatus newStatus, + @Param("updateTime") LocalDateTime updateTime); Page getNotificationsByUser(User user, Pageable pageable); } diff --git a/src/main/java/ru/soune/nocopy/service/notification/NotificationService.java b/src/main/java/ru/soune/nocopy/service/notification/NotificationService.java index e820789..4493fb6 100644 --- a/src/main/java/ru/soune/nocopy/service/notification/NotificationService.java +++ b/src/main/java/ru/soune/nocopy/service/notification/NotificationService.java @@ -17,6 +17,7 @@ import ru.soune.nocopy.repository.NotificationRepository; import ru.soune.nocopy.repository.UserRepository; import ru.soune.nocopy.service.user.UserService; +import java.time.LocalDateTime; import java.util.List; import java.util.Locale; @@ -39,6 +40,7 @@ public class NotificationService { Notification notification = Notification.builder() .notificationType(notificationType) + .createdAt(LocalDateTime.now()) .user(userRepository.findById(userId).orElseThrow()) .status(NotificationStatus.NEW) .message(message) @@ -110,7 +112,8 @@ public class NotificationService { if (notificationIds == null || notificationIds.isEmpty()) { return 0; } + return notificationRepository.updateStatus(notificationIds, user, NotificationStatus.NEW, - NotificationStatus.READIED); + NotificationStatus.READIED, LocalDateTime.now()); } }