Skip to content

Commit 4086edc

Browse files
authored
feat: 어드민 유저 관리 기능 추가 (#686)
* feat: 어드민 유저 관리 기능 - 차단 기능 rebase 및 충돌 해결 * test: 어드민 유저 관리 기능 * feat: 어드민 유저 관리 기능 * feat: 어드민 유저 관리 기능 - University -> HostUniversity 변경 * refactor: 어드민 유저 관리 기능
1 parent 3b238e4 commit 4086edc

22 files changed

+1109
-1
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.example.solidconnection.admin.controller;
2+
3+
import org.springframework.data.domain.Page;
4+
import org.springframework.data.domain.Pageable;
5+
import org.springframework.http.ResponseEntity;
6+
import org.springframework.web.bind.annotation.GetMapping;
7+
import org.springframework.web.bind.annotation.ModelAttribute;
8+
import org.springframework.web.bind.annotation.PathVariable;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RestController;
11+
import com.example.solidconnection.admin.dto.RestrictedUserInfoDetailResponse;
12+
import com.example.solidconnection.admin.dto.RestrictedUserSearchCondition;
13+
import com.example.solidconnection.admin.dto.RestrictedUserSearchResponse;
14+
import com.example.solidconnection.admin.dto.UserInfoDetailResponse;
15+
import com.example.solidconnection.admin.dto.UserSearchCondition;
16+
import com.example.solidconnection.admin.dto.UserSearchResponse;
17+
import com.example.solidconnection.admin.service.AdminUserService;
18+
import com.example.solidconnection.common.response.PageResponse;
19+
import jakarta.validation.Valid;
20+
import lombok.RequiredArgsConstructor;
21+
22+
@RequiredArgsConstructor
23+
@RequestMapping("/admin/users")
24+
@RestController
25+
public class AdminUserController {
26+
27+
private final AdminUserService adminUserService;
28+
29+
@GetMapping
30+
public ResponseEntity<PageResponse<UserSearchResponse>> searchAllUsers(
31+
@Valid @ModelAttribute UserSearchCondition searchCondition,
32+
Pageable pageable
33+
) {
34+
Page<UserSearchResponse> page = adminUserService.searchAllUsers(searchCondition, pageable);
35+
return ResponseEntity.ok(PageResponse.of(page));
36+
}
37+
38+
@GetMapping("/{user-id}")
39+
public ResponseEntity<UserInfoDetailResponse> getUserInfoDetail(
40+
@PathVariable(name = "user-id") long userId
41+
) {
42+
UserInfoDetailResponse response = adminUserService.getUserInfoDetail(userId);
43+
return ResponseEntity.ok(response);
44+
}
45+
46+
@GetMapping("/restricted")
47+
public ResponseEntity<PageResponse<RestrictedUserSearchResponse>> searchRestrictedUsers(
48+
@Valid @ModelAttribute RestrictedUserSearchCondition searchCondition,
49+
Pageable pageable
50+
) {
51+
Page<RestrictedUserSearchResponse> page = adminUserService.searchRestrictedUsers(searchCondition, pageable);
52+
return ResponseEntity.ok(PageResponse.of(page));
53+
}
54+
55+
@GetMapping("/restricted/{user-id}")
56+
public ResponseEntity<RestrictedUserInfoDetailResponse> getRestrictedUserInfoDetail(
57+
@PathVariable(name = "user-id") long userId
58+
) {
59+
RestrictedUserInfoDetailResponse response = adminUserService.getRestrictedUserInfoDetail(userId);
60+
return ResponseEntity.ok(response);
61+
}
62+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.time.ZonedDateTime;
4+
5+
public record BannedHistoryResponse(
6+
ZonedDateTime createdAt
7+
) {
8+
9+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import com.example.solidconnection.siteuser.domain.UserBanDuration;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
6+
public record BannedInfoResponse(
7+
@JsonProperty("isBanned") boolean isBanned,
8+
UserBanDuration duration
9+
) {
10+
11+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.time.ZonedDateTime;
4+
5+
public record MatchedInfoResponse(
6+
String nickname,
7+
ZonedDateTime matchedDate
8+
) {
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.util.List;
4+
5+
public record MenteeInfoResponse(
6+
UnivApplyInfoResponse univApplyInfo,
7+
List<MatchedInfoResponse> mentorInfos
8+
) {
9+
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import com.example.solidconnection.mentor.domain.MentorApplicationStatus;
4+
import java.time.ZonedDateTime;
5+
6+
public record MentorApplicationHistoryInfoResponse(
7+
MentorApplicationStatus mentorApplicationStatus,
8+
String rejectedReason,
9+
ZonedDateTime createdAt
10+
) {
11+
12+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.util.List;
4+
5+
public record MentorInfoResponse(
6+
List<MatchedInfoResponse> menteeInfos,
7+
List<MentorApplicationHistoryInfoResponse> mentorApplicationHistory
8+
) {
9+
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.time.ZonedDateTime;
4+
5+
import com.example.solidconnection.report.domain.ReportType;
6+
7+
public record ReportedHistoryResponse(
8+
ZonedDateTime reportedDate,
9+
ReportType reportType
10+
) {
11+
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.time.ZonedDateTime;
4+
5+
import com.example.solidconnection.report.domain.ReportType;
6+
import com.example.solidconnection.report.domain.TargetType;
7+
8+
public record ReportedInfoResponse(
9+
ZonedDateTime reportedDate,
10+
TargetType targetType,
11+
ReportType reportType
12+
) {
13+
14+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.example.solidconnection.admin.dto;
2+
3+
import java.util.List;
4+
5+
public record RestrictedUserInfoDetailResponse(
6+
List<ReportedHistoryResponse> reportedHistoryResponses,
7+
List<BannedHistoryResponse> bannedHistoryResponses
8+
) {
9+
10+
}

0 commit comments

Comments
 (0)