Files
WeiBingJuInterface/SimpleAdmin.Web.Core/Controllers/Application/WeiBingJu/StatisticsController.cs
T
2026-02-24 15:05:47 +08:00

64 lines
2.1 KiB
C#

// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
//
// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
// 1.请不要删除和修改根目录下的LICENSE文件。
// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
using MoYu.FriendlyException;
using SimpleAdmin.Application.Services.Statistics;
namespace SimpleAdmin.Web.Core;
/// <summary>
/// 统计分析
/// </summary>
[ApiDescriptionSettings("Application", Tag = "统计分析")]
[Route("biz/weibingju/statistics")]
[RolePermission]
public class StatisticsController : IDynamicApiController
{
private readonly IStatisticsService _service;
public StatisticsController(IStatisticsService service)
{
_service = service;
}
/// <summary>
/// 获取全量总览数据(不区分年份,含剩余药材库存价值)
/// </summary>
[HttpGet("overview")]
[DisplayName("获取全量总览数据")]
public async Task<dynamic> GetTotalOverview()
{
return await _service.GetTotalOverview();
}
/// <summary>
/// 获取年度统计数据(含同比趋势)
/// </summary>
[HttpGet("yearly")]
[DisplayName("获取年度统计数据")]
public async Task<dynamic> GetYearlyStatistics([FromQuery] string year)
{
if (!int.TryParse(year, out int yearInt) || yearInt < 2000 || yearInt > 2100)
throw Oops.Bah("年份参数不合法");
return await _service.GetYearlyStatistics(yearInt);
}
/// <summary>
/// 获取月度明细数据(返回 12 个月,无数据月份自动补零)
/// </summary>
[HttpGet("monthly")]
[DisplayName("获取月度明细数据")]
public async Task<dynamic> GetMonthlyDetails([FromQuery] string year)
{
if (!int.TryParse(year, out int yearInt) || yearInt < 2000 || yearInt > 2100)
throw Oops.Bah("年份参数不合法");
return await _service.GetMonthlyDetails(yearInt);
}
}