提交修改,后台管理页面bug修复,已经发布后台管理界面V1.0版本
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,6 +266,15 @@ namespace WxCheckMvc.Controllers
|
||||
await insertCmd.ExecuteNonQueryAsync();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 用户已存在:更新最后一次接口调用时间
|
||||
using (MySqlCommand updateCmd = new MySqlCommand("UPDATE xcx_users SET UpdateTime = NOW() WHERE UserKey = @UserKey", _connection))
|
||||
{
|
||||
updateCmd.Parameters.AddWithValue("@UserKey", openId);
|
||||
await updateCmd.ExecuteNonQueryAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
|
||||
Reference in New Issue
Block a user