Budget oldBudget = budgetService.getById(budget.getBId()); String tokenSha256 = DigestUtils.sha256Hex(JwtTokenUtil.getToken()); LoginSysUserVo loginSysUserVo = (LoginSysUserVo) redisTemplate.opsForValue().get(tokenSha256); if (loginSysUserVo == null) { return ApiResult.ok(null); } budget.setUpdatedBy(loginSysUserVo.getId()); // 校验金额 boolean flag = budgetService.updateBudget(budget);这段代码中怎么添加一个对状态的判断不让被修改
时间: 2024-02-20 12:55:59 浏览: 355
AdaLoRA Adaptive Budget Allocation for PEFT.pdf
要在这段代码中添加一个对状态的判断,可以在 `budgetService.updateBudget(budget)` 前添加一个判断,判断当前的状态是否允许修改。具体的实现方法会根据状态的定义和业务逻辑而不同,以下是一个可能的实现示例:
```
Budget oldBudget = budgetService.getById(budget.getBId());
String tokenSha256 = DigestUtils.sha256Hex(JwtTokenUtil.getToken());
LoginSysUserVo loginSysUserVo = (LoginSysUserVo) redisTemplate.opsForValue().get(tokenSha256);
if (loginSysUserVo == null) {
return ApiResult.ok(null);
}
// 判断状态是否允许修改
if (oldBudget.getStatus() == BudgetStatus.FROZEN) {
return ApiResult.fail("该预算已被冻结,无法修改。");
}
budget.setUpdatedBy(loginSysUserVo.getId());
// 校验金额
boolean flag = budgetService.updateBudget(budget);
```
在上述代码中,我们添加了一个判断,判断当前的预算状态是否为 `FROZEN`,如果是,则返回一个失败的结果。这样就可以避免状态为冻结的预算被修改了。需要注意,这里的 `BudgetStatus` 是一个自定义的枚举类型,用来表示预算的不同状态。具体的实现方法会根据业务逻辑而不同。
阅读全文