提交修改,后台管理页面bug修复,已经发布后台管理界面V1.0版本

This commit is contained in:
2025-12-25 17:56:09 +08:00
parent 845f1c6618
commit b1da484431
23 changed files with 614 additions and 257 deletions

View File

@@ -190,6 +190,80 @@ namespace WxCheckMvc.Controllers
}
}
}
[HttpGet]
public async Task<IActionResult> QueryStats()
{
try
{
if (_connection.State != ConnectionState.Open)
{
await _connection.OpenAsync();
}
// 1) 活跃用户:最近 7 天登录UpdateTime且 UserKey/PhoneNumber 不为空
long activeUsers;
using (MySqlCommand cmd = new(@"
SELECT COUNT(1)
FROM xcx_users
WHERE UpdateTime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
AND UserKey IS NOT NULL AND UserKey <> ''
AND PhoneNumber IS NOT NULL AND PhoneNumber <> ''", _connection))
{
activeUsers = Convert.ToInt64(await cmd.ExecuteScalarAsync());
}
// 2) 总会话记录数
long totalConversations;
using (MySqlCommand cmd = new("SELECT COUNT(1) FROM xcx_conversation", _connection))
{
totalConversations = Convert.ToInt64(await cmd.ExecuteScalarAsync());
}
// 3) 今日新增会话记录CreateTime 在今天内)
long todayNewConversations;
using (MySqlCommand cmd = new(@"
SELECT COUNT(1)
FROM xcx_conversation
WHERE CreateTime >= CURDATE()
AND CreateTime < DATE_ADD(CURDATE(), INTERVAL 1 DAY)", _connection))
{
todayNewConversations = Convert.ToInt64(await cmd.ExecuteScalarAsync());
}
// 4) 总用户数UserKey/PhoneNumber 不为空
long totalUsers;
using (MySqlCommand cmd = new(@"
SELECT COUNT(1)
FROM xcx_users
WHERE UserKey IS NOT NULL AND UserKey <> ''
AND PhoneNumber IS NOT NULL AND PhoneNumber <> ''", _connection))
{
totalUsers = Convert.ToInt64(await cmd.ExecuteScalarAsync());
}
var data = new AdminStatsResponse
{
ActiveUsers = activeUsers,
TotalConversations = totalConversations,
TodayNewConversations = todayNewConversations,
TotalUsers = totalUsers
};
return Ok(new { success = true, data });
}
catch (Exception ex)
{
return StatusCode(500, new { success = false, message = "查询失败", error = ex.Message });
}
finally
{
if (_connection.State == ConnectionState.Open)
{
await _connection.CloseAsync();
}
}
}
}
public class ConversationQueryRequest
@@ -240,4 +314,12 @@ namespace WxCheckMvc.Controllers
public string AvatarUrl { get; set; }
public string Department { get; set; }
}
public class AdminStatsResponse
{
public long ActiveUsers { get; set; }
public long TotalConversations { get; set; }
public long TodayNewConversations { get; set; }
public long TotalUsers { get; set; }
}
}