-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathManagementService.java
More file actions
134 lines (119 loc) · 5.33 KB
/
Copy pathManagementService.java
File metadata and controls
134 lines (119 loc) · 5.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package ceos.backend.domain.management.service;
import ceos.backend.domain.management.domain.Management;
import ceos.backend.domain.management.domain.ManagementRole;
import ceos.backend.domain.management.dto.ManagementDto;
import ceos.backend.domain.management.dto.request.CreateManagementRequest;
import ceos.backend.domain.management.dto.request.UpdateManagementRequest;
import ceos.backend.domain.management.dto.response.GetAllManagementsResponse;
import ceos.backend.domain.management.dto.response.GetAllPartManagementsResponse;
import ceos.backend.domain.management.exception.ManagerNotFound;
import ceos.backend.domain.management.helper.ManagementHelper;
import ceos.backend.domain.management.mapper.ManagementMapper;
import ceos.backend.domain.management.repository.ManagementRepository;
import ceos.backend.global.common.dto.AwsS3Url;
import ceos.backend.global.common.dto.PageInfo;
import ceos.backend.infra.s3.AwsS3UrlHandler;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service
@RequiredArgsConstructor
public class ManagementService {
private final ManagementRepository managementRepository;
private final ManagementMapper managementMapper;
private final ManagementHelper managementHelper;
private final AwsS3UrlHandler awsS3UrlHandler;
@Transactional
public void createManagement(CreateManagementRequest createManagementRequest) {
Management newManagement =
managementMapper.toEntity(createManagementRequest.getManagementVo());
managementRepository.save(newManagement);
}
@Transactional(readOnly = true)
public GetAllManagementsResponse getAllManagements(int pageNum, int limit) {
// 페이징 요청 정보
PageRequest pageRequest = PageRequest.of(pageNum, limit, Sort.by("id").ascending());
Page<Management> pageManagements = managementRepository.findAll(pageRequest);
// 페이징 정보
PageInfo pageInfo =
PageInfo.of(
pageNum,
limit,
pageManagements.getTotalPages(),
pageManagements.getTotalElements());
// dto
GetAllManagementsResponse response =
managementMapper.toManagementsPage(pageManagements.getContent(), pageInfo);
return response;
}
@Transactional(readOnly = true)
public GetAllPartManagementsResponse getAllPartManagements() {
List<Management> findPresidency =
managementRepository.findManagementAllByRoleOrderByNameAsc(
ManagementRole.PRESIDENCY);
List<Management> findAdvisors =
managementRepository.findManagementAllByRoleOrderByNameAsc(ManagementRole.ADVISOR);
List<Management> findGeneralAffairs =
managementRepository.findManagementAllByRoleOrderByNameAsc(
ManagementRole.GENERAL_AFFAIRS);
List<Management> findPartLeaders =
managementRepository.findManagementAllByRoleOrderByNameAsc(
ManagementRole.PART_LEADER);
List<Management> findManagements =
managementRepository.findManagementAllByRoleOrderByNameAsc(
ManagementRole.MANAGEMENT);
GetAllPartManagementsResponse response =
managementMapper.toPartManagementList(
findPresidency,
findAdvisors,
findGeneralAffairs,
findPartLeaders,
findManagements);
return response;
}
@Transactional
public ManagementDto getManagement(Long id) {
Management findManagement =
managementRepository
.findById(id)
.orElseThrow(
() -> {
throw ManagerNotFound.EXCEPTION;
});
return ManagementDto.entityToDto(findManagement);
}
@Transactional
public ManagementDto updateManagementInfo(
Long id, UpdateManagementRequest updateManagementRequest) {
Management findManagement =
managementRepository
.findById(id)
.orElseThrow(
() -> {
throw ManagerNotFound.EXCEPTION;
});
findManagement.update(updateManagementRequest);
return ManagementDto.entityToDto(findManagement);
}
@Transactional
public void deleteManagement(Long id) {
Management findManagement =
managementRepository
.findById(id)
.orElseThrow(
() -> {
throw ManagerNotFound.EXCEPTION;
});
managementRepository.delete(findManagement);
}
@Transactional(readOnly = true)
public AwsS3Url getImageUrl() {
return awsS3UrlHandler.handle("managements");
}
}