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 { /// /// 用户活跃度统计API控制器 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v3")] [TypeFilter(typeof(CustomApiResponseFilter))] public class UserActivityController : ControllerBase { private readonly IUserActivityService _userActivityService; public UserActivityController(IUserActivityService userActivityService) { _userActivityService = userActivityService; } /// /// 获取用户活跃度概览数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetUserActivityOverview")] public async Task GetUserActivityOverview([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetUserActivityOverviewAsync(timeRange, date); } /// /// 获取活跃用户数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetActiveUsersData")] public async Task GetActiveUsersData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetActiveUsersDataAsync(timeRange, date); } /// /// 获取地域分析数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetRegionData")] public async Task GetRegionData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetRegionDataAsync(timeRange, date); } /// /// 获取人口统计数据(年龄和性别) /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetDemographicsData")] public async Task GetDemographicsData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetDemographicsDataAsync(timeRange, date); } /// /// 获取功能使用量统计数据 /// /// 时间范围:day, week, month /// 选择的日期 /// 模块名称 /// 功能名称 /// 按钮名称 /// [HttpGet("GetFeatureUsageData")] public async Task 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); } /// /// 获取新增用户统计数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetNewUsersData")] public async Task GetNewUsersData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetNewUsersDataAsync(timeRange, date); } /// /// 获取用户总数统计数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetTotalUsersData")] public async Task GetTotalUsersData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetTotalUsersDataAsync(timeRange, date); } /// /// 获取平均使用时长数据 /// /// 时间范围:day, week, month /// 选择的日期 /// [HttpGet("GetAvgUsageTimeData")] public async Task GetAvgUsageTimeData([FromQuery] string timeRange, [FromQuery] DateTime date) { return await _userActivityService.GetAvgUsageTimeDataAsync(timeRange, date); } } }