feat 餐券余额查询

This commit is contained in:
2024-11-12 11:26:41 +08:00
parent 1a04513489
commit a3da812cde
6 changed files with 80 additions and 12 deletions

View File

@@ -22,13 +22,24 @@ public class EMealVoucherController : ControllerBase
_eMealVoucherService = eMealVoucherService;
}
/// <summary>
/// 分页数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("page")]
public async Task<Pagination<EMealVoucherPageResponse>> GetPageAsync([FromQuery] EMealVoucherPageRequest request)
{
return await _eMealVoucherService.GetPageAsync(request);
}
/// <summary>
/// 获取我的电子餐券申请
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("my")]
public async Task<Pagination<EMealVoucherPageResponse>> GetMyEMealVoucherPageAsync([FromQuery] EMealVoucherPageRequest request)
public async Task<Pagination<EMealVoucherMyPageResponse>> GetMyEMealVoucherPageAsync([FromQuery] EMealVoucherPageRequest request)
{
return await _eMealVoucherService.GetMyEMealVoucherPageAsync(request);
}

View File

@@ -3,7 +3,7 @@ namespace Dlhis.Canteen.EMealVoucher.Response;
public class EMealVoucherDetailResponse
{
public long Id { get; set; }
/// <summary>
/// 用餐人
/// </summary>
@@ -25,7 +25,12 @@ public class EMealVoucherDetailResponse
public DateTime End { get; set; }
/// <summary>
/// 金额
/// 剩余金额
/// </summary>
public decimal Balance { get; set; }
public decimal Balance { get; set; }
/// <summary>
/// 原始金额
/// </summary>
public decimal OriginBalance { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace Dlhis.Canteen.EMealVoucher.Response;
public class EMealVoucherMyPageResponse
{
public long Id { get; set; }
public string No { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
}

View File

@@ -1,12 +1,19 @@
using Dlhis.Entity.Canteen.Enums;
namespace Dlhis.Canteen.EMealVoucher.Response;
public class EMealVoucherPageResponse
{
public long Id { get; set; }
public string No { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public string Code { get; set; }
public string Phone { get; set; }
public List<string> Factories { get; set; }
public DateTime Date { get; set; }
public string CostId { get; set; }
public string Source { get; set; }
public string Reason { get; set; }
public List<ShiftEnumType> Shifts { get; set; }
public List<EMealVoucherDetailResponse> Details { get; set; }
}

View File

@@ -9,7 +9,9 @@ namespace Dlhis.Canteen.EMealVoucher.Services;
public interface IEMealVoucherService : IScopeDependency
{
Task<Pagination<EMealVoucherPageResponse>> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request);
Task<Pagination<EMealVoucherPageResponse>> GetPageAsync([FromQuery] EMealVoucherPageRequest request);
Task<Pagination<EMealVoucherMyPageResponse>> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request);
Task<List<EMealVoucherDetailResponse>> GetDetailsByNoAsync(string no);

View File

@@ -28,13 +28,44 @@ public class EMealVoucherService : IEMealVoucherService
}
public async Task<Pagination<EMealVoucherPageResponse>> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request)
/// <inheritdoc />
public async Task<Pagination<EMealVoucherPageResponse>> GetPageAsync(EMealVoucherPageRequest request)
{
return await _dbContext.Queryable<EMealVoucherEntity>()
.OrderBy(x => x.Date, OrderByType.Desc)
.Select(x => new EMealVoucherPageResponse
{
No = x.No,
Title = x.Title,
Code = x.Code,
Phone = x.Phone,
Factories = x.Factories,
Date = x.Date,
CostId = x.CostId,
Source = x.Source,
Reason = x.Reason,
Shifts = x.Shifts,
Details = SqlFunc.Subqueryable<EMealVoucherDetailEntity>().Where(p => p.No == x.No).ToList(p => new EMealVoucherDetailResponse
{
Id = p.Id,
Name = p.Name,
Phone = p.Phone,
Start = p.Start,
End = p.End,
Balance = p.Balance,
OriginBalance = p.OriginBalance,
})
})
.ToPageListAsync(request);
}
public async Task<Pagination<EMealVoucherMyPageResponse>> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request)
{
var code = _currentUser.GetUserClaim("jinko-code");
return await _dbContext.Queryable<EMealVoucherEntity>()
.Where(x => x.Code == code)
.OrderBy(x => x.Id, OrderByType.Desc)
.Select<EMealVoucherPageResponse>()
.Select<EMealVoucherMyPageResponse>()
.ToPageListAsync(request);
}