1 Commits
main ... lab4

Author SHA1 Message Date
c6914cf4e7 lab4 2024-10-28 18:30:24 +03:00
11 changed files with 39 additions and 45 deletions

View File

@@ -27,14 +27,10 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
developmentOnly 'org.springframework.boot:spring-boot-devtools' developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'org.hibernate.orm:hibernate-community-dialects'
implementation 'org.xerial:sqlite-jdbc:3.46.1.3'
compileOnly 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'

View File

@@ -12,14 +12,17 @@ import java.util.List;
@Controller @Controller
public class HomeController { public class HomeController {
@Autowired private final ProductRepository productRepository;
private ProductRepository productRepository;
public HomeController(ProductRepository productRepository) {
this.productRepository = productRepository;
}
@GetMapping("/") @GetMapping("/")
public String home(Model model) { public String home(Model model) {
model.addAttribute("message", "Добро пожаловать в магазин электротоваров!"); model.addAttribute("message", "Добро пожаловать в магазин электротоваров!");
List<Product> products = productRepository.findAll(); Iterable<Product> products = productRepository.findAll();
model.addAttribute("products", products); model.addAttribute("products", products);

View File

@@ -14,8 +14,11 @@ import ru.lionarius.isdojplab.repository.UserRepository;
@Controller @Controller
public class RegisterFormController { public class RegisterFormController {
@Autowired private final UserRepository userRepository;
private UserRepository userRepository;
public RegisterFormController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("/register") @GetMapping("/register")
public String showForm(Model model) { public String showForm(Model model) {

View File

@@ -1,23 +1,22 @@
package ru.lionarius.isdojplab.model; package ru.lionarius.isdojplab.model;
import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List; import java.util.List;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Document
public class Cart { public class Cart {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private String id;
private Long id;
@OneToMany(cascade = CascadeType.ALL)
private List<CartItem> items; private List<CartItem> items;
private Double totalPrice; private Double totalPrice;

View File

@@ -1,20 +1,19 @@
package ru.lionarius.isdojplab.model; package ru.lionarius.isdojplab.model;
import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Document
public class CartItem { public class CartItem {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private String id;
private Long id;
@ManyToOne
private Product product; private Product product;
private int quantity; private int quantity;

View File

@@ -1,9 +1,10 @@
package ru.lionarius.isdojplab.model; package ru.lionarius.isdojplab.model;
import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@@ -11,11 +12,10 @@ import java.util.List;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Document
public class CartOrder { public class CartOrder {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private String customerName; private String customerName;
@@ -23,7 +23,6 @@ public class CartOrder {
private String address; private String address;
private String email; private String email;
@OneToMany(cascade = CascadeType.ALL)
private List<CartItem> items; private List<CartItem> items;
private BigDecimal totalPrice; private BigDecimal totalPrice;

View File

@@ -1,18 +1,18 @@
package ru.lionarius.isdojplab.model; package ru.lionarius.isdojplab.model;
import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Document
public class Product { public class Product {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private String id;
private Long id;
private String name; private String name;
private Double price; private Double price;

View File

@@ -1,20 +1,17 @@
package ru.lionarius.isdojplab.model; package ru.lionarius.isdojplab.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Data @Data
@Entity @Document
public class User { public class User {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private String id;
private Long id;
@NotBlank(message = "Поле не может быть пустым") @NotBlank(message = "Поле не может быть пустым")
private String name; private String name;

View File

@@ -1,9 +1,9 @@
package ru.lionarius.isdojplab.repository; package ru.lionarius.isdojplab.repository;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import ru.lionarius.isdojplab.model.Product; import ru.lionarius.isdojplab.model.Product;
@Repository @Repository
public interface ProductRepository extends JpaRepository<Product, Long> { public interface ProductRepository extends CrudRepository<Product, Long> {
} }

View File

@@ -1,13 +1,13 @@
package ru.lionarius.isdojplab.repository; package ru.lionarius.isdojplab.repository;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import ru.lionarius.isdojplab.model.User; import ru.lionarius.isdojplab.model.User;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
public interface UserRepository extends JpaRepository<User, Long> { public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findByEmail(String email); Optional<User> findByEmail(String email);
Optional<User> findByName(String name); Optional<User> findByName(String name);

View File

@@ -1,7 +1,5 @@
spring.application.name=isdojp-lab spring.application.name=isdojp-lab
spring.datasource.driver-class-name=org.sqlite.JDBC spring.data.mongodb.host=localhost
spring.datasource.url=jdbc:sqlite:./database/data.db spring.data.mongodb.port=27017
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect spring.data.mongodb.database=isdojp
spring.jpa.generate-ddl=true spring.data.mongodb.auto-index-creation=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true