fix 查询和list数据展示
This commit is contained in:
@@ -1,7 +1,21 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Canteen.EMealVoucher.Request;
|
||||
|
||||
public class EMealVoucherPageRequest : PageDto
|
||||
public class EMealVoucherPageRequest : PageDto, IValidatableObject
|
||||
{
|
||||
public DateTimePeriod SearchDateTimePeriod { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (SearchDateTimePeriod.HasValue())
|
||||
{
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start!.Value.AddDays(1).AddSeconds(-1);
|
||||
}
|
||||
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,77 @@
|
||||
using Dlhis.Entity.Canteen.Enums;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Mapster.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Dlhis.Canteen.EMealVoucher.Response;
|
||||
|
||||
public class EMealVoucherPageResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// OA流程号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 申请人工号
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 申请人手机号
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string CurrentFactories { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 可使用的厂区编码
|
||||
/// </summary>
|
||||
public List<string> Factories => CurrentFactories.ToObject<List<string>>();
|
||||
|
||||
/// <summary>
|
||||
/// 申请时间
|
||||
/// </summary>
|
||||
public DateTime Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成本日期
|
||||
/// </summary>
|
||||
public string CostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来源
|
||||
/// </summary>
|
||||
public string Source { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 申请事由
|
||||
/// </summary>
|
||||
public string Reason { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string CurrentShifts { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用餐次
|
||||
/// </summary>
|
||||
public List<string> Shifts
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = CurrentShifts.ToObject<List<int>>().Select(x => ((ShiftEnumType)(x * 10))).ToList();
|
||||
return a.Select(x=>x.GetDescription()).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 消费券明细
|
||||
/// </summary>
|
||||
public List<EMealVoucherDetailResponse> Details { get; set; }
|
||||
}
|
||||
@@ -32,6 +32,10 @@ public class EMealVoucherService : IEMealVoucherService
|
||||
public async Task<Pagination<EMealVoucherPageResponse>> GetPageAsync(EMealVoucherPageRequest request)
|
||||
{
|
||||
return await _dbContext.Queryable<EMealVoucherEntity>()
|
||||
.WhereIF(request.Search.IsPresent(), x => x.No == request.Search ||
|
||||
x.Code == request.Search ||
|
||||
x.Title.Contains(request.Search))
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.Date >= request.SearchDateTimePeriod.Start && x.Date <= request.SearchDateTimePeriod.End)
|
||||
.OrderBy(x => x.Date, OrderByType.Desc)
|
||||
.Select(x => new EMealVoucherPageResponse
|
||||
{
|
||||
@@ -39,12 +43,12 @@ public class EMealVoucherService : IEMealVoucherService
|
||||
Title = x.Title,
|
||||
Code = x.Code,
|
||||
Phone = x.Phone,
|
||||
Factories = x.Factories,
|
||||
CurrentFactories = x.Factories.ToString(),
|
||||
Date = x.Date,
|
||||
CostId = x.CostId,
|
||||
Source = x.Source,
|
||||
Reason = x.Reason,
|
||||
Shifts = x.Shifts,
|
||||
CurrentShifts = x.Shifts.ToString(),
|
||||
Details = SqlFunc.Subqueryable<EMealVoucherDetailEntity>().Where(p => p.No == x.No).ToList(p => new EMealVoucherDetailResponse
|
||||
{
|
||||
Id = p.Id,
|
||||
@@ -62,6 +66,7 @@ public class EMealVoucherService : IEMealVoucherService
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user