fix 移除多余代码

This commit is contained in:
2024-04-16 11:51:23 +08:00
parent cc32e1d961
commit 8ee16d5e95
3 changed files with 10 additions and 130 deletions

View File

@@ -24,7 +24,7 @@ public class OrderAddRequest : IValidatableObject
/// <summary>
/// 档案号/QrCode/学工号
/// </summary>
[Required(ErrorMessage = "人员档案号/QrCode/学工号不能为空/userId")]
[Required(ErrorMessage = "人员档案号/QrCode/学工号/userId 不能为空")]
public string UserUniqueNo { get; set; }
/// <summary>
@@ -33,12 +33,6 @@ public class OrderAddRequest : IValidatableObject
[EnumDataType(typeof(BalanceRecordSourceEnumType))]
public BalanceRecordSourceEnumType Source { get; set; }
/// <summary>
/// 收入/支出
/// </summary>
[EnumDataType(typeof(BalanceRecordTypeEnumType))]
public BalanceRecordTypeEnumType? Type { get; set; } = BalanceRecordTypeEnumType.Out;
/// <summary>
/// 金额
/// </summary>
@@ -54,8 +48,7 @@ public class OrderAddRequest : IValidatableObject
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
//处理金额
Amount = Type == BalanceRecordTypeEnumType.In ? Math.Abs(Amount) : -Math.Abs(Amount);
Amount = -Math.Abs(Amount);
//在线就以API时间为准
if (!IsOffline)
@@ -63,19 +56,9 @@ public class OrderAddRequest : IValidatableObject
CostDateTime = DateTime.Now;
}
if (Type == BalanceRecordTypeEnumType.Out)
if (DeviceUniqueNo.IsEmpty())
{
if (DeviceUniqueNo.IsEmpty())
{
yield return new ValidationResult("设备唯一号不能为空", new[] { nameof(DeviceUniqueNo) });
}
}
else if (Type == BalanceRecordTypeEnumType.In)
{
//if ((int)Source < (int)BalanceRecordSourceEnumType.Wechat)
//{
// yield return new ValidationResult($"不支持来源{Source.GetDescription()}", new[] { nameof(Source) });
//}
yield return new ValidationResult("设备号不能为空", new[] { nameof(DeviceUniqueNo) });
}
yield break;

View File

@@ -94,18 +94,10 @@ public class OrderService : BaseOrderService, IOrderService
try
{
(await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == gainfo.No).AnyAsync()).ThrowIfFalse("余额不足,无法消费");
(await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == gainfo.No).AnyAsync())
.ThrowIfFalse("余额不足,无法消费");
//消费
if (request.Type == BalanceRecordTypeEnumType.Out)
{
await ConsumeAsync(request.Adapt<ConsumeRequest>(), gainfo);
}
//充值
else
{
await RechargeAsync(request.Adapt<RechargeRequest>(), gainfo);
}
await ConsumeAsync(request.Adapt<ConsumeRequest>(), gainfo);
}
catch (Exception ex)
{
@@ -408,70 +400,6 @@ public class OrderService : BaseOrderService, IOrderService
.ExecuteCommandAsync();
}
/// <summary>
/// 充值
/// </summary>
/// <param name="request"></param>
/// <param name="gainfo"></param>
/// <returns></returns>
private async Task RechargeAsync(RechargeRequest request, GainfoEntity gainfo)
{
var order = new CanteenOrderEntity
{
RequestJson = request.ToJson(),
IsOffline = false,
ThirdNo = request.ThirdNo,
Type = BalanceRecordTypeEnumType.In,
Name = gainfo.Name,
Source = request.Source,
UserNo = gainfo.No,
UserCode = gainfo.Code,
Amount = request.Amount,
BusinessPlaceCode = null,
BusinessShiftCode = null,
CostDate = DateTime.Now.Date,
CostId = gainfo.CostId,
DepartmentNo = gainfo.DepartmentNo,
DeviceUniqueNo = string.Empty,
No = SnowFlakeHelper.Instance.NextId().ToString(),
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
IsCostCrossTenant = false,
OriginTenantId = gainfo.Factory,//人员可能跨基地消费
Status = BalanceRecordStatusEnumType.Valid,
OrderStatus = CanteenOrderStatusEnumType.Wait,
CostDateTime = request.CostDateTime,
//标识当前消费的基地
TenantId = gainfo.Factory,
};
var orderId = await DbContext.InsertReturnIdentityAsync(order);
try
{
await GenerateRechargeRecordAsync(orderId);
}
catch (Exception ex)
{
await DbContext.Updateable<CanteenOrderEntity>()
.SetColumns(x => x.OrderStatus == CanteenOrderStatusEnumType.Failure)
.SetColumns(x => x.Result == ex.Message)
.Where(x => x.Id == orderId)
.ExecuteCommandAsync();
throw;
}
await DbContext.Updateable<CanteenOrderEntity>()
.SetColumns(x => x.OrderStatus == CanteenOrderStatusEnumType.Success)
.Where(x => x.Id == orderId)
.ExecuteCommandAsync();
}
public async Task<Pagination<OrderAggregationResponse>> GetOrdersAggregationAsync(PageDto page)
{
@@ -606,37 +534,6 @@ public class OrderService : BaseOrderService, IOrderService
}
/// <summary>
/// 生成消费记录
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
/// <exception cref="VersionExceptions"></exception>
private async Task GenerateRechargeRecordAsync(long orderId)
{
var order = await DbContext.Queryable<CanteenOrderEntity>().Where(x => x.Id == orderId).FirstAsync();
await CommonHelper.RetryAsync(async () =>
{
var canteenUser = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
//金额+-
canteenUser.Balance += order.Amount;
await DbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == canteenUser.Balance)
.SetColumns(x => x.Version == x.Version + 1)
.SetColumns(x => x.ModifiedTime == DateTime.Now)
.Where(x => x.UserNo == order.UserNo && x.Version == canteenUser.Version)
.ExecuteCommandThrowVersionAsync();
//写入记录
var balanceRecord = order.Adapt<BalanceRecordEntity>();
await DbContext.InsertAsync(balanceRecord);
}, 5);
}
/// <summary>
/// 生成充值记录
/// </summary>