From caae6eae5a5e389a0c0debf2f9d1febe12520c56 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Thu, 1 Apr 2021 16:16:54 +0400 Subject: [PATCH 01/14] #18 - Create statistic --- src/main/resources/templates/statistic.html | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/resources/templates/statistic.html diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html new file mode 100644 index 0000000..9d53245 --- /dev/null +++ b/src/main/resources/templates/statistic.html @@ -0,0 +1,55 @@ + + + + Простая обработка формы на Spring MVC + + +
+ + + +
+
+
+ From fc2f0c209aec8b7cbd9fc1343480e4a5ac67d811 Mon Sep 17 00:00:00 2001 From: BarminaA Date: Fri, 2 Apr 2021 14:12:05 +0400 Subject: [PATCH 02/14] #18- Add controller --- .../controller/StatisticController.java | 35 +++++++++++++++++++ src/main/resources/templates/statistic.html | 29 ++++++++++----- 2 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 src/main/java/ru/ulstu/extractor/controller/StatisticController.java diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java new file mode 100644 index 0000000..d4cdaa1 --- /dev/null +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -0,0 +1,35 @@ +package ru.ulstu.extractor.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import ru.ulstu.extractor.repository.BranchRepository; +import ru.ulstu.extractor.repository.RepositoryRepository; + +@Controller +public class StatisticController { + private final RepositoryRepository repositoryRepository; + private final BranchRepository branchRepository; + + public StatisticController(RepositoryRepository repositoryRepository, BranchRepository branchRepository) { + this.repositoryRepository = repositoryRepository; + this.branchRepository = branchRepository; + } + + @GetMapping("/statistic") + public String indexBranch( + Model model) { + String[] continents = { + "Africa", "Antarctica", "Asia", "Australia", + "Europe", "North America", "Sourth America" + }; + + + model.addAttribute("continents", continents); + model.addAttribute("array", new int[]{1,2,3}); + String[][] data = new String[][] {{"Газ", "Объём"}, {"Dsdfsdf", "10"}}; + model.addAttribute("data", data); + return "statistic"; + } +} diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index 9d53245..6eadddf 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -1,6 +1,6 @@ Простая обработка формы на Spring MVC @@ -8,18 +8,27 @@
- + +
+
    +

    From c4edf5b6398d2fc59812878bae8b7c3895b48aa4 Mon Sep 17 00:00:00 2001 From: BarminaA Date: Fri, 2 Apr 2021 16:10:46 +0400 Subject: [PATCH 03/14] #18- Add CommitAuthorStatistic --- .../controller/StatisticController.java | 21 ++++++++++++------- .../model/CommitAuthorStatistic.java | 20 ++++++++++++++++++ .../repository/CommitRepository.java | 5 +++++ src/main/resources/templates/statistic.html | 8 ++++--- 4 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 src/main/java/ru/ulstu/extractor/model/CommitAuthorStatistic.java diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index d4cdaa1..06cbd9f 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -5,16 +5,18 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import ru.ulstu.extractor.repository.BranchRepository; +import ru.ulstu.extractor.repository.CommitRepository; import ru.ulstu.extractor.repository.RepositoryRepository; +import java.util.List; +import java.util.stream.Collectors; + @Controller public class StatisticController { - private final RepositoryRepository repositoryRepository; - private final BranchRepository branchRepository; + private final CommitRepository commitRepository; - public StatisticController(RepositoryRepository repositoryRepository, BranchRepository branchRepository) { - this.repositoryRepository = repositoryRepository; - this.branchRepository = branchRepository; + public StatisticController(CommitRepository commitRepository) { + this.commitRepository = commitRepository; } @GetMapping("/statistic") @@ -27,9 +29,12 @@ public class StatisticController { model.addAttribute("continents", continents); - model.addAttribute("array", new int[]{1,2,3}); - String[][] data = new String[][] {{"Газ", "Объём"}, {"Dsdfsdf", "10"}}; - model.addAttribute("data", data); + model.addAttribute("array", new int[]{1, 2, 3}); + List listArr = commitRepository.getCommitAuthorStatistic().stream() + .map(stat -> new String[]{stat.getAuthor(), stat.getCountCommit().toString()}) + .collect(Collectors.toList()); + String[][] commitAuthorData = listArr.toArray(String[][]::new); + model.addAttribute("commitAuthorData", commitAuthorData); return "statistic"; } } diff --git a/src/main/java/ru/ulstu/extractor/model/CommitAuthorStatistic.java b/src/main/java/ru/ulstu/extractor/model/CommitAuthorStatistic.java new file mode 100644 index 0000000..5587cb2 --- /dev/null +++ b/src/main/java/ru/ulstu/extractor/model/CommitAuthorStatistic.java @@ -0,0 +1,20 @@ +package ru.ulstu.extractor.model; + +public class CommitAuthorStatistic { + private String author; + private Long countCommit; + + public CommitAuthorStatistic(String author, Long countCommit) { + this.author = author; + this.countCommit = countCommit; + } + + public String getAuthor() { + return author; + } + + public Long getCountCommit() { + return countCommit; + } + +} diff --git a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java index 3c32439..b8f5659 100644 --- a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java +++ b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java @@ -6,9 +6,14 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import ru.ulstu.extractor.model.Commit; +import ru.ulstu.extractor.model.CommitAuthorStatistic; import ru.ulstu.extractor.model.Repository; +import java.util.List; + public interface CommitRepository extends JpaRepository { @Query("SELECT c FROM Commit c, Repository r, Branch b WHERE c.branch = b AND r = b.repository AND r = :repository AND b.name = :branchName") Page findByRepositoryAndBranch(Pageable pageable, @Param("repository") Repository repository, @Param("branchName") String branchName); + @Query("SELECT new ru.ulstu.extractor.model.CommitAuthorStatistic(c.author.name, COUNT(c)) FROM Commit c GROUP by c.author.name") + List getCommitAuthorStatistic(); } diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index 6eadddf..a15b6df 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -26,9 +26,11 @@ google.setOnLoadCallback(drawChart); function drawChart() { - - var arr = [[${data}]]; - var data = google.visualization.arrayToDataTable(arr); + var arr = [[${commitAuthorData}]]; + var newArray = [ + ['Author','Commit'] + ].concat(arr); + var data = google.visualization.arrayToDataTable(newArray); var options = { title: 'Состав воздуха', is3D: true, From eb59d3684d0fefb09e1d303a369cbbe57efa5bee Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Mon, 5 Apr 2021 12:19:51 +0400 Subject: [PATCH 04/14] #18 - Find percent --- .../controller/StatisticController.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index 06cbd9f..f18c03e 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -3,10 +3,7 @@ package ru.ulstu.extractor.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import ru.ulstu.extractor.repository.BranchRepository; import ru.ulstu.extractor.repository.CommitRepository; -import ru.ulstu.extractor.repository.RepositoryRepository; import java.util.List; import java.util.stream.Collectors; @@ -34,7 +31,21 @@ public class StatisticController { .map(stat -> new String[]{stat.getAuthor(), stat.getCountCommit().toString()}) .collect(Collectors.toList()); String[][] commitAuthorData = listArr.toArray(String[][]::new); - model.addAttribute("commitAuthorData", commitAuthorData); + model.addAttribute("commitAuthorData", findPercent(commitAuthorData)); return "statistic"; } + + public String[][] findPercent(String[][] commitAuthorData) { + long sum = 0; + for (int i = 0; i < commitAuthorData.length; i++) { + sum = sum + Integer.parseInt(commitAuthorData[i][1]); + } + System.out.println(sum); + long percent = 0; + for (int i = 0; i < commitAuthorData.length; i++) { + percent = Integer.parseInt(commitAuthorData[i][1]) * 100 / sum; + commitAuthorData[i][1] = ""; + } + return commitAuthorData; + } } From fa3d285d83601338e41ab7527314329aa5478b2e Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Mon, 5 Apr 2021 12:31:36 +0400 Subject: [PATCH 05/14] #18 -- fix percents --- .../controller/StatisticController.java | 28 +++++----------- src/main/resources/templates/statistic.html | 32 +++++++------------ 2 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index f18c03e..9a7b675 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -1,3 +1,8 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + */ + package ru.ulstu.extractor.controller; import org.springframework.stereotype.Controller; @@ -24,28 +29,11 @@ public class StatisticController { "Europe", "North America", "Sourth America" }; - model.addAttribute("continents", continents); - model.addAttribute("array", new int[]{1, 2, 3}); - List listArr = commitRepository.getCommitAuthorStatistic().stream() - .map(stat -> new String[]{stat.getAuthor(), stat.getCountCommit().toString()}) + List authorCommits = commitRepository.getCommitAuthorStatistic().stream() + .map(stat -> new Object[]{stat.getAuthor(), stat.getCountCommit()}) .collect(Collectors.toList()); - String[][] commitAuthorData = listArr.toArray(String[][]::new); - model.addAttribute("commitAuthorData", findPercent(commitAuthorData)); + model.addAttribute("commitAuthorData", authorCommits); return "statistic"; } - - public String[][] findPercent(String[][] commitAuthorData) { - long sum = 0; - for (int i = 0; i < commitAuthorData.length; i++) { - sum = sum + Integer.parseInt(commitAuthorData[i][1]); - } - System.out.println(sum); - long percent = 0; - for (int i = 0; i < commitAuthorData.length; i++) { - percent = Integer.parseInt(commitAuthorData[i][1]) * 100 / sum; - commitAuthorData[i][1] = ""; - } - return commitAuthorData; - } } diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index a15b6df..7a42dc4 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -1,3 +1,8 @@ + +
    - - -
    -
    -
      -

      +
      +
      +
      +
      From 6c89e67ac7e2b41b6b7cbd61b55c2e2974fae1eb Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Mon, 5 Apr 2021 15:06:27 +0400 Subject: [PATCH 07/14] #18 - Create column table --- .../controller/StatisticController.java | 4 + .../extractor/model/CommitUrlStatistic.java | 20 +++ .../repository/CommitRepository.java | 5 + src/main/resources/templates/statistic.html | 114 ++++++++++++++++-- 4 files changed, 131 insertions(+), 12 deletions(-) create mode 100644 src/main/java/ru/ulstu/extractor/model/CommitUrlStatistic.java diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index 9a7b675..a6e60ce 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -34,6 +34,10 @@ public class StatisticController { .map(stat -> new Object[]{stat.getAuthor(), stat.getCountCommit()}) .collect(Collectors.toList()); model.addAttribute("commitAuthorData", authorCommits); + List urlCommits = commitRepository.getCommitUrlStatistic().stream() + .map(stat -> new Object[]{stat.getUrl(), stat.getCountCommit()}) + .collect(Collectors.toList()); + model.addAttribute("commitUrlData", urlCommits); return "statistic"; } } diff --git a/src/main/java/ru/ulstu/extractor/model/CommitUrlStatistic.java b/src/main/java/ru/ulstu/extractor/model/CommitUrlStatistic.java new file mode 100644 index 0000000..3eb4b37 --- /dev/null +++ b/src/main/java/ru/ulstu/extractor/model/CommitUrlStatistic.java @@ -0,0 +1,20 @@ +package ru.ulstu.extractor.model; + +public class CommitUrlStatistic { + private String url; + private Long countCommit; + + public CommitUrlStatistic(String url, Long countCommit) { + this.url = url; + this.countCommit = countCommit; + } + + public String getUrl() { + return url; + } + + public Long getCountCommit() { + return countCommit; + } + +} diff --git a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java index b8f5659..c3870a6 100644 --- a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java +++ b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java @@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import ru.ulstu.extractor.model.Commit; import ru.ulstu.extractor.model.CommitAuthorStatistic; +import ru.ulstu.extractor.model.CommitUrlStatistic; import ru.ulstu.extractor.model.Repository; import java.util.List; @@ -14,6 +15,10 @@ import java.util.List; public interface CommitRepository extends JpaRepository { @Query("SELECT c FROM Commit c, Repository r, Branch b WHERE c.branch = b AND r = b.repository AND r = :repository AND b.name = :branchName") Page findByRepositoryAndBranch(Pageable pageable, @Param("repository") Repository repository, @Param("branchName") String branchName); + @Query("SELECT new ru.ulstu.extractor.model.CommitAuthorStatistic(c.author.name, COUNT(c)) FROM Commit c GROUP by c.author.name") List getCommitAuthorStatistic(); + + @Query("SELECT new ru.ulstu.extractor.model.CommitUrlStatistic(c.branch.repository.url, COUNT(c)) FROM Commit c GROUP by c.branch.repository.url") + List getCommitUrlStatistic(); } diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index 7d69ac3..ce7997e 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -34,32 +34,122 @@ chart.draw(data, options); } - + + +
      +
      From 5e7887740de0ecf46fb2272f082f049c24dea0d6 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 6 Apr 2021 14:44:05 +0400 Subject: [PATCH 08/14] #18 - Create CommitTimeStatistic --- .../controller/StatisticController.java | 4 +++ .../extractor/model/CommitTimeStatistic.java | 22 ++++++++++++++++ .../repository/CommitRepository.java | 5 ++++ src/main/resources/templates/statistic.html | 25 +++---------------- 4 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 src/main/java/ru/ulstu/extractor/model/CommitTimeStatistic.java diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index a6e60ce..a364330 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -38,6 +38,10 @@ public class StatisticController { .map(stat -> new Object[]{stat.getUrl(), stat.getCountCommit()}) .collect(Collectors.toList()); model.addAttribute("commitUrlData", urlCommits); + List timeCommits = commitRepository.getCommitTimeStatistic().stream() + .map(stat -> new Object[]{stat.getCountCommit(), stat.getDate()}) + .collect(Collectors.toList()); + model.addAttribute("commitTimeData", timeCommits); return "statistic"; } } diff --git a/src/main/java/ru/ulstu/extractor/model/CommitTimeStatistic.java b/src/main/java/ru/ulstu/extractor/model/CommitTimeStatistic.java new file mode 100644 index 0000000..7828896 --- /dev/null +++ b/src/main/java/ru/ulstu/extractor/model/CommitTimeStatistic.java @@ -0,0 +1,22 @@ +package ru.ulstu.extractor.model; + +import java.util.Date; + +public class CommitTimeStatistic { + private Date date; + private Long countCommit; + + public CommitTimeStatistic(Date date, Long countCommit) { + this.date = date; + this.countCommit = countCommit; + } + + public Date getDate() { + return date; + } + + public Long getCountCommit() { + return countCommit; + } + +} diff --git a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java index c3870a6..5dbe4ab 100644 --- a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java +++ b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java @@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import ru.ulstu.extractor.model.Commit; import ru.ulstu.extractor.model.CommitAuthorStatistic; +import ru.ulstu.extractor.model.CommitTimeStatistic; import ru.ulstu.extractor.model.CommitUrlStatistic; import ru.ulstu.extractor.model.Repository; @@ -21,4 +22,8 @@ public interface CommitRepository extends JpaRepository { @Query("SELECT new ru.ulstu.extractor.model.CommitUrlStatistic(c.branch.repository.url, COUNT(c)) FROM Commit c GROUP by c.branch.repository.url") List getCommitUrlStatistic(); + + @Query("SELECT new ru.ulstu.extractor.model.CommitTimeStatistic(cast(c.date as date), COUNT(c)) FROM Commit c GROUP by cast(c.date as date)") + List getCommitTimeStatistic(); + } diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index ce7997e..afd1b73 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -61,7 +61,7 @@ - - - + - - + +
      -
      -
      +
      +
      From 818bf6a349bb0f110f8ea575e5bea7a2af7e1789 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Thu, 8 Apr 2021 11:02:36 +0400 Subject: [PATCH 12/14] #18 -- Add menu item --- src/main/resources/messages.properties | 8 +++++++- src/main/resources/messages_en.properties | 8 +++++++- src/main/resources/messages_ru.properties | 8 +++++++- src/main/resources/templates/default.html | 8 ++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 34bbcb8..e6edf95 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -1,4 +1,10 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# + messages.app-name=GitExtractor v0.1.0 messages.menu.home=Main messages.menu.indexed-repos=List of indexed repos -messages.menu.new-repo=Analyse new repo \ No newline at end of file +messages.menu.new-repo=Analyse new repo +messages.menu.statistic=Statistic \ No newline at end of file diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 34bbcb8..e6edf95 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -1,4 +1,10 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# + messages.app-name=GitExtractor v0.1.0 messages.menu.home=Main messages.menu.indexed-repos=List of indexed repos -messages.menu.new-repo=Analyse new repo \ No newline at end of file +messages.menu.new-repo=Analyse new repo +messages.menu.statistic=Statistic \ No newline at end of file diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties index dfda9c7..30c525b 100644 --- a/src/main/resources/messages_ru.properties +++ b/src/main/resources/messages_ru.properties @@ -1,4 +1,10 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# + messages.app-name=GitЁxtractor v0.1.0 messages.menu.home=На главную messages.menu.indexed-repos=Список проиндексированных репозиториев -messages.menu.new-repo=Анализ нового репозитория \ No newline at end of file +messages.menu.new-repo=Анализ нового репозитория +messages.menu.statistic=Статистика \ No newline at end of file diff --git a/src/main/resources/templates/default.html b/src/main/resources/templates/default.html index 04f7459..1db2a89 100644 --- a/src/main/resources/templates/default.html +++ b/src/main/resources/templates/default.html @@ -1,3 +1,8 @@ + + @@ -27,6 +32,9 @@ + From a76b5cd05f03b5bfd3198a5233c034fef41227fa Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Thu, 8 Apr 2021 11:11:21 +0400 Subject: [PATCH 13/14] #18 -- Fix selection unique commits --- .../ulstu/extractor/repository/CommitRepository.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java index 6531125..6569450 100644 --- a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java +++ b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java @@ -1,3 +1,8 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + */ + package ru.ulstu.extractor.repository; import org.springframework.data.domain.Page; @@ -17,13 +22,13 @@ public interface CommitRepository extends JpaRepository { @Query("SELECT c FROM Commit c, Repository r, Branch b WHERE c.branch = b AND r = b.repository AND r = :repository AND b.name = :branchName") Page findByRepositoryAndBranch(Pageable pageable, @Param("repository") Repository repository, @Param("branchName") String branchName); - @Query("SELECT new ru.ulstu.extractor.model.CommitAuthorStatistic(c.author.name, COUNT(c)) FROM Commit c GROUP by c.author.name") + @Query("SELECT new ru.ulstu.extractor.model.CommitAuthorStatistic(c.author.name, COUNT(DISTINCT c.hash)) FROM Commit c GROUP by c.author.name") List getCommitAuthorStatistic(); - @Query("SELECT new ru.ulstu.extractor.model.CommitUrlStatistic(c.branch.repository.url, COUNT(c)) FROM Commit c GROUP by c.branch.repository.url") + @Query("SELECT new ru.ulstu.extractor.model.CommitUrlStatistic(c.branch.repository.url, COUNT(DISTINCT c.hash)) FROM Commit c GROUP by c.branch.repository.url") List getCommitUrlStatistic(); - @Query("SELECT new ru.ulstu.extractor.model.CommitTimeStatistic(cast(c.date as date), COUNT(c)) FROM Commit c GROUP by cast(c.date as date) ORDER by cast(c.date as date)") + @Query("SELECT new ru.ulstu.extractor.model.CommitTimeStatistic(cast(c.date as date), COUNT(DISTINCT c.hash)) FROM Commit c GROUP by cast(c.date as date) ORDER by cast(c.date as date)") List getCommitTimeStatistic(); } From d73e26381435d9ef12651252a7920a1dc9017a68 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Thu, 8 Apr 2021 11:34:07 +0400 Subject: [PATCH 14/14] #18 -- Fix labels --- .../java/ru/ulstu/extractor/controller/Route.java | 5 +++++ .../extractor/controller/StatisticController.java | 13 +++++++------ src/main/resources/templates/statistic.html | 6 +++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/ru/ulstu/extractor/controller/Route.java b/src/main/java/ru/ulstu/extractor/controller/Route.java index 34853a5..8a0282e 100644 --- a/src/main/java/ru/ulstu/extractor/controller/Route.java +++ b/src/main/java/ru/ulstu/extractor/controller/Route.java @@ -13,6 +13,7 @@ public class Route { public static final String LIST_REPOSITORY_BRANCHES = "listBranches"; public static final String INDEXING_NEW_REPOSITORY = "indexNewRepository"; public static final String FILTER_COMMITS = "filterCommits"; + public static final String STATISTIC = "statistic"; public static String getLIST_INDEXED_REPOSITORIES() { return LIST_INDEXED_REPOSITORIES; @@ -29,4 +30,8 @@ public class Route { public static String getFILTER_COMMITS() { return FILTER_COMMITS; } + + public static String getSTATISTIC() { + return STATISTIC; + } } diff --git a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java index bb53b62..55f1f33 100644 --- a/src/main/java/ru/ulstu/extractor/controller/StatisticController.java +++ b/src/main/java/ru/ulstu/extractor/controller/StatisticController.java @@ -13,6 +13,8 @@ import ru.ulstu.extractor.repository.CommitRepository; import java.util.List; import java.util.stream.Collectors; +import static ru.ulstu.extractor.controller.Route.STATISTIC; + @Controller public class StatisticController { private final CommitRepository commitRepository; @@ -21,9 +23,8 @@ public class StatisticController { this.commitRepository = commitRepository; } - @GetMapping("/statistic") - public String indexBranch( - Model model) { + @GetMapping(STATISTIC) + public String indexBranch(Model model) { List authorCommits = commitRepository.getCommitAuthorStatistic().stream() .map(stat -> new Object[]{stat.getAuthor(), stat.getCountCommit()}) .collect(Collectors.toList()); @@ -40,13 +41,13 @@ public class StatisticController { for (int i = 0; i < timeCommits.size(); i++) { date[i] = timeCommits.get(i)[0].toString(); } - model.addAttribute("datas", date); + model.addAttribute("dates", date); String[] url = new String[urlCommits.size()]; for (int i = 0; i < urlCommits.size(); i++) { - url[i] = urlCommits.get(i)[0].toString(); + url[i] = urlCommits.get(i)[0].toString().substring(urlCommits.get(i)[0].toString().lastIndexOf("/") + 1); } model.addAttribute("urls", url); - return "statistic"; + return STATISTIC; } } diff --git a/src/main/resources/templates/statistic.html b/src/main/resources/templates/statistic.html index 7888244..fd2107b 100644 --- a/src/main/resources/templates/statistic.html +++ b/src/main/resources/templates/statistic.html @@ -23,7 +23,7 @@ text: 'Количество коммитов во времени' }; var xAxis = { - categories: [[${datas}]], + categories: [[${dates}]], title: { enabled: true, text: 'Дата' @@ -129,7 +129,7 @@ categories: [[${urls}]], crosshair: true, title: { - text: 'Url' + text: 'Репозиторий' } }; var yAxis = { @@ -141,7 +141,7 @@ var tooltip = { headerFormat: '{point.key}', pointFormat: '' + - '', + '', footerFormat: '
      {series.name}: {point.y:.1f} mm
      {point.y:.1f}
      ', shared: true, useHTML: true