Skip to content

Commit 598847a

Browse files
authored
Merge pull request #97 from Maum-eum/feat/#96
fix: 어르신 정보 enum 타입 String변환 로직 추가
2 parents 6644505 + 36cee83 commit 598847a

File tree

3 files changed

+53
-17
lines changed

3 files changed

+53
-17
lines changed

src/main/java/com/example/springserver/domain/center/controller/ElderController.java

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1+
12
package com.example.springserver.domain.center.controller;
23

34
import com.example.springserver.domain.center.converter.ElderConverter;
5+
import com.example.springserver.domain.center.dto.request.ElderRequestDto.CreateRequestDto;
46
import com.example.springserver.domain.center.dto.request.ElderRequestDto.RequestDto;
7+
import com.example.springserver.domain.center.dto.response.ElderResponseDto.CreateDto;
58
import com.example.springserver.domain.center.dto.response.ElderResponseDto.DeleteResponseDto;
9+
import com.example.springserver.domain.center.dto.response.ElderResponseDto.ResponseDto;
610
import com.example.springserver.domain.center.entity.Elder;
11+
import com.example.springserver.domain.center.entity.enums.Inmate;
712
import com.example.springserver.domain.center.service.ElderService;
8-
import com.example.springserver.domain.center.dto.request.ElderRequestDto.CreateRequestDto;
9-
import com.example.springserver.domain.center.dto.response.ElderResponseDto.CreateDto;
10-
import com.example.springserver.domain.center.dto.response.ElderResponseDto.ResponseDto;
1113
import io.swagger.v3.oas.annotations.Operation;
1214
import lombok.RequiredArgsConstructor;
1315
import org.springframework.web.bind.annotation.*;
1416
import org.springframework.web.multipart.MultipartFile;
1517

1618
import java.util.List;
19+
import java.util.stream.Collectors;
1720

1821
@RestController
1922
@RequiredArgsConstructor
@@ -27,8 +30,12 @@ public class ElderController {
2730
@PostMapping(consumes = "multipart/form-data")
2831
public CreateDto createElder(@PathVariable Long center_id,
2932
@RequestPart("data") CreateRequestDto createRequestDto,
33+
@RequestParam(value = "inmateTypes", required = false) List<String> inmateTypes,
3034
@RequestPart(value = "profileImg", required = false) MultipartFile profileImg) {
3135

36+
List<Inmate> inmateEnumList = StringTypeToEnumType(inmateTypes);
37+
// CreateRequestDto에 inmateTypes 설정
38+
createRequestDto.setInmateTypes(inmateEnumList);
3239
Elder createdElder = elderService.createElder(center_id, createRequestDto, false, profileImg);
3340
return ElderConverter.toCreateDto(createdElder);
3441
}
@@ -54,8 +61,10 @@ public ResponseDto getElderDetail(@PathVariable Long center_id, @PathVariable Lo
5461
@PostMapping(value = "/temp", consumes = "multipart/form-data")
5562
public CreateDto tempCreateElder(@PathVariable Long center_id,
5663
@RequestPart("data") CreateRequestDto createRequestDto,
64+
@RequestParam(value = "inmateTypes", required = false) List<String> inmateTypes,
5765
@RequestPart(value = "profileImg", required = false) MultipartFile profileImg) {
58-
66+
List<Inmate> inmateEnumList = StringTypeToEnumType(inmateTypes);
67+
createRequestDto.setInmateTypes(inmateEnumList);
5968
Elder createdElder = elderService.createElder(center_id, createRequestDto, true, profileImg);
6069
return ElderConverter.toCreateDto(createdElder);
6170
}
@@ -78,9 +87,14 @@ public ResponseDto getTempElders(@PathVariable Long center_id, @PathVariable Lon
7887

7988
// 센터 내 어르신 수정
8089
@Operation(summary = "센터 내 어르신 수정")
81-
@PutMapping("/{elder_id}")
82-
public RequestDto updateElder(@PathVariable Long center_id, @PathVariable Long elder_id, @RequestBody RequestDto updateRequestDto) {
83-
elderService.updateElder(center_id, elder_id, updateRequestDto);
90+
@PutMapping(value = "/{elder_id}", consumes = "multipart/form-data")
91+
public RequestDto updateElder(@PathVariable Long center_id, @PathVariable Long elder_id,
92+
@RequestPart("data") RequestDto updateRequestDto,
93+
@RequestParam(value = "inmateTypes", required = false) List<String> inmateTypes,
94+
@RequestPart(value = "profileImg", required = false) MultipartFile profileImg) {
95+
List<Inmate> inmateEnumList = StringTypeToEnumType(inmateTypes);
96+
updateRequestDto.setInmateTypes(inmateEnumList);
97+
elderService.updateElder(center_id, elder_id, updateRequestDto, profileImg);
8498
return updateRequestDto;
8599
}
86100

@@ -91,4 +105,13 @@ public DeleteResponseDto deleteElder(@PathVariable Long center_id, @PathVariable
91105
Elder deletedElder = elderService.deleteElder(center_id, elder_id);
92106
return ElderConverter.toDeleteResponseDto(deletedElder);
93107
}
94-
}
108+
109+
public List<Inmate> StringTypeToEnumType(List<String> inmateTypes) {
110+
111+
// inmateTypes 값을 List<Inmate>로 변환
112+
return inmateTypes.stream()
113+
.map(String::trim) // 공백 제거
114+
.map(Inmate::valueOf) // Inmate Enum으로 변환
115+
.collect(Collectors.toList());
116+
}
117+
}

src/main/java/com/example/springserver/domain/center/dto/request/ElderRequestDto.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1+
12
package com.example.springserver.domain.center.dto.request;
23

34
import com.example.springserver.domain.center.entity.enums.ElderRate;
45
import com.example.springserver.domain.center.entity.enums.Inmate;
56
import lombok.Getter;
7+
import lombok.Setter;
68

79
import java.time.LocalDate;
810
import java.util.List;
911

1012
public class ElderRequestDto {
1113

1214
@Getter
15+
@Setter
1316
public static class RequestDto { // 공통 필드
1417

1518
private String name;
@@ -30,6 +33,7 @@ public static class RequestDto { // 공통 필드
3033
}
3134

3235
@Getter
36+
@Setter
3337
public static class CreateRequestDto {
3438

3539
private String name;

src/main/java/com/example/springserver/domain/center/service/ElderService.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.example.springserver.domain.center.service;
22

3+
import com.example.springserver.domain.center.converter.ElderConverter;
4+
import com.example.springserver.domain.center.dto.request.ElderRequestDto.CreateRequestDto;
35
import com.example.springserver.domain.center.dto.request.ElderRequestDto.RequestDto;
46
import com.example.springserver.domain.center.entity.Center;
5-
import com.example.springserver.global.apiPayload.format.CenterException;
6-
import com.example.springserver.global.apiPayload.format.ElderException;
7-
import com.example.springserver.domain.center.converter.ElderConverter;
87
import com.example.springserver.domain.center.entity.Elder;
9-
import com.example.springserver.domain.center.dto.request.ElderRequestDto.CreateRequestDto;
10-
import com.example.springserver.global.apiPayload.format.ErrorCode;
118
import com.example.springserver.domain.center.repository.CenterRepository;
129
import com.example.springserver.domain.center.repository.ElderRepository;
10+
import com.example.springserver.global.apiPayload.format.CenterException;
11+
import com.example.springserver.global.apiPayload.format.ElderException;
12+
import com.example.springserver.global.apiPayload.format.ErrorCode;
1313
import com.example.springserver.service.S3Service;
1414
import lombok.RequiredArgsConstructor;
1515
import lombok.extern.slf4j.Slf4j;
@@ -65,10 +65,18 @@ public Elder getElderDetail(Long centerId, Long elderId, boolean isTemporary) {
6565
}
6666

6767
@Transactional
68-
public void updateElder(Long centerId, Long elderId, RequestDto updateRequestDto) {
68+
public void updateElder(Long centerId, Long elderId, RequestDto updateRequestDto, MultipartFile profileImg) {
6969
Elder validElder = getValidElder(elderId, centerId);
7070

71-
updateSelectedElderInfo(validElder, updateRequestDto);
71+
// 이미지 적용
72+
String imgUrl;
73+
if(profileImg == null) {
74+
imgUrl = "http://localhost:8080/basicImg.jpeg";
75+
} else {
76+
imgUrl = s3Service.uploadFileImage(profileImg);
77+
}
78+
79+
updateSelectedElderInfo(validElder, updateRequestDto, imgUrl);
7280
}
7381

7482
@Transactional
@@ -85,7 +93,7 @@ public Elder deleteElder(Long centerId, Long elderId) {
8593
return validElder;
8694
}
8795

88-
private void updateSelectedElderInfo(Elder elder, RequestDto updateRequestDto) {
96+
private void updateSelectedElderInfo(Elder elder, RequestDto updateRequestDto, String imgUrl) {
8997

9098
// 변경 요청이 들어온 필드만 수정
9199
updateChangedElderInfo(elder::setName, updateRequestDto.getName());
@@ -94,6 +102,7 @@ private void updateSelectedElderInfo(Elder elder, RequestDto updateRequestDto) {
94102
updateChangedElderInfo(elder::setRate, updateRequestDto.getRate());
95103
updateChangedElderInfo(elder::setImgUrl, updateRequestDto.getImgUrl());
96104
updateChangedElderInfo(elder::setWeight, updateRequestDto.getWeight());
105+
updateChangedElderInfo(elder::setImgUrl, imgUrl);
97106

98107
if (updateRequestDto.getCenterName() != null) {
99108
updateElderCenter(elder, updateRequestDto);
@@ -146,4 +155,4 @@ private void validateElderFields(boolean isTemporary, CreateRequestDto createReq
146155
}
147156
}
148157
}
149-
}
158+
}

0 commit comments

Comments
 (0)