Skip to content

Commit a21f2e5

Browse files
5uhwannKoSeonJe
andauthored
[release] v1.3.3 (#290)
Co-authored-by: koseonje <[email protected]>
1 parent f9d7231 commit a21f2e5

37 files changed

+436
-243
lines changed

src/main/java/ddingdong/ddingdongBE/domain/activityreport/api/AdminActivityReportApi.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package ddingdong.ddingdongBE.domain.activityreport.api;
22

33
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.CreateActivityTermInfoRequest;
4-
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportListResponse;
4+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.AdminActivityReportListResponse;
55
import io.swagger.v3.oas.annotations.Operation;
66
import io.swagger.v3.oas.annotations.media.Content;
77
import io.swagger.v3.oas.annotations.media.Schema;
@@ -11,6 +11,7 @@
1111
import java.util.List;
1212
import org.springframework.http.HttpStatus;
1313
import org.springframework.web.bind.annotation.GetMapping;
14+
import org.springframework.web.bind.annotation.PathVariable;
1415
import org.springframework.web.bind.annotation.PostMapping;
1516
import org.springframework.web.bind.annotation.RequestBody;
1617
import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,11 +23,11 @@ public interface AdminActivityReportApi {
2223

2324
@Operation(summary = "활동 보고서 전체 조회")
2425
@ApiResponse(responseCode = "200", description = "활동 보고서 전체 조회 성공",
25-
content = @Content(schema = @Schema(implementation = ActivityReportListResponse.class)))
26+
content = @Content(schema = @Schema(implementation = AdminActivityReportListResponse.class)))
2627
@ResponseStatus(HttpStatus.OK)
2728
@SecurityRequirement(name = "AccessToken")
28-
@GetMapping
29-
List<ActivityReportListResponse> getActivityReports();
29+
@GetMapping("/{term}")
30+
List<AdminActivityReportListResponse> getActivityReports(@PathVariable("term") int term);
3031

3132
@Operation(summary = "활동 보고서 회차별 기간 설정 API")
3233
@ApiResponse(responseCode = "201", description = "활동 보고서 회차 생성 성공")

src/main/java/ddingdong/ddingdongBE/domain/activityreport/api/ClubActivityReportApi.java

+17-16
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import ddingdong.ddingdongBE.auth.PrincipalDetails;
44
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.CreateActivityReportRequests;
55
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.UpdateActivityReportRequests;
6-
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportListResponse;
6+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.AdminActivityReportListResponse;
77
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportResponse;
88
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportTermInfoResponse;
9+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.CentralActivityReportListResponse;
910
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.CurrentTermResponse;
1011
import io.swagger.v3.oas.annotations.Operation;
1112
import io.swagger.v3.oas.annotations.media.Content;
@@ -31,31 +32,31 @@ public interface ClubActivityReportApi {
3132

3233
@Operation(summary = "현재 활동보고서 회차 조회")
3334
@ApiResponse(responseCode = "200", description = "현재 활동보고서 회차 조회 성공",
34-
content = @Content(schema = @Schema(implementation = CurrentTermResponse.class)))
35+
content = @Content(schema = @Schema(implementation = CurrentTermResponse.class)))
3536
@ResponseStatus(HttpStatus.OK)
3637
@SecurityRequirement(name = "AccessToken")
3738
@GetMapping("/activity-reports/current-term")
3839
CurrentTermResponse getCurrentTerm();
3940

4041
@Operation(summary = "본인 동아리 활동보고서 전체 조회")
4142
@ApiResponse(responseCode = "200", description = "본인 동아리 활동보고서 전체 조회 성공",
42-
content = @Content(schema = @Schema(implementation = ActivityReportListResponse.class)))
43+
content = @Content(schema = @Schema(implementation = AdminActivityReportListResponse.class)))
4344
@ResponseStatus(HttpStatus.OK)
4445
@SecurityRequirement(name = "AccessToken")
4546
@GetMapping("/my/activity-reports")
46-
List<ActivityReportListResponse> getMyActivityReports(
47-
@AuthenticationPrincipal PrincipalDetails principalDetails
47+
List<CentralActivityReportListResponse> getMyActivityReports(
48+
@AuthenticationPrincipal PrincipalDetails principalDetails
4849
);
4950

5051
@Operation(summary = "활동보고서 상세 조회")
5152
@ApiResponse(responseCode = "200", description = "활동보고서 상세 조회 성공",
52-
content = @Content(schema = @Schema(implementation = ActivityReportResponse.class)))
53+
content = @Content(schema = @Schema(implementation = ActivityReportResponse.class)))
5354
@ResponseStatus(HttpStatus.OK)
5455
@SecurityRequirement(name = "AccessToken")
5556
@GetMapping("/activity-reports")
5657
List<ActivityReportResponse> getActivityReport(
57-
@RequestParam("term") String term,
58-
@RequestParam("club_name") String clubName
58+
@AuthenticationPrincipal PrincipalDetails principalDetails,
59+
@RequestParam("term") int term
5960
);
6061

6162
@Operation(summary = "활동보고서 등록")
@@ -64,8 +65,8 @@ List<ActivityReportResponse> getActivityReport(
6465
@SecurityRequirement(name = "AccessToken")
6566
@PostMapping(value = "/my/activity-reports")
6667
void createActivityReport(
67-
@AuthenticationPrincipal PrincipalDetails principalDetails,
68-
@RequestBody CreateActivityReportRequests requests
68+
@AuthenticationPrincipal PrincipalDetails principalDetails,
69+
@RequestBody CreateActivityReportRequests requests
6970
);
7071

7172
@Operation(summary = "활동보고서 수정")
@@ -74,9 +75,9 @@ void createActivityReport(
7475
@SecurityRequirement(name = "AccessToken")
7576
@PatchMapping(value = "/my/activity-reports")
7677
void updateActivityReport(
77-
@AuthenticationPrincipal PrincipalDetails principalDetails,
78-
@RequestParam(value = "term") String term,
79-
@RequestBody UpdateActivityReportRequests requests
78+
@AuthenticationPrincipal PrincipalDetails principalDetails,
79+
@RequestParam(value = "term") int term,
80+
@RequestBody UpdateActivityReportRequests requests
8081
);
8182

8283
@Operation(summary = "활동보고서 삭제")
@@ -85,13 +86,13 @@ void updateActivityReport(
8586
@SecurityRequirement(name = "AccessToken")
8687
@DeleteMapping("/my/activity-reports")
8788
void deleteActivityReport(
88-
@AuthenticationPrincipal PrincipalDetails principalDetails,
89-
@RequestParam(value = "term") String term
89+
@AuthenticationPrincipal PrincipalDetails principalDetails,
90+
@RequestParam(value = "term") int term
9091
);
9192

9293
@Operation(summary = "활동 보고서 회차별 기간 조회 API")
9394
@ApiResponse(responseCode = "200", description = "활동 보고서 회차별 기간 조회 성공",
94-
content = @Content(schema = @Schema(implementation = ActivityReportTermInfoResponse.class)))
95+
content = @Content(schema = @Schema(implementation = ActivityReportTermInfoResponse.class)))
9596
@ResponseStatus(HttpStatus.OK)
9697
@SecurityRequirement(name = "AccessToken")
9798
@GetMapping("/activity-reports/term")

src/main/java/ddingdong/ddingdongBE/domain/activityreport/controller/AdminActivityReportApiController.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import ddingdong.ddingdongBE.domain.activityreport.api.AdminActivityReportApi;
44
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.CreateActivityTermInfoRequest;
5-
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportListResponse;
5+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.AdminActivityReportListResponse;
66
import ddingdong.ddingdongBE.domain.activityreport.service.FacadeAdminActivityReportService;
7-
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.ActivityReportListQuery;
7+
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.AdminActivityReportListQuery;
8+
import java.time.LocalDateTime;
89
import java.util.List;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.web.bind.annotation.RestController;
@@ -16,11 +17,12 @@ public class AdminActivityReportApiController implements AdminActivityReportApi
1617
private final FacadeAdminActivityReportService facadeAdminActivityReportService;
1718

1819
@Override
19-
public List<ActivityReportListResponse> getActivityReports() {
20-
List<ActivityReportListQuery> queries = facadeAdminActivityReportService.getActivityReports();
20+
public List<AdminActivityReportListResponse> getActivityReports(int term) {
21+
LocalDateTime now = LocalDateTime.now();
22+
List<AdminActivityReportListQuery> queries = facadeAdminActivityReportService.getActivityReports(now, term);
2123
return queries.stream()
22-
.map(ActivityReportListResponse::from)
23-
.toList();
24+
.map(AdminActivityReportListResponse::from)
25+
.toList();
2426
}
2527

2628
@Override

src/main/java/ddingdong/ddingdongBE/domain/activityreport/controller/ClubActivityReportApiController.java

+30-32
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@
66
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.CreateActivityReportRequests;
77
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.UpdateActivityReportRequest;
88
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.request.UpdateActivityReportRequests;
9-
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportListResponse;
9+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.AdminActivityReportListResponse;
1010
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportResponse;
1111
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.ActivityReportTermInfoResponse;
12+
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.CentralActivityReportListResponse;
1213
import ddingdong.ddingdongBE.domain.activityreport.controller.dto.response.CurrentTermResponse;
1314
import ddingdong.ddingdongBE.domain.activityreport.service.FacadeClubActivityReportService;
1415
import ddingdong.ddingdongBE.domain.activityreport.service.dto.command.CreateActivityReportCommand;
1516
import ddingdong.ddingdongBE.domain.activityreport.service.dto.command.UpdateActivityReportCommand;
16-
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.ActivityReportListQuery;
1717
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.ActivityReportQuery;
1818
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.ActivityReportTermInfoQuery;
19+
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.CentralActivityReportListQuery;
1920
import ddingdong.ddingdongBE.domain.user.entity.User;
2021
import java.time.LocalDateTime;
2122
import java.util.List;
@@ -36,66 +37,63 @@ public CurrentTermResponse getCurrentTerm() {
3637
}
3738

3839
@Override
39-
public List<ActivityReportListResponse> getMyActivityReports(PrincipalDetails principalDetails) {
40+
public List<CentralActivityReportListResponse> getMyActivityReports(PrincipalDetails principalDetails) {
4041
User user = principalDetails.getUser();
41-
List<ActivityReportListQuery> queries = facadeClubActivityReportService.getMyActivityReports(
42-
user);
42+
LocalDateTime now = LocalDateTime.now();
43+
List<CentralActivityReportListQuery> queries = facadeClubActivityReportService.getMyActivityReports(user, now);
4344
return queries.stream()
44-
.map(ActivityReportListResponse::from)
45-
.toList();
45+
.map(CentralActivityReportListResponse::from)
46+
.toList();
4647
}
4748

4849
@Override
49-
public List<ActivityReportResponse> getActivityReport(
50-
String term,
51-
String clubName
52-
) {
53-
List<ActivityReportQuery> queries = facadeClubActivityReportService.getActivityReport(term,
54-
clubName);
50+
public List<ActivityReportResponse> getActivityReport(PrincipalDetails principalDetails, int term) {
51+
User user = principalDetails.getUser();
52+
LocalDateTime now = LocalDateTime.now();
53+
List<ActivityReportQuery> queries = facadeClubActivityReportService.getActivityReport(user, now, term);
5554
return queries.stream()
56-
.map(ActivityReportResponse::from)
57-
.toList();
55+
.map(ActivityReportResponse::from)
56+
.toList();
5857
}
5958

6059
@Override
6160
public void createActivityReport(
62-
PrincipalDetails principalDetails,
63-
CreateActivityReportRequests requests
61+
PrincipalDetails principalDetails,
62+
CreateActivityReportRequests requests
6463
) {
6564
User user = principalDetails.getUser();
6665
List<CreateActivityReportCommand> commands = requests.activityReportRequests().stream()
67-
.map(CreateActivityReportRequest::toCommand)
68-
.toList();
66+
.map(CreateActivityReportRequest::toCommand)
67+
.toList();
6968
facadeClubActivityReportService.create(user, commands);
7069
}
7170

7271
@Override
7372
public void updateActivityReport(
74-
PrincipalDetails principalDetails,
75-
String term,
76-
UpdateActivityReportRequests requests
73+
PrincipalDetails principalDetails,
74+
int term,
75+
UpdateActivityReportRequests requests
7776
) {
7877
User user = principalDetails.getUser();
78+
LocalDateTime now = LocalDateTime.now();
7979
List<UpdateActivityReportCommand> commands = requests.activityReportRequests().stream()
80-
.map(UpdateActivityReportRequest::toCommand)
81-
.toList();
82-
facadeClubActivityReportService.update(user, term, commands);
80+
.map(UpdateActivityReportRequest::toCommand)
81+
.toList();
82+
facadeClubActivityReportService.update(user, now, term, commands);
8383
}
8484

8585
@Override
86-
public void deleteActivityReport(
87-
PrincipalDetails principalDetails,
88-
String term
89-
) {
86+
public void deleteActivityReport(PrincipalDetails principalDetails, int term) {
9087
User user = principalDetails.getUser();
91-
facadeClubActivityReportService.delete(user, term);
88+
LocalDateTime now = LocalDateTime.now();
89+
facadeClubActivityReportService.delete(user, now, term);
9290
}
9391

9492
@Override
9593
public List<ActivityReportTermInfoResponse> getActivityTermInfos() {
9694
List<ActivityReportTermInfoQuery> queries = facadeClubActivityReportService.getActivityReportTermInfos();
9795
return queries.stream()
98-
.map(ActivityReportTermInfoResponse::from)
99-
.toList();
96+
.map(ActivityReportTermInfoResponse::from)
97+
.toList();
10098
}
10199
}

src/main/java/ddingdong/ddingdongBE/domain/activityreport/controller/dto/request/CreateActivityReportRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package ddingdong.ddingdongBE.domain.activityreport.controller.dto.request;
22

3-
import ddingdong.ddingdongBE.domain.activityreport.domain.Participant;
3+
import ddingdong.ddingdongBE.domain.activityreport.entity.Participant;
44
import ddingdong.ddingdongBE.domain.activityreport.service.dto.command.CreateActivityReportCommand;
55
import io.swagger.v3.oas.annotations.media.Schema;
66
import java.util.List;
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,49 @@
11
package ddingdong.ddingdongBE.domain.activityreport.controller.dto.request;
22

3-
import ddingdong.ddingdongBE.domain.activityreport.domain.Participant;
3+
import ddingdong.ddingdongBE.domain.activityreport.entity.Participant;
44
import ddingdong.ddingdongBE.domain.activityreport.service.dto.command.UpdateActivityReportCommand;
55
import io.swagger.v3.oas.annotations.media.Schema;
6+
import java.time.LocalDateTime;
67
import java.util.List;
78
import org.springframework.format.annotation.DateTimeFormat;
89

910
public record UpdateActivityReportRequest(
10-
@Schema(description = "내용", example = "활동보고서 내용입니다")
11-
String content,
12-
13-
@Schema(description = "활동 장소", example = "S1353")
14-
String place,
15-
16-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
17-
@Schema(description = "활동 시작 일자", example = "2024-01-02 11:11")
18-
String startDate,
19-
20-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
21-
@Schema(description = "활동 종료 일자", example = "2024-01-04 11:11")
22-
String endDate,
23-
24-
@Schema(description = "활동보고서 이미지 key", example = "{serverProfile}/{contentType}/2024-01-01/{authId}/{uuid}")
25-
String imageId,
26-
27-
@Schema(description = "활동 참여자 목록",
28-
example = """
29-
[{
30-
"name" : "홍길동",
31-
"studentId" : "1",
32-
"department" : "서부서"
33-
}]
34-
""")
35-
List<Participant> participants
11+
@Schema(description = "내용", example = "활동보고서 내용입니다")
12+
String content,
13+
14+
@Schema(description = "활동 장소", example = "S1353")
15+
String place,
16+
17+
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
18+
@Schema(description = "활동 시작 일자", example = "2024-01-02 11:11")
19+
String startDate,
20+
21+
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
22+
@Schema(description = "활동 종료 일자", example = "2024-01-04 11:11")
23+
String endDate,
24+
25+
@Schema(description = "활동보고서 이미지 key", example = "{serverProfile}/{contentType}/2024-01-01/{authId}/{uuid}")
26+
String imageId,
27+
28+
@Schema(description = "활동 참여자 목록",
29+
example = """
30+
[{
31+
"name" : "홍길동",
32+
"studentId" : "1",
33+
"department" : "서부서"
34+
}]
35+
""")
36+
List<Participant> participants
3637
) {
3738

3839
public UpdateActivityReportCommand toCommand() {
3940
return UpdateActivityReportCommand.builder()
40-
.content(content)
41-
.place(place)
42-
.imageId(imageId)
43-
.startDate(startDate)
44-
.endDate(endDate)
45-
.participants(participants)
46-
.build();
41+
.content(content)
42+
.place(place)
43+
.imageId(imageId)
44+
.startDate(startDate)
45+
.endDate(endDate)
46+
.participants(participants)
47+
.build();
4748
}
4849
}

src/main/java/ddingdong/ddingdongBE/domain/activityreport/controller/dto/response/ActivityReportResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package ddingdong.ddingdongBE.domain.activityreport.controller.dto.response;
22

33
import com.fasterxml.jackson.annotation.JsonFormat;
4-
import ddingdong.ddingdongBE.domain.activityreport.domain.Participant;
4+
import ddingdong.ddingdongBE.domain.activityreport.entity.Participant;
55
import ddingdong.ddingdongBE.domain.activityreport.service.dto.query.ActivityReportQuery;
66
import ddingdong.ddingdongBE.file.service.dto.query.UploadedFileUrlQuery;
77
import io.swagger.v3.oas.annotations.media.Schema;

0 commit comments

Comments
 (0)