仪表盘功能完善

This commit is contained in:
2025-10-31 14:33:57 +08:00
parent 778f05daa5
commit bbe79ecffb
8 changed files with 416 additions and 20 deletions
@@ -85,6 +85,8 @@ public class DashboardServiceTest {
System.out.println("奖励数量: " + systemStats.getRewardCount());
System.out.println("系统运行时间: " + systemStats.getUptime());
System.out.println("最近活动数量: " + stats.getRecentActivities().size());
System.out.println("用户增长趋势数量: " + (stats.getUserGrowthTrends() != null ? stats.getUserGrowthTrends().size() : 0));
System.out.println("最近登录用户数量: " + (stats.getRecentLogins() != null ? stats.getRecentLogins().size() : 0));
}
@Test
@@ -137,4 +139,48 @@ public class DashboardServiceTest {
assertTrue(systemStats.getRewardCount() >= 0, "奖励数量应大于等于0");
assertNotNull(systemStats.getUptime(), "系统运行时间不应为空");
}
@Test
public void testGetUserGrowthTrends() {
// 测试获取用户增长趋势数据
var trends = dashboardService.getUserGrowthTrends(7);
assertNotNull(trends, "用户增长趋势数据不应为空");
assertTrue(trends.size() <= 7, "趋势数据数量应不超过7天");
for (var trend : trends) {
assertNotNull(trend.getDate(), "日期不应为空");
assertTrue(trend.getNewUsers() >= 0, "新增用户数应大于等于0");
assertTrue(trend.getTotalUsers() >= 0, "总用户数应大于等于0");
}
System.out.println("=== 用户增长趋势测试结果 ===");
for (var trend : trends) {
System.out.println(String.format("日期: %s, 新增: %d, 总计: %d",
trend.getDate(), trend.getNewUsers(), trend.getTotalUsers()));
}
}
@Test
public void testGetRecentLogins() {
// 测试获取最近登录用户
var recentLogins = dashboardService.getRecentLogins(10);
assertNotNull(recentLogins, "最近登录用户数据不应为空");
assertTrue(recentLogins.size() <= 10, "最近登录用户数量应不超过10个");
for (var login : recentLogins) {
assertNotNull(login.getUserId(), "用户ID不应为空");
assertNotNull(login.getUsername(), "用户名不应为空");
assertNotNull(login.getTimeDescription(), "时间描述不应为空");
}
System.out.println("=== 最近登录用户测试结果 ===");
for (var login : recentLogins) {
System.out.println(String.format("用户: %s (%s), 时间: %s",
login.getNickname() != null ? login.getNickname() : login.getUsername(),
login.getUsername(),
login.getTimeDescription()));
}
}
}