fix 金额小于等于零

This commit is contained in:
2024-04-10 18:24:51 +08:00
parent 4969717c92
commit fdefadb9db
4 changed files with 4 additions and 48 deletions

View File

@@ -97,19 +97,6 @@ public class BalancesController : ControllerBase
return await _balanceService.GetPageByUserAsync(request); return await _balanceService.GetPageByUserAsync(request);
} }
/// <summary>
/// 作废消费明细
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Authorize(Roles = "admin,tenant-admin")]
[HttpPost("obsoluteOutRecord")]
[Transactional]
public async Task ObsoluteAsync(BalanceRecordObsoluteRequest request)
{
await _balanceService.ObsoluteAsync(request);
}
/// <summary> /// <summary>
/// 根据成本中心 /// 根据成本中心
/// </summary> /// </summary>

View File

@@ -19,13 +19,14 @@ public class BalanceSupplementRequest : IValidatableObject
/// <summary> /// <summary>
/// 补金额数 /// 补金额数
/// </summary> /// </summary>
public decimal Amount { get; set; } public decimal Amount { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
if (Amount == 0) if (Amount > 0)
{ {
yield return new ValidationResult("金额不可为0元", new[] { nameof(Amount) }); yield return new ValidationResult("金额有误", new[] { nameof(Amount) });
} }
} }
} }

View File

@@ -15,8 +15,6 @@ public interface IBalanceService : IScopeDependency
Task SupplementBalanceAsync(BalanceSupplementRequest request); Task SupplementBalanceAsync(BalanceSupplementRequest request);
Task ObsoluteAsync(BalanceRecordObsoluteRequest request);
Task<Pagination<BalanceRecordCostIdResponse>> RecordByCostIdAsync(BalanceRecordPageByCostIdRequest request); Task<Pagination<BalanceRecordCostIdResponse>> RecordByCostIdAsync(BalanceRecordPageByCostIdRequest request);
Task<Pagination<BalanceRecordDetailPageResponse>> RecordPageDetailsAsync(BalanceRecordPageDetailRequest request); Task<Pagination<BalanceRecordDetailPageResponse>> RecordPageDetailsAsync(BalanceRecordPageDetailRequest request);

View File

@@ -177,7 +177,6 @@ public class BalanceService : IBalanceService
newBalanceRecord.Remark = balanceInfo.No + ":" + request.Reason; newBalanceRecord.Remark = balanceInfo.No + ":" + request.Reason;
newBalanceRecord.Status = BalanceRecordStatusEnumType.Valid; newBalanceRecord.Status = BalanceRecordStatusEnumType.Valid;
await _dbContext.Client.Ado.BeginTranAsync(); await _dbContext.Client.Ado.BeginTranAsync();
try try
{ {
@@ -203,7 +202,7 @@ public class BalanceService : IBalanceService
.SetColumns(x => x.ModifiedTime == DateTime.Now) .SetColumns(x => x.ModifiedTime == DateTime.Now)
.Where(x => x.UserCode == balanceInfo.UserCode && x.Version == gainfoMeal.Version) .Where(x => x.UserCode == balanceInfo.UserCode && x.Version == gainfoMeal.Version)
.ExecuteCommandThrowVersionAsync(); .ExecuteCommandThrowVersionAsync();
}); }, 10);
} }
@@ -586,35 +585,6 @@ public class BalanceService : IBalanceService
}; };
} }
public async Task ObsoluteAsync(BalanceRecordObsoluteRequest request)
{
var balanceRecord = await _dbContext.Queryable<BalanceRecordEntity>().Where(x => x.Id == request.Id).SingleAsync();
balanceRecord.ThrowIfNull("记录不存在");
(balanceRecord.Type != BalanceRecordTypeEnumType.Out).ThrowIfTrue("非消费记录,无法操作");
balanceRecord.Status = BalanceRecordStatusEnumType.Obsolute;
balanceRecord.Remark = request.Reason;
await CommonHelper.RetryAsync(async () =>
{
//重算金额
var canteenUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == balanceRecord.UserNo).SingleAsync();
//金额 +
canteenUser.Balance += Math.Abs(balanceRecord.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 == balanceRecord.UserNo && x.Version == canteenUser.Version)
.ExecuteCommandThrowVersionAsync();
await _dbContext.UpdateAsync(balanceRecord);
}, 5);
}
public async Task<ConsumeNumberResponse> GetConsumeNumberAsync() public async Task<ConsumeNumberResponse> GetConsumeNumberAsync()
{ {