// 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;
///
/// 统计分析
///
[ApiDescriptionSettings("Application", Tag = "统计分析")]
[Route("biz/weibingju/statistics")]
[RolePermission]
public class StatisticsController : IDynamicApiController
{
private readonly IStatisticsService _service;
public StatisticsController(IStatisticsService service)
{
_service = service;
}
///
/// 获取全量总览数据(不区分年份,含剩余药材库存价值)
///
[HttpGet("overview")]
[DisplayName("获取全量总览数据")]
public async Task GetTotalOverview()
{
return await _service.GetTotalOverview();
}
///
/// 获取年度统计数据(含同比趋势)
///
[HttpGet("yearly")]
[DisplayName("获取年度统计数据")]
public async Task GetYearlyStatistics([FromQuery] string year)
{
if (!int.TryParse(year, out int yearInt) || yearInt < 2000 || yearInt > 2100)
throw Oops.Bah("年份参数不合法");
return await _service.GetYearlyStatistics(yearInt);
}
///
/// 获取月度明细数据(返回 12 个月,无数据月份自动补零)
///
[HttpGet("monthly")]
[DisplayName("获取月度明细数据")]
public async Task GetMonthlyDetails([FromQuery] string year)
{
if (!int.TryParse(year, out int yearInt) || yearInt < 2000 || yearInt > 2100)
throw Oops.Bah("年份参数不合法");
return await _service.GetMonthlyDetails(yearInt);
}
}