fix 金额小于等于零
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user