From abd50a63ed49c898f67affd7925cc48429916825 Mon Sep 17 00:00:00 2001 From: DyCTaTOR <125912249+DyCTaTOR@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:58:09 +0400 Subject: [PATCH] directions1 --- .../directions/model/DirectionsEntity.java | 15 ++++++++-- .../repository/DirectionsRepository.java | 29 ++++++++++++++++--- src/main/resources/application.properties | 19 ++++++++++++ .../demo/{ => java}/DepartmentsTests.java | 2 +- .../demo/{ => java}/DirectionsTests.java | 2 +- .../demo/{ => java}/EntrysDataTests.java | 2 +- .../example/demo/{ => java}/NewsTests.java | 2 +- .../demo/resources/application.properties | 14 +++++++++ 8 files changed, 75 insertions(+), 10 deletions(-) rename src/test/java/com/example/demo/{ => java}/DepartmentsTests.java (96%) rename src/test/java/com/example/demo/{ => java}/DirectionsTests.java (96%) rename src/test/java/com/example/demo/{ => java}/EntrysDataTests.java (96%) rename src/test/java/com/example/demo/{ => java}/NewsTests.java (96%) create mode 100644 src/test/java/com/example/demo/resources/application.properties diff --git a/src/main/java/com/example/demo/directions/model/DirectionsEntity.java b/src/main/java/com/example/demo/directions/model/DirectionsEntity.java index b3fe39d..ff6833a 100644 --- a/src/main/java/com/example/demo/directions/model/DirectionsEntity.java +++ b/src/main/java/com/example/demo/directions/model/DirectionsEntity.java @@ -5,18 +5,29 @@ import java.util.Objects; import com.example.demo.core.model.BaseEntity; import com.example.demo.department.model.DepartmentEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; + +@Entity +@Table(name = "directions") public class DirectionsEntity extends BaseEntity { + @Column(nullable = false, unique = true, length = 9) private String code; + @Column(nullable = false, unique = true, length = 80) private String name; + @ManyToOne + @JoinColumn(name = "departmentId", nullable = false) private DepartmentEntity department; + @Column(nullable = false, unique = true, length = 80) private String things; public DirectionsEntity() { - super(); } public DirectionsEntity(Long id, String code, String name, DepartmentEntity department, String things) { - super(id); this.code = code; this.name = name; this.department = department; diff --git a/src/main/java/com/example/demo/directions/repository/DirectionsRepository.java b/src/main/java/com/example/demo/directions/repository/DirectionsRepository.java index 145a579..ed84f20 100644 --- a/src/main/java/com/example/demo/directions/repository/DirectionsRepository.java +++ b/src/main/java/com/example/demo/directions/repository/DirectionsRepository.java @@ -1,10 +1,31 @@ package com.example.demo.directions.repository; -import org.springframework.stereotype.Repository; +import java.util.Optional; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; -import com.example.demo.core.repository.MapRepository; import com.example.demo.directions.model.DirectionsEntity; -@Repository -public class DirectionsRepository extends MapRepository<DirectionsEntity> { +public interface DirectionsRepository extends CrudRepository<DirectionsEntity, Long> { + Optional<OrderEntity> findOneByUserIdAndId(long userId, long id); + + List<OrderEntity> findByUserId(long userId); + + List<OrderEntity> findByUserIdAndTypeId(long userId, long typeId); + + // select + // tpe.name, + // coalesce(sum(order.price), 0), + // coalesce(sum(order.count), 0) + // from types as tpe + // left join orders as order on tpe.id = order.type_id and order.user_id = ? + // group by tpe.name order by tpe.id + @Query("select " + + "t as type, " + + "coalesce(sum(o.price), 0) as totalPrice, " + + "coalesce(sum(o.count), 0) as totalCount " + + "from TypeEntity t left join OrderEntity o on o.type = t and o.user.id = ?1 " + + "group by t order by t.id") + List<OrderGrouped> getOrdersTotalByType(long userId); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..62ab433 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,20 @@ +# Server +spring.main.banner-mode=off +server.port=8080 +# Logger settings +# Available levels are: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF +logging.level.com.example.demo=DEBUG + +# JPA Settings +spring.datasource.url=jdbc:h2:file:./data +spring.datasource.username=sa +spring.datasource.password=password +spring.datasource.driver-class-name=org.h2.Driver +spring.jpa.hibernate.ddl-auto=create +spring.jpa.open-in-view=false +# spring.jpa.show-sql=true +# spring.jpa.properties.hibernate.format_sql=true + +# H2 console +spring.h2.console.enabled=true \ No newline at end of file diff --git a/src/test/java/com/example/demo/DepartmentsTests.java b/src/test/java/com/example/demo/java/DepartmentsTests.java similarity index 96% rename from src/test/java/com/example/demo/DepartmentsTests.java rename to src/test/java/com/example/demo/java/DepartmentsTests.java index e7b36a2..0e79f9b 100644 --- a/src/test/java/com/example/demo/DepartmentsTests.java +++ b/src/test/java/com/example/demo/java/DepartmentsTests.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.java; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; diff --git a/src/test/java/com/example/demo/DirectionsTests.java b/src/test/java/com/example/demo/java/DirectionsTests.java similarity index 96% rename from src/test/java/com/example/demo/DirectionsTests.java rename to src/test/java/com/example/demo/java/DirectionsTests.java index fc7ec19..c5b1535 100644 --- a/src/test/java/com/example/demo/DirectionsTests.java +++ b/src/test/java/com/example/demo/java/DirectionsTests.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.java; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; diff --git a/src/test/java/com/example/demo/EntrysDataTests.java b/src/test/java/com/example/demo/java/EntrysDataTests.java similarity index 96% rename from src/test/java/com/example/demo/EntrysDataTests.java rename to src/test/java/com/example/demo/java/EntrysDataTests.java index d8476bc..ccd1739 100644 --- a/src/test/java/com/example/demo/EntrysDataTests.java +++ b/src/test/java/com/example/demo/java/EntrysDataTests.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.java; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; diff --git a/src/test/java/com/example/demo/NewsTests.java b/src/test/java/com/example/demo/java/NewsTests.java similarity index 96% rename from src/test/java/com/example/demo/NewsTests.java rename to src/test/java/com/example/demo/java/NewsTests.java index 4942f5a..b370768 100644 --- a/src/test/java/com/example/demo/NewsTests.java +++ b/src/test/java/com/example/demo/java/NewsTests.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.java; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; diff --git a/src/test/java/com/example/demo/resources/application.properties b/src/test/java/com/example/demo/resources/application.properties new file mode 100644 index 0000000..d5f355c --- /dev/null +++ b/src/test/java/com/example/demo/resources/application.properties @@ -0,0 +1,14 @@ +# Server +spring.main.banner-mode=off + +# Logger settings +# Available levels are: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF +logging.level.com.example.demo=DEBUG + +# JPA Settings +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.username=sa +spring.datasource.password=password +spring.datasource.driver-class-name=org.h2.Driver +spring.jpa.hibernate.ddl-auto=create +spring.jpa.open-in-view=false \ No newline at end of file