127 lines
5.0 KiB
C#
Raw Normal View History

2025-07-17 13:11:29 +08:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using VOL.Business.IServices.UserActivity;
using VOL.Core.Filters;
namespace VOL.WebApi.Controllers.Business
{
/// <summary>
/// 用户活跃度统计API控制器
/// </summary>
[Route("api/[controller]")]
[ApiController]
[ApiExplorerSettings(GroupName = "v3")]
[TypeFilter(typeof(CustomApiResponseFilter))]
public class UserActivityController : ControllerBase
{
private readonly IUserActivityService _userActivityService;
public UserActivityController(IUserActivityService userActivityService)
{
_userActivityService = userActivityService;
}
/// <summary>
/// 获取用户活跃度概览数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetUserActivityOverview")]
public async Task<object> GetUserActivityOverview([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetUserActivityOverviewAsync(timeRange, date);
}
/// <summary>
/// 获取活跃用户数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetActiveUsersData")]
public async Task<object> GetActiveUsersData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetActiveUsersDataAsync(timeRange, date);
}
/// <summary>
/// 获取地域分析数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetRegionData")]
public async Task<object> GetRegionData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetRegionDataAsync(timeRange, date);
}
/// <summary>
/// 获取人口统计数据(年龄和性别)
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetDemographicsData")]
public async Task<object> GetDemographicsData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetDemographicsDataAsync(timeRange, date);
}
/// <summary>
/// 获取功能使用量统计数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <param name="module">模块名称</param>
/// <param name="function">功能名称</param>
/// <param name="button">按钮名称</param>
/// <returns></returns>
[HttpGet("GetFeatureUsageData")]
public async Task<object> GetFeatureUsageData([FromQuery] string timeRange, [FromQuery] DateTime date,
[FromQuery] string module = "", [FromQuery] string function = "", [FromQuery] string button = "")
{
return await _userActivityService.GetFeatureUsageDataAsync(timeRange, date, module, function, button);
}
/// <summary>
/// 获取新增用户统计数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetNewUsersData")]
public async Task<object> GetNewUsersData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetNewUsersDataAsync(timeRange, date);
}
/// <summary>
/// 获取用户总数统计数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetTotalUsersData")]
public async Task<object> GetTotalUsersData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetTotalUsersDataAsync(timeRange, date);
}
/// <summary>
/// 获取平均使用时长数据
/// </summary>
/// <param name="timeRange">时间范围day, week, month</param>
/// <param name="date">选择的日期</param>
/// <returns></returns>
[HttpGet("GetAvgUsageTimeData")]
public async Task<object> GetAvgUsageTimeData([FromQuery] string timeRange, [FromQuery] DateTime date)
{
return await _userActivityService.GetAvgUsageTimeDataAsync(timeRange, date);
}
}
}