feat: 为尊享包 Token 列表新增按是否免费过滤并添加请求 DTO
- 新增 PremiumTokenUsageGetListInput,包含 IsFree 过滤项并继承分页 DTO - 修改 UsageStatisticsService.GetPremiumTokenUsageListAsync 签名为使用新的输入 DTO,并根据 IsFree 添加 WhereIF 过滤 - 微调 DTO 导入与格式化(PremiumTokenUsageGetListOutput)
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
using Volo.Abp.Application.Dtos;
|
||||||
|
using Yi.Framework.Ddd.Application.Contracts;
|
||||||
|
|
||||||
|
namespace Yi.Framework.AiHub.Application.Contracts.Dtos.UsageStatistics;
|
||||||
|
|
||||||
|
public class PremiumTokenUsageGetListInput : PagedAllResultRequestDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 是否免费
|
||||||
|
/// </summary>
|
||||||
|
public bool? IsFree { get; set; }
|
||||||
|
}
|
||||||
@@ -1,56 +1,57 @@
|
|||||||
using Volo.Abp.Application.Dtos;
|
using Volo.Abp.Application.Dtos;
|
||||||
|
using Yi.Framework.Ddd.Application.Contracts;
|
||||||
|
|
||||||
namespace Yi.Framework.AiHub.Application.Contracts.Dtos.UsageStatistics;
|
namespace Yi.Framework.AiHub.Application.Contracts.Dtos.UsageStatistics;
|
||||||
|
|
||||||
public class PremiumTokenUsageGetListOutput : CreationAuditedEntityDto
|
public class PremiumTokenUsageGetListOutput : CreationAuditedEntityDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// id
|
/// id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户ID
|
/// 用户ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid UserId { get; set; }
|
public Guid UserId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 包名称
|
/// 包名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string PackageName { get; set; }
|
public string PackageName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 总用量(总token数)
|
/// 总用量(总token数)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long TotalTokens { get; set; }
|
public long TotalTokens { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 剩余用量(剩余token数)
|
/// 剩余用量(剩余token数)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long RemainingTokens { get; set; }
|
public long RemainingTokens { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 已使用token数
|
/// 已使用token数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long UsedTokens { get; set; }
|
public long UsedTokens { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 到期时间
|
/// 到期时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? ExpireDateTime { get; set; }
|
public DateTime? ExpireDateTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否激活
|
/// 是否激活
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsActive { get; set; }
|
public bool IsActive { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 购买金额
|
/// 购买金额
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public decimal PurchaseAmount { get; set; }
|
public decimal PurchaseAmount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
/// 备注
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Remark { get; set; }
|
public string? Remark { get; set; }
|
||||||
}
|
}
|
||||||
@@ -147,15 +147,19 @@ public class UsageStatisticsService : ApplicationService, IUsageStatisticsServic
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("usage-statistics/premium-token-usage/list")]
|
[HttpGet("usage-statistics/premium-token-usage/list")]
|
||||||
public async Task<PagedResultDto<PremiumTokenUsageGetListOutput>> GetPremiumTokenUsageListAsync(PagedAllResultRequestDto input)
|
public async Task<PagedResultDto<PremiumTokenUsageGetListOutput>> GetPremiumTokenUsageListAsync(
|
||||||
|
PremiumTokenUsageGetListInput input)
|
||||||
{
|
{
|
||||||
var userId = CurrentUser.GetId();
|
var userId = CurrentUser.GetId();
|
||||||
RefAsync<int> total = 0;
|
RefAsync<int> total = 0;
|
||||||
// 获取尊享包Token信息
|
// 获取尊享包Token信息
|
||||||
var entities = await _premiumPackageRepository._DbQueryable
|
var entities = await _premiumPackageRepository._DbQueryable
|
||||||
.Where(x => x.UserId == userId)
|
.Where(x => x.UserId == userId)
|
||||||
.OrderByDescending(x=>x.CreationTime)
|
.WhereIF(input.IsFree == true, x => x.PurchaseAmount > 0)
|
||||||
|
.WhereIF(input.IsFree == false, x => x.PurchaseAmount == 0)
|
||||||
|
.OrderByDescending(x => x.CreationTime)
|
||||||
.ToPageListAsync(input.SkipCount, input.MaxResultCount, total);
|
.ToPageListAsync(input.SkipCount, input.MaxResultCount, total);
|
||||||
return new PagedResultDto<PremiumTokenUsageGetListOutput>(total, entities.Adapt<List<PremiumTokenUsageGetListOutput>>());
|
return new PagedResultDto<PremiumTokenUsageGetListOutput>(total,
|
||||||
|
entities.Adapt<List<PremiumTokenUsageGetListOutput>>());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user