public boolean updateBudget(Budget budget) throws Exception { return super.updateById(budget);不允许更改状态大于2的
时间: 2024-02-20 11:56:41 浏览: 17
您可以在这个方法中添加一个条件,如果要更新的Budget的状态大于2,则抛出一个自定义的异常,例如:
```java
public boolean updateBudget(Budget budget) throws Exception {
if (budget.getStatus() > 2) {
throw new Exception("不允许更改状态大于2的Budget");
}
return super.updateById(budget);
}
```
这样,在调用该方法时,如果要更新的Budget的状态大于2,就会抛出异常,防止不合法的更新操作。
相关问题
public ApiResult<Budget> updateBudget(@Validated(Update.class) @RequestBody Budget budget) throws Exception { 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.getProjectState()>2) { } budget.setUpdatedBy(loginSysUserVo.getId()); // 校验金额 boolean flag = budgetService.updateBudget(budget);不允许修改的逻辑怎么写
如果状态不允许修改,可以根据具体业务需求进行处理,例如:
```
if (oldBudget.getProjectState() > 2) {
// 状态不允许修改的处理逻辑
return ApiResult.error("当前状态不允许修改预算");
}
```
具体的处理逻辑可以根据项目需求进行修改,上述代码中只是示例。需要注意的是,需要返回一个错误的`ApiResult`对象,其中包含错误信息,以便于前端进行处理。
default boolean updateById(T entity) { return SqlHelper.retBool(this.getBaseMapper().updateById(entity)); }
这段代码是一个默认的updateById方法的实现,用更新数据库中的实体对象。它使用了SqlHelper类中的retBool方法来将updateById方法的返回值转换为boolean类型。
在这个方法中,首先通过getBaseMapper()方法获取到实体对象对应的Mapper对象,然后调用该Mapper对象的updateById方法来更新数据库中的实体对象。updateById方法的返回值是更新操作影响的行数,而SqlHelper.retBool方法则将其转换为boolean类型的结果。
默认的updateById方法通常用于简化编码,可以直接在继承了BaseMapper的自定义Mapper接口中使用。如果需要自定义updateById方法的实现逻辑,可以在自定义的Mapper接口中覆盖默认方法。