127 lines
5.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}