Skip to content

Commit d8d8b49

Browse files
committed
feat: improve school admin editing and refactor file handling
1 parent 996debc commit d8d8b49

17 files changed

Lines changed: 735 additions & 676 deletions

File tree

src/main/java/com/cooperation/project/cooperationcenter/domain/file/service/FileService.java

Lines changed: 274 additions & 310 deletions
Large diffs are not rendered by default.

src/main/java/com/cooperation/project/cooperationcenter/domain/school/controller/adminpage/SchoolAdminRestController.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,23 @@ public class SchoolAdminRestController {
3939
학교 기본 정보를 등록합니다.
4040
"""
4141
)
42-
@PostMapping("/save")
43-
public BaseResponse<?> saveSchool(@RequestBody SchoolRequest.SchoolDto request){
44-
schoolService.saveSchool(request);
45-
return BaseResponse.onSuccess("success");
46-
}
42+
@PostMapping("/save")
43+
public BaseResponse<?> saveSchool(@RequestBody SchoolRequest.SchoolDto request){
44+
schoolService.saveSchool(request);
45+
return BaseResponse.onSuccess("success");
46+
}
47+
48+
@Operation(
49+
summary = "?숆탳 ?뺣낫 ?섏젙",
50+
description = """
51+
?숆탳 湲곕낯 ?뺣낫(援??숊삎, ?곸뼱紐?, 濡쒓퀬 URL)瑜??섏젙?⑸땲??
52+
"""
53+
)
54+
@PatchMapping
55+
public BaseResponse<?> editSchool(@RequestBody SchoolRequest.SchoolEditDto request){
56+
schoolService.editSchool(request);
57+
return BaseResponse.onSuccess("success");
58+
}
4759

4860
@Operation(
4961
summary = "학교 소개 정보 저장",

src/main/java/com/cooperation/project/cooperationcenter/domain/school/dto/SchoolRequest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,18 @@
66
import java.util.List;
77

88
public class SchoolRequest {
9-
public record SchoolDto(
10-
String schoolKoreanName,
11-
String schoolEnglishName,
12-
String imgUrl
13-
){}
9+
public record SchoolDto(
10+
String schoolKoreanName,
11+
String schoolEnglishName,
12+
String imgUrl
13+
){}
14+
15+
public record SchoolEditDto(
16+
Long schoolId,
17+
String schoolKoreanName,
18+
String schoolEnglishName,
19+
String imgUrl
20+
){}
1421

1522
public record SchoolBoardDto(
1623
Long schoolId,

src/main/java/com/cooperation/project/cooperationcenter/domain/school/model/School.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,19 @@ public void deleteAllBoard() {
4444
boards.clear();
4545
}
4646

47-
public static School fromDto(SchoolRequest.SchoolDto dto){
48-
return School.builder()
49-
.schoolEnglishName(dto.schoolEnglishName())
50-
.schoolKoreanName(dto.schoolKoreanName())
51-
.logoUrl(dto.imgUrl())
52-
.build();
53-
}
47+
public static School fromDto(SchoolRequest.SchoolDto dto){
48+
return School.builder()
49+
.schoolEnglishName(dto.schoolEnglishName())
50+
.schoolKoreanName(dto.schoolKoreanName())
51+
.logoUrl(dto.imgUrl())
52+
.build();
53+
}
54+
55+
public void updateInfo(SchoolRequest.SchoolEditDto dto) {
56+
this.schoolKoreanName = dto.schoolKoreanName();
57+
this.schoolEnglishName = dto.schoolEnglishName();
58+
this.logoUrl = dto.imgUrl();
59+
}
5460

5561
public boolean hasIntroBoard(){
5662
for(SchoolBoard board: boards){

src/main/java/com/cooperation/project/cooperationcenter/domain/school/repository/SchoolRepository.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55

66
import java.util.Optional;
77

8-
public interface SchoolRepository extends JpaRepository<School,Long> {
9-
Optional<School> findSchoolById(Long id);
10-
Optional<School> findSchoolBySchoolEnglishName(String englishName);
11-
boolean existsBySchoolEnglishName(String englishName);
12-
}
8+
public interface SchoolRepository extends JpaRepository<School,Long> {
9+
Optional<School> findSchoolById(Long id);
10+
Optional<School> findSchoolBySchoolEnglishName(String englishName);
11+
boolean existsBySchoolEnglishName(String englishName);
12+
boolean existsBySchoolEnglishNameAndIdNot(String englishName, Long id);
13+
}

src/main/java/com/cooperation/project/cooperationcenter/domain/school/service/SchoolService.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,26 @@ public class SchoolService {
4242
private final CollegeRepository collegeRepository;
4343

4444
@Transactional
45-
public void saveSchool(SchoolRequest.SchoolDto request){
45+
public void saveSchool(SchoolRequest.SchoolDto request){
4646

4747
if (schoolRepository.existsBySchoolEnglishName(request.schoolEnglishName())) {
4848
throw new SchoolHandler(SchoolErrorStatus.SCHOOL_ALREADY_EXISTS);
4949
}
5050

51-
School school = School.fromDto(request);
52-
schoolRepository.save(school);
53-
}
51+
School school = School.fromDto(request);
52+
schoolRepository.save(school);
53+
}
54+
55+
@Transactional
56+
public void editSchool(SchoolRequest.SchoolEditDto request) {
57+
School school = schoolFindService.loadSchoolById(request.schoolId());
58+
59+
if (schoolRepository.existsBySchoolEnglishNameAndIdNot(request.schoolEnglishName(), request.schoolId())) {
60+
throw new SchoolHandler(SchoolErrorStatus.SCHOOL_ALREADY_EXISTS);
61+
}
62+
63+
school.updateInfo(request);
64+
}
5465

5566
@Transactional
5667
public void saveBoard(SchoolRequest.SchoolBoardDto request){

0 commit comments

Comments
 (0)