if(CollUtil.isNotEmpty( list )){ list.stream().forEach( u->{ AuthorLayerTagValue authorLayerTagValue = authorLayerTagValueDao.findOne(u.getUsername()); authorLayerTagValue.setVipRealPrice( authorLayerTagValue.getVipRealPrice().add( BigDecimal.ONE )); authorLayerTagValueDao.upsert( authorLayerTagValue ); } ); }
时间: 2024-04-29 22:20:18 浏览: 83
这段代码使用了Java 8的lambda表达式和Stream API,对一个List集合进行了遍历,并对每个元素进行了操作。具体来说:
1. 使用CollUtil.isNotEmpty()方法判断list集合是否为空,如果不为空则执行下面的操作。
2. 调用list.stream()方法将list转换为一个Stream对象,然后调用forEach()方法对每个元素进行操作。
3. 对于每个元素u,通过authorLayerTagValueDao.findOne()方法在数据库中查找对应的AuthorLayerTagValue对象,并将其保存在authorLayerTagValue变量中。
4. 调用authorLayerTagValue.getVipRealPrice().add(BigDecimal.ONE)方法,将AuthorLayerTagValue对象的vipRealPrice属性加上1,并返回一个新的BigDecimal对象。
5. 将新的BigDecimal对象设置回AuthorLayerTagValue对象的vipRealPrice属性中。
6. 调用authorLayerTagValueDao.upsert()方法更新AuthorLayerTagValue对象到数据库中。
这段代码的作用是将list中每个元素对应的AuthorLayerTagValue对象的vipRealPrice属性加上1,并更新到数据库中。
相关问题
if ((!CollUtil.isNotEmpty(saveSelfRestraintList) || internalSelfRestraintProductCodeService.saveBatch(saveSelfRestraintList)) && (!CollUtil.isNotEmpty(updateApplyWorkOrderList) || internalCooperationApplyWorkOrderService.updateBatchById(updateApplyWorkOrderList)) && (!CollUtil.isNotEmpty(deleteApplyWorkOrderList) || internalCooperationApplyWorkOrderService.removeBatchByIds(deleteApplyWorkOrderList)) && (!CollUtil.isNotEmpty(selfRestraintProductCodeList) || internalCooperationApplyWorkProductCodeService.removeBatchByIds(selfRestraintProductCodeList)) && (!CollUtil.isNotEmpty(updateWorkProcedureList) || workProcedureDescService.updateBatchById(updateWorkProcedureList))){ return Result.ok(); }
根据您提供的代码片段,这是一个条件语句,用于判断一系列操作是否成功执行。如果以下条件之一为真,则返回成功的结果(Result.ok()):
1. 若 `saveSelfRestraintList` 不是空集合,并且 `internalSelfRestraintProductCodeService.saveBatch(saveSelfRestraintList)` 执行成功;
2. 若 `updateApplyWorkOrderList` 不是空集合,并且 `internalCooperationApplyWorkOrderService.updateBatchById(updateApplyWorkOrderList)` 执行成功;
3. 若 `deleteApplyWorkOrderList` 不是空集合,并且 `internalCooperationApplyWorkOrderService.removeBatchByIds(deleteApplyWorkOrderList)` 执行成功;
4. 若 `selfRestraintProductCodeList` 不是空集合,并且 `internalCooperationApplyWorkProductCodeService.removeBatchByIds(selfRestraintProductCodeList)` 执行成功;
5. 若 `updateWorkProcedureList` 不是空集合,并且 `workProcedureDescService.updateBatchById(updateWorkProcedureList)` 执行成功。
如果以上所有条件都不满足,将不会返回任何结果。
queryWrapper.nested(subQueryWrapper -> { if (CollUtil.isNotEmpty(subWorkOrderTypeNoList) && CollUtil.isNotEmpty(labelList)) { subQueryWrapper.nested(subQueryWrapper1 -> subQueryWrapper1 .and(subQueryWrapper2 -> subQueryWrapper2 .in(WorkorderEtl::getSubWorkorderTypeNo, subWorkOrderTypeNoList) .or().in(WorkorderEtl::getWorkorderTypeNo, subWorkOrderTypeNoList)) .and(subQueryWrapper2 -> subQueryWrapper2.isNull(WorkorderEtl::getFmWoType) .or().eq(WorkorderEtl::getFmWoType,WorkorderEtlClassifyEnum.OD.getCode()))) .or().nested(subQueryWrapper1 -> subQueryWrapper1.in(WorkorderEtl::getLabelType, labelList) .eq(WorkorderEtl::getFmWoType,WorkorderEtlClassifyEnum.PM.getCode())); } else if (CollUtil.isNotEmpty(subWorkOrderTypeNoList)) { subQueryWrapper .and(subQueryWrapper1 -> subQueryWrapper1 .in(WorkorderEtl::getSubWorkorderTypeNo, subWorkOrderTypeNoList) .or().in(WorkorderEtl::getWorkorderTypeNo, subWorkOrderTypeNoList)) .and(subQueryWrapper2 -> subQueryWrapper2.isNull(WorkorderEtl::getFmWoType).or() .eq(WorkorderEtl::getFmWoType,WorkorderEtlClassifyEnum.OD.getCode())); } else if (CollUtil.isNotEmpty(labelList)) { subQueryWrapper.nested(subQueryWrapper1 -> subQueryWrapper1 .in(WorkorderEtl::getLabelType, labelList) .eq(WorkorderEtl::getFmWoType,WorkorderEtlClassifyEnum.PM.getCode())); } });变成sql语句
你的代码片段是一个使用 QueryWrapper 的嵌套查询。根据提供的代码,无法直接转换为 SQL 语句,因为缺少相关实体类和数据库表的信息。但是,我可以给你提供一个大致的 SQL 查询逻辑。
首先,我们需要明确一些假设:
- `WorkorderEtl` 是一个实体类,映射到数据库表。
- `subWorkOrderTypeNoList` 是一个列表,包含子工单类型编号。
- `labelList` 是一个列表,包含标签类型。
根据你的代码逻辑,以下是大致的 SQL 查询语句:
```sql
SELECT *
FROM table_name
WHERE (
(
(
subWorkorderTypeNo IN (subWorkOrderTypeNoList)
OR workorderTypeNo IN (subWorkOrderTypeNoList)
)
AND (
fmWoType IS NULL
OR fmWoType = 'OD'
)
)
OR (
labelType IN (labelList)
AND fmWoType = 'PM'
)
)
```
请注意,`table_name` 需要替换为你实际使用的数据库表名。
这只是一个基于代码的推测,实际生成的 SQL 语句可能会有所不同。建议在实际环境中测试和验证生成的 SQL 语句是否符合预期,并根据需要进行调整。
阅读全文