feat 用户集团消费数据
This commit is contained in:
@@ -111,6 +111,18 @@ public class BalancesController : ControllerBase
|
|||||||
return await _balanceService.GetPageByUserAsync(request);
|
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>
|
||||||
/// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
|
/// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
|
||||||
/// </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<BalanceRecordUserResultResponse> GetPageByUserAsync(BalanceRecordUserPageRequest request);
|
||||||
|
|
||||||
|
|
||||||
|
Task<Pagination<BalanceRecordUserPageResponse>> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request);
|
||||||
|
|
||||||
|
|
||||||
Task SupplementBalanceAsync(BalanceSupplementRequest request);
|
Task SupplementBalanceAsync(BalanceSupplementRequest request);
|
||||||
|
|
||||||
/// <summary>
|
/// <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()
|
public async Task<ConsumeNumberResponse> GetConsumeNumberAsync()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user