127 lines
5.0 KiB
C#
127 lines
5.0 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|