feat 用户集团消费数据
This commit is contained in:
@@ -111,6 +111,18 @@ public class BalancesController : ControllerBase
|
||||
return await _balanceService.GetPageByUserAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户集团消费记录
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("user/group/page")]
|
||||
[IgnoreTenant]
|
||||
public async Task<Pagination<BalanceRecordUserPageResponse>> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request)
|
||||
{
|
||||
return await _balanceService.GetUserBalanceGroupAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Canteen.Order.Request;
|
||||
|
||||
public class BalanceRecordUserGroupPageRequest : PageDto, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// 日期范围查询
|
||||
/// </summary>
|
||||
public DateTimePeriod SearchDateTimePeriod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工号
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "工号不可为空")]
|
||||
public string UserCode { get; set; }
|
||||
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (SearchDateTimePeriod is { End: not null })
|
||||
{
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
|
||||
}
|
||||
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,10 @@ public interface IBalanceService : IScopeDependency
|
||||
|
||||
Task<BalanceRecordUserResultResponse> GetPageByUserAsync(BalanceRecordUserPageRequest request);
|
||||
|
||||
|
||||
Task<Pagination<BalanceRecordUserPageResponse>> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request);
|
||||
|
||||
|
||||
Task SupplementBalanceAsync(BalanceSupplementRequest request);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -382,6 +382,31 @@ public class BalanceService : IBalanceService
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<Pagination<BalanceRecordUserPageResponse>> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request)
|
||||
{
|
||||
return await _dbContext.Queryable<BalanceRecordEntity>()
|
||||
.LeftJoin<GainfoEntity>((record, ga) => record.UserNo == ga.No)
|
||||
.LeftJoin<DepartmentEntity>((record, ga, department) => ga.DepartmentNo == department.No)
|
||||
.LeftJoin<BusinessPlaceEntity>((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
|
||||
.Where((record, ga) => record.UserCode == request.UserCode)
|
||||
.Where(record => record.Status == BalanceRecordStatusEnumType.Valid && record.Type == BalanceRecordTypeEnumType.Out)
|
||||
.Where(record => record.Source != BalanceRecordSourceEnumType.EMealVoucher) //不展示电子餐券信息
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
|
||||
.OrderBy(record => record.CostDateTime)
|
||||
.Select((record, ga, department, bPlace) => new BalanceRecordUserPageResponse
|
||||
{
|
||||
Id = record.Id,
|
||||
CurrentAmount = SqlFunc.Abs(record.Amount),
|
||||
Source = record.Source,
|
||||
No = record.No,
|
||||
BusinessPlaceName = bPlace.Name,
|
||||
ShiftType = record.ShiftType,
|
||||
CostDateTime = record.CostDateTime,
|
||||
ApplicationType = record.ApplicationType,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
|
||||
|
||||
public async Task<ConsumeNumberResponse> GetConsumeNumberAsync()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user