64 lines
1.5 KiB
C#
64 lines
1.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Dlhis.Entity.Canteen.Enums;
|
|
using Kurisu.AspNetCore.Utils.Extensions;
|
|
|
|
namespace Dlhis.Middle.Request;
|
|
|
|
public class OrderAddRequest : IValidatableObject
|
|
{
|
|
/// <summary>
|
|
/// 是否离线数据
|
|
/// </summary>
|
|
public bool IsOffline { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 消费机器唯一信息
|
|
/// </summary>
|
|
public string DeviceUniqueNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// 第三方订单号
|
|
/// </summary>
|
|
public string ThirdNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// 档案号/QrCode/学工号
|
|
/// </summary>
|
|
[Required(ErrorMessage = "人员档案号/QrCode/学工号/userId 不能为空")]
|
|
public string UserUniqueNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// 来源
|
|
/// </summary>
|
|
[EnumDataType(typeof(BalanceRecordSourceEnumType))]
|
|
public BalanceRecordSourceEnumType Source { get; set; }
|
|
|
|
/// <summary>
|
|
/// 金额
|
|
/// </summary>
|
|
[Range(0.01, double.MaxValue)]
|
|
public decimal Amount { get; set; }
|
|
|
|
/// <summary>
|
|
/// 产生时间
|
|
/// </summary>
|
|
public DateTime? CostDateTime { get; set; }
|
|
|
|
|
|
public string Image { get; set; }
|
|
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
//处理金额
|
|
Amount = -Math.Abs(Amount);
|
|
|
|
CostDateTime ??= DateTime.Now;
|
|
|
|
if (DeviceUniqueNo.IsEmpty())
|
|
{
|
|
yield return new ValidationResult("设备号不能为空", new[] { nameof(DeviceUniqueNo) });
|
|
}
|
|
}
|
|
}
|