Сданая 5 лаба
This commit is contained in:
parent
8f8d048296
commit
233d338cb0
BIN
data.mv.db
BIN
data.mv.db
Binary file not shown.
1188
data.trace.db
1188
data.trace.db
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@ package com.example.demo.entrysData.api;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.modelmapper.TypeToken;
|
||||
@ -21,6 +22,7 @@ import com.example.demo.core.configuration.Constants;
|
||||
import com.example.demo.department.api.DepartmentDto;
|
||||
import com.example.demo.department.service.DepartmentService;
|
||||
import com.example.demo.entrysData.model.EntrysDataEntity;
|
||||
import com.example.demo.entrysData.model.EntrysDataGrouped;
|
||||
import com.example.demo.entrysData.model.EntrysDataGroupedDepartment;
|
||||
import com.example.demo.entrysData.service.EntrysDataService;
|
||||
|
||||
@ -33,7 +35,7 @@ public class EntrysDataController {
|
||||
private static final String USERS_VIEW = "users";
|
||||
private static final String USERS_EDIT_VIEW = "user-edit";
|
||||
private static final String DEPARTMENTS_ATTRIBUTE = "departments";
|
||||
private static final String DEPARTMENT_ITEM_ATTRIBUTE = "departmentItem";
|
||||
private static final String STATISTIC_VIEW = "statistic";
|
||||
private static final String USERS_ATTRIBUTE = "users";
|
||||
private static final String PAGE_ATTRIBUTE = "page";
|
||||
private final EntrysDataService entrysDataService;
|
||||
@ -55,6 +57,10 @@ public class EntrysDataController {
|
||||
return modelMapper.map(entity, EntrysDataGroupedDepartmentDto.class);
|
||||
}
|
||||
|
||||
private EntrysDataGroupedDto toDto(EntrysDataGrouped entity){
|
||||
return modelMapper.map(entity, EntrysDataGroupedDto.class);
|
||||
}
|
||||
|
||||
private EntrysDataEntity toEntity(EntrysDataDto dto) {
|
||||
final EntrysDataEntity entity = modelMapper.map(dto, EntrysDataEntity.class);
|
||||
entity.setDepartment(departmentService.get(dto.getDepartmentId()));
|
||||
@ -81,6 +87,14 @@ public class EntrysDataController {
|
||||
return USERS_VIEW;
|
||||
}
|
||||
|
||||
@GetMapping("/statistic/")
|
||||
public String statistic(Model model){
|
||||
List<EntrysDataGrouped> list = entrysDataService.getCount();
|
||||
List<EntrysDataGroupedDto> list2 = list.stream().map(this::toDto).collect(Collectors.toList());
|
||||
model.addAttribute("statisctics", list2);
|
||||
return STATISTIC_VIEW;
|
||||
}
|
||||
|
||||
@GetMapping("/edit/")
|
||||
public String create(Model model,
|
||||
@RequestParam(name = PAGE_ATTRIBUTE, defaultValue = "0") int page) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.example.demo.entrysData.api;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
public class EntrysDataDto {
|
||||
@ -8,6 +9,8 @@ public class EntrysDataDto {
|
||||
@NotBlank
|
||||
@Size(min = 3, max = 20)
|
||||
private String login;
|
||||
@NotNull
|
||||
private Long departmentId;
|
||||
private String role;
|
||||
|
||||
public Long getId() {
|
||||
@ -18,6 +21,14 @@ public class EntrysDataDto {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getDepartmentId(){
|
||||
return departmentId;
|
||||
}
|
||||
|
||||
public void setDepartmentId(Long departmentId){
|
||||
this.departmentId = departmentId;
|
||||
}
|
||||
|
||||
public String getLogin() {
|
||||
return login;
|
||||
}
|
||||
|
@ -100,7 +100,8 @@ public class EntrysDataService implements UserDetailsService{
|
||||
|
||||
@Transactional
|
||||
public List<EntrysDataGrouped> getCount() {
|
||||
return repository.getCountEntrysInDepartment();
|
||||
List<EntrysDataGrouped> list = repository.getCountEntrysInDepartment();
|
||||
return list;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
26
src/main/resources/templates/statistic.html
Normal file
26
src/main/resources/templates/statistic.html
Normal file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{default}">
|
||||
<head>
|
||||
<title>Статистика пользователей</title>
|
||||
</head>
|
||||
<body>
|
||||
<main layout:fragment="content">
|
||||
<table class="table">
|
||||
<caption></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="w-50">Кафедра</th>
|
||||
<th scope="col" class="w-25">Количество пользователей</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="statisctic : ${statisctics}">
|
||||
<th scope="row" th:text="${statisctic.departmentName}"></th>
|
||||
<th scope="row" th:text="${statisctic.count}"></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -15,6 +15,11 @@
|
||||
<div>
|
||||
<a href="/users/edit/" class="btn btn-danger">Добавить пользователя</a>
|
||||
</div>
|
||||
<div class="d-flex justify-content-right">
|
||||
<a href="/admin/users/statistic/" class="btn btn-link">
|
||||
<i class="fa fa-file-earmark-bar-graph">Статистика</i>
|
||||
</a>
|
||||
</div>
|
||||
<th:block th:switch="${items.size()}">
|
||||
<h2 th:case="0">Данные отсутствуют</h2>
|
||||
<th:block th:case="*">
|
||||
|
Loading…
Reference in New Issue
Block a user