From ca803cdcf778deee598611720228e36335c0eef4 Mon Sep 17 00:00:00 2001 From: Petr Rudichev Date: Wed, 19 Feb 2025 10:22:26 +0300 Subject: [PATCH] build: update version parent --- pom.xml | 2 +- .../example/nto/domain/entity/Employee.java | 25 ++++++++------- .../com/example/nto/domain/entity/Office.java | 11 ++++--- .../example/nto/domain/entity/Passage.java | 32 +++++++++++++++++++ .../example/nto/domain/entity/Position.java | 7 ++-- .../com/example/nto/domain/entity/Role.java | 7 ++-- .../example/nto/domain/entity/Terminal.java | 14 ++++---- .../com/example/nto/domain/entity/Visit.java | 7 ++-- .../entity/employee/EmployeeCreateDTO.java | 1 + .../nto/dto/entity/employee/EmployeeDTO.java | 1 + .../dto/entity/employee/EmployeeItemDTO.java | 1 + 11 files changed, 77 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/example/nto/domain/entity/Passage.java diff --git a/pom.xml b/pom.xml index da3dbeb..f3ce82f 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 2.7.10 diff --git a/src/main/java/com/example/nto/domain/entity/Employee.java b/src/main/java/com/example/nto/domain/entity/Employee.java index f667855..33b0482 100644 --- a/src/main/java/com/example/nto/domain/entity/Employee.java +++ b/src/main/java/com/example/nto/domain/entity/Employee.java @@ -1,9 +1,6 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; -import jakarta.validation.constraints.Email; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -12,8 +9,11 @@ import org.springframework.data.annotation.CreatedDate; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; +import javax.persistence.*; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.time.LocalDateTime; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -62,9 +62,9 @@ public class Employee implements UserDetails { @Size(max = 300, message = "Максимальная длина пароля 300 символов!") private String password; - // @ManyToOne(fetch = FetchType.EAGER) - // @JoinColumn(name = "office_id", referencedColumnName = "id", nullable = false) - // private Office office; + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "office_id", referencedColumnName = "id", nullable = false) + private Office office; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "pos_id", referencedColumnName = "id", nullable = false) @@ -78,12 +78,15 @@ public class Employee implements UserDetails { @Size(max = 300, message = "Максимальная длина адреса изображения 300 символов!") private String profileImageUrl; + @Column(name = "is_blocked") + private boolean isBlocked; + @CreatedDate @Column(name = "created_at", columnDefinition = "TIMESTAMP", nullable = false) private LocalDateTime createdAt; - // @OneToMany(mappedBy = "employee") - // private List visits = new ArrayList<>(); + @OneToMany(mappedBy = "employee") + private List visits; @Override public Collection getAuthorities() { @@ -92,7 +95,7 @@ public class Employee implements UserDetails { @Override public String getPassword() { - return ""; + return this.password; } @Override diff --git a/src/main/java/com/example/nto/domain/entity/Office.java b/src/main/java/com/example/nto/domain/entity/Office.java index cee9e88..5f3aa55 100644 --- a/src/main/java/com/example/nto/domain/entity/Office.java +++ b/src/main/java/com/example/nto/domain/entity/Office.java @@ -1,15 +1,16 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; -import jakarta.validation.constraints.Email; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.*; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.util.List; @Data diff --git a/src/main/java/com/example/nto/domain/entity/Passage.java b/src/main/java/com/example/nto/domain/entity/Passage.java new file mode 100644 index 0000000..73e4a4f --- /dev/null +++ b/src/main/java/com/example/nto/domain/entity/Passage.java @@ -0,0 +1,32 @@ +package com.example.nto.domain.entity; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import java.util.List; + +@Data +@Entity +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "passages") +public class Passage { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "passage", unique = true) + @NotBlank(message = "Название не может быть пустым!") + @Size(max = 100, message = "Максимальная длина названия 100 символов!") + private String passage; + + @OneToMany(mappedBy = "typePassage") + private List visits; +} diff --git a/src/main/java/com/example/nto/domain/entity/Position.java b/src/main/java/com/example/nto/domain/entity/Position.java index 61d900e..d934618 100644 --- a/src/main/java/com/example/nto/domain/entity/Position.java +++ b/src/main/java/com/example/nto/domain/entity/Position.java @@ -1,13 +1,14 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.util.List; @Data diff --git a/src/main/java/com/example/nto/domain/entity/Role.java b/src/main/java/com/example/nto/domain/entity/Role.java index 73c2b81..4046177 100644 --- a/src/main/java/com/example/nto/domain/entity/Role.java +++ b/src/main/java/com/example/nto/domain/entity/Role.java @@ -1,14 +1,15 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.security.core.GrantedAuthority; +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.util.List; @Data diff --git a/src/main/java/com/example/nto/domain/entity/Terminal.java b/src/main/java/com/example/nto/domain/entity/Terminal.java index d1ff6aa..c8d1639 100644 --- a/src/main/java/com/example/nto/domain/entity/Terminal.java +++ b/src/main/java/com/example/nto/domain/entity/Terminal.java @@ -1,14 +1,15 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.UuidGenerator; +import org.hibernate.annotations.GenericGenerator; +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.util.List; @Data @@ -29,8 +30,9 @@ public class Terminal { // Мне нужна была рандомная генерация кода для терминала, так что я мог сделать кривую реализацию через самописную функцию, // но боялся, что она будет генерировать не уникальные значения. (я очень смутно представляю, как эта штука работает) - // Код взят отсюда: https://stackoverflow.com/questions/76723290/using-the-new-type-for-uuidgenerator-instead-of-strategy - @UuidGenerator + // Код взят отсюда: https://stackoverflow.com/questions/25082244/auto-generate-unique-random-string-in-spring-mvc-hibernate + @GenericGenerator(name = "uuid-gen", strategy = "uuid") + @GeneratedValue(generator = "uuid-gen") @NotBlank(message = "Код не может быть пустым!") @Column(name = "code", nullable = false, unique = true) private String code; diff --git a/src/main/java/com/example/nto/domain/entity/Visit.java b/src/main/java/com/example/nto/domain/entity/Visit.java index 58d2f3b..35d502a 100644 --- a/src/main/java/com/example/nto/domain/entity/Visit.java +++ b/src/main/java/com/example/nto/domain/entity/Visit.java @@ -1,11 +1,11 @@ package com.example.nto.domain.entity; -import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.*; import java.time.LocalDateTime; @Data @@ -30,7 +30,7 @@ public class Visit { private LocalDateTime endVisit; @Column(name = "is_finished", nullable = false) - private boolean isFinished = false; + private final boolean isFinished = false; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "start_terminal_id", referencedColumnName = "code", nullable = false) @@ -39,5 +39,8 @@ public class Visit { @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "end_terminal_id", referencedColumnName = "code") private Terminal endTerminal; + + @OneToMany(mappedBy = "passage") + private long typePassage; } diff --git a/src/main/java/com/example/nto/dto/entity/employee/EmployeeCreateDTO.java b/src/main/java/com/example/nto/dto/entity/employee/EmployeeCreateDTO.java index 80f5c31..06de761 100644 --- a/src/main/java/com/example/nto/dto/entity/employee/EmployeeCreateDTO.java +++ b/src/main/java/com/example/nto/dto/entity/employee/EmployeeCreateDTO.java @@ -16,6 +16,7 @@ public class EmployeeCreateDTO { private String telephone; private String email; private String password; + private boolean isBlocked; private String officeName; // Имя офиса, к которому присоединится работник. private String positionName; // Должность работника. diff --git a/src/main/java/com/example/nto/dto/entity/employee/EmployeeDTO.java b/src/main/java/com/example/nto/dto/entity/employee/EmployeeDTO.java index 450d94b..ac9698f 100644 --- a/src/main/java/com/example/nto/dto/entity/employee/EmployeeDTO.java +++ b/src/main/java/com/example/nto/dto/entity/employee/EmployeeDTO.java @@ -27,6 +27,7 @@ public class EmployeeDTO { private String role; // строка либо ROLE_USER, либо ROLE_ADMIN private String profileImageUrl; + private boolean isBlocked; // Текущее состояние входа: false - visit (посещение) ещё не началось, true - visit идёт private boolean visitStatus; diff --git a/src/main/java/com/example/nto/dto/entity/employee/EmployeeItemDTO.java b/src/main/java/com/example/nto/dto/entity/employee/EmployeeItemDTO.java index ca0fdd4..5b9518f 100644 --- a/src/main/java/com/example/nto/dto/entity/employee/EmployeeItemDTO.java +++ b/src/main/java/com/example/nto/dto/entity/employee/EmployeeItemDTO.java @@ -16,6 +16,7 @@ public class EmployeeItemDTO { private String surname; private String patronymic; private String profileImageUrl; + private boolean isBlocked; private String officeName; private String position; // Название должности