Skip to content

Commit 44851be

Browse files
committed
refactor/367 관리자대시보드-사용자관리 수수료율 정리 수정
1 parent fec3a5a commit 44851be

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

src/main/java/com/back/domain/dashboard/admin/service/AdminDashboardServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ private String mapUserSortField(String sort) {
515515
case "memberId" -> "email";
516516
case "nickname" -> "name";
517517
case "artistName" -> "name";
518-
case "commissionRate" -> "id"; // TODO: User 엔티티에 commissionRate 필드 추가 시 수정
518+
case "commissionRate" -> "grade"; // 수수료율 정렬은 회원등급으로 처리 (작가=GUARDIAN, 일반=SPROUT)
519519
case "grade" -> "grade";
520520
case "accountStatus" -> "status";
521521
case "joinedAt" -> "createDate";

src/test/java/com/back/domain/dashboard/admin/service/AdminDashboardServiceImplTest.java

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import com.back.domain.order.order.repository.OrderRepository;
99
import com.back.domain.product.category.entity.Category;
1010
import com.back.domain.product.category.repository.CategoryRepository;
11-
import com.back.domain.product.product.entity.*;
11+
import com.back.domain.product.product.entity.DeliveryType;
12+
import com.back.domain.product.product.entity.DisplayStatus;
13+
import com.back.domain.product.product.entity.Product;
14+
import com.back.domain.product.product.entity.SellingStatus;
1215
import com.back.domain.product.product.repository.ProductRepository;
1316
import com.back.domain.user.entity.Role;
1417
import com.back.domain.user.entity.User;
@@ -30,6 +33,7 @@
3033
import java.math.BigDecimal;
3134
import java.time.LocalDate;
3235
import java.time.LocalDateTime;
36+
import java.util.List;
3337

3438
import static org.assertj.core.api.Assertions.assertThat;
3539
import static org.junit.jupiter.api.Assertions.assertAll;
@@ -440,6 +444,52 @@ private void setupSecurityContext() {
440444
});
441445
}
442446

447+
@Test
448+
@DisplayName("사용자 목록 조회 - 수수료율 정렬 (실제로는 회원등급 정렬)")
449+
void getUsers_수수료율정렬() {
450+
// Given - 수수료율 오름차순 정렬 (실제로는 grade 정렬)
451+
AdminUserSearchRequest request = new AdminUserSearchRequest(
452+
0, 20, null, null, null, null, null, null, null,
453+
"commissionRate", "ASC"
454+
);
455+
456+
// When
457+
AdminUserResponse response = adminDashboardService.getUsers(request);
458+
459+
// Then
460+
assertThat(response.content()).isNotEmpty();
461+
// 등급 순서: SPROUT(일반) < GRASS < TREE < FOREST < GUARDIAN(작가)
462+
// 따라서 일반 유저(수수료율 null)가 먼저, 작가(수수료율 10%)가 나중에 나와야 함
463+
464+
List<AdminUserResponse.User> users = response.content();
465+
for (int i = 0; i < users.size() - 1; i++) {
466+
String currentGrade = users.get(i).grade();
467+
String nextGrade = users.get(i + 1).grade();
468+
469+
// GUARDIAN(작가) 앞에는 GUARDIAN이 아닌 등급이 와야 함
470+
if ("GUARDIAN".equals(nextGrade)) {
471+
assertThat(currentGrade).isIn("SPROUT", "GRASS", "TREE", "FOREST", "GUARDIAN");
472+
}
473+
}
474+
}
475+
476+
@Test
477+
@DisplayName("사용자 목록 조회 - 수수료율 내림차순 정렬")
478+
void getUsers_수수료율내림차순정렬() {
479+
// Given - 수수료율 내림차순 정렬 (실제로는 grade 역순 정렬)
480+
AdminUserSearchRequest request = new AdminUserSearchRequest(
481+
0, 20, null, null, null, null, null, null, null,
482+
"commissionRate", "DESC"
483+
);
484+
485+
// When
486+
AdminUserResponse response = adminDashboardService.getUsers(request);
487+
488+
// Then
489+
assertThat(response.content()).isNotEmpty();
490+
// 내림차순이므로 GUARDIAN(작가, 10%)가 먼저, 일반 유저(null)가 나중에 나와야 함
491+
}
492+
443493
// ========== 펀딩 승인 대기 목록 테스트 ==========
444494

445495
@Test

0 commit comments

Comments
 (0)