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