the first working version #2
2
pom.xml
2
pom.xml
@ -22,7 +22,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>3.4.0</version>
|
<version>2.7.10</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package com.example.nto.domain.entity;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -12,8 +9,11 @@ import org.springframework.data.annotation.CreatedDate;
|
|||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
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.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -62,9 +62,9 @@ public class Employee implements UserDetails {
|
|||||||
@Size(max = 300, message = "Максимальная длина пароля 300 символов!")
|
@Size(max = 300, message = "Максимальная длина пароля 300 символов!")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
// @ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.EAGER)
|
||||||
// @JoinColumn(name = "office_id", referencedColumnName = "id", nullable = false)
|
@JoinColumn(name = "office_id", referencedColumnName = "id", nullable = false)
|
||||||
// private Office office;
|
private Office office;
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(name = "pos_id", referencedColumnName = "id", nullable = false)
|
@JoinColumn(name = "pos_id", referencedColumnName = "id", nullable = false)
|
||||||
@ -78,12 +78,15 @@ public class Employee implements UserDetails {
|
|||||||
@Size(max = 300, message = "Максимальная длина адреса изображения 300 символов!")
|
@Size(max = 300, message = "Максимальная длина адреса изображения 300 символов!")
|
||||||
private String profileImageUrl;
|
private String profileImageUrl;
|
||||||
|
|
||||||
|
@Column(name = "is_blocked")
|
||||||
|
private boolean isBlocked;
|
||||||
|
|
||||||
@CreatedDate
|
@CreatedDate
|
||||||
@Column(name = "created_at", columnDefinition = "TIMESTAMP", nullable = false)
|
@Column(name = "created_at", columnDefinition = "TIMESTAMP", nullable = false)
|
||||||
private LocalDateTime createdAt;
|
private LocalDateTime createdAt;
|
||||||
|
|
||||||
// @OneToMany(mappedBy = "employee")
|
@OneToMany(mappedBy = "employee")
|
||||||
// private List<Visit> visits = new ArrayList<>();
|
private List<Visit> visits;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||||
@ -92,7 +95,7 @@ public class Employee implements UserDetails {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPassword() {
|
public String getPassword() {
|
||||||
return "";
|
return this.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
package com.example.nto.domain.entity;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
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;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
32
src/main/java/com/example/nto/domain/entity/Passage.java
Normal file
32
src/main/java/com/example/nto/domain/entity/Passage.java
Normal file
@ -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<Visit> visits;
|
||||||
|
}
|
@ -1,13 +1,14 @@
|
|||||||
package com.example.nto.domain.entity;
|
package com.example.nto.domain.entity;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
package com.example.nto.domain.entity;
|
package com.example.nto.domain.entity;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
package com.example.nto.domain.entity;
|
package com.example.nto.domain.entity;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
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;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -29,8 +30,9 @@ public class Terminal {
|
|||||||
|
|
||||||
// Мне нужна была рандомная генерация кода для терминала, так что я мог сделать кривую реализацию через самописную функцию,
|
// Мне нужна была рандомная генерация кода для терминала, так что я мог сделать кривую реализацию через самописную функцию,
|
||||||
// но боялся, что она будет генерировать не уникальные значения. (я очень смутно представляю, как эта штука работает)
|
// но боялся, что она будет генерировать не уникальные значения. (я очень смутно представляю, как эта штука работает)
|
||||||
// Код взят отсюда: https://stackoverflow.com/questions/76723290/using-the-new-type-for-uuidgenerator-instead-of-strategy
|
// Код взят отсюда: https://stackoverflow.com/questions/25082244/auto-generate-unique-random-string-in-spring-mvc-hibernate
|
||||||
@UuidGenerator
|
@GenericGenerator(name = "uuid-gen", strategy = "uuid")
|
||||||
|
@GeneratedValue(generator = "uuid-gen")
|
||||||
@NotBlank(message = "Код не может быть пустым!")
|
@NotBlank(message = "Код не может быть пустым!")
|
||||||
@Column(name = "code", nullable = false, unique = true)
|
@Column(name = "code", nullable = false, unique = true)
|
||||||
private String code;
|
private String code;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.example.nto.domain.entity;
|
package com.example.nto.domain.entity;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -30,7 +30,7 @@ public class Visit {
|
|||||||
private LocalDateTime endVisit;
|
private LocalDateTime endVisit;
|
||||||
|
|
||||||
@Column(name = "is_finished", nullable = false)
|
@Column(name = "is_finished", nullable = false)
|
||||||
private boolean isFinished = false;
|
private final boolean isFinished = false;
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(name = "start_terminal_id", referencedColumnName = "code", nullable = false)
|
@JoinColumn(name = "start_terminal_id", referencedColumnName = "code", nullable = false)
|
||||||
@ -39,5 +39,8 @@ public class Visit {
|
|||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(name = "end_terminal_id", referencedColumnName = "code")
|
@JoinColumn(name = "end_terminal_id", referencedColumnName = "code")
|
||||||
private Terminal endTerminal;
|
private Terminal endTerminal;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "passage")
|
||||||
|
private long typePassage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ public class EmployeeCreateDTO {
|
|||||||
private String telephone;
|
private String telephone;
|
||||||
private String email;
|
private String email;
|
||||||
private String password;
|
private String password;
|
||||||
|
private boolean isBlocked;
|
||||||
|
|
||||||
private String officeName; // Имя офиса, к которому присоединится работник.
|
private String officeName; // Имя офиса, к которому присоединится работник.
|
||||||
private String positionName; // Должность работника.
|
private String positionName; // Должность работника.
|
||||||
|
@ -27,6 +27,7 @@ public class EmployeeDTO {
|
|||||||
private String role; // строка либо ROLE_USER, либо ROLE_ADMIN
|
private String role; // строка либо ROLE_USER, либо ROLE_ADMIN
|
||||||
|
|
||||||
private String profileImageUrl;
|
private String profileImageUrl;
|
||||||
|
private boolean isBlocked;
|
||||||
|
|
||||||
// Текущее состояние входа: false - visit (посещение) ещё не началось, true - visit идёт
|
// Текущее состояние входа: false - visit (посещение) ещё не началось, true - visit идёт
|
||||||
private boolean visitStatus;
|
private boolean visitStatus;
|
||||||
|
@ -16,6 +16,7 @@ public class EmployeeItemDTO {
|
|||||||
private String surname;
|
private String surname;
|
||||||
private String patronymic;
|
private String patronymic;
|
||||||
private String profileImageUrl;
|
private String profileImageUrl;
|
||||||
|
private boolean isBlocked;
|
||||||
|
|
||||||
private String officeName;
|
private String officeName;
|
||||||
private String position; // Название должности
|
private String position; // Название должности
|
||||||
|
Loading…
x
Reference in New Issue
Block a user