This commit is contained in:
2024-10-28 18:30:24 +03:00
parent 31d2c3e804
commit c6914cf4e7
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-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
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'
annotationProcessor 'org.projectlombok:lombok'

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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