List<Category> list = categoryService.list(Condition.getQueryWrapper(category).lambda().orderByAsc(Category::getSort));
时间: 2024-05-27 09:10:05 浏览: 19
这段代码使用了 MyBatis-Plus 中的 Lambda API,实现了按照 `Category` 对象中的 `sort` 属性升序排序,并通过 `categoryService.list()` 方法查询数据库中符合条件的记录,最终返回一个 `List<Category>` 类型的列表。其中,`Condition.getQueryWrapper(category)` 用于获取一个查询条件的封装对象,`lambda()` 方法表示使用 Lambda 表达式构建查询条件,`orderByAsc(Category::getSort)` 表示按照 `sort` 属性升序排序。
相关问题
public R<Page> page(int page,int pagesize){ Page<Category> page1=new Page<>(page,pagesize); LambdaQueryWrapper<Category> queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.orderByAsc(Category::getSort); categoryService.page(page1,queryWrapper); return R.success(page1); }解释代码
这段代码是一个方法,名为`page`,它接受两个参数`page`和`pagesize`。它的返回类型是`R<Page>`,其中`R`是一个自定义的通用返回类型,`Page`是一个分页对象。
在方法内部,它首先创建了一个`Page<Category>`对象,传入`page`和`pagesize`作为参数。然后,它创建了一个`LambdaQueryWrapper<Category>`对象,用于构建查询条件。这里使用了Lambda表达式的方式指定了按照`Category`对象的`sort`属性进行升序排序。
接下来,通过调用`categoryService.page(page1, queryWrapper)`方法来执行分页查询操作。这个方法会将查询结果填充到传入的`page1`对象中。
最后,将填充好数据的`page1`对象作为成功的结果进行返回,通过`R.success(page1)`返回一个包含成功状态和数据的通用返回对象。
UserInfo userInfo=userProvider.get(); OrganizeEntity organize = organizeService.getById(userInfo.getDepartmentId()); TreeMap<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMap = tzglInvestmentPlanService.selectProjectDetial(params,organize); for (String key : investmentPlanProjectMap.keySet()) { List<TzglInvestmentPlanProjectModel> projectList = investmentPlanProjectMap.get(key); for (TzglInvestmentPlanProjectModel investmentPlanProject: projectList) { investmentPlanProject.setInvestmentSubjectName(generaterSwapUtil.comSelectValues(investmentPlanProject.getInvestmentSubject())); } } //按照年份分组后,降序排序 TreeMap<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMapDescending = new TreeMap<>(Comparator.reverseOrder()); investmentPlanProjectMapDescending.putAll(investmentPlanProjectMap); return ActionResult.success(investmentPlanProjectMapDescending);优化此代码
可以考虑以下优化:
1. 将获取用户信息和部门信息的代码提取出来,避免在每个方法里都重复获取。
```
UserInfo userInfo = userProvider.get();
OrganizeEntity organize = organizeService.getById(userInfo.getDepartmentId());
```
2. 使用 Stream API 和 lambda 表达式来简化代码。
```
TreeMap<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMap = tzglInvestmentPlanService.selectProjectDetial(params,organize);
investmentPlanProjectMap.forEach((key, projectList) -> projectList.forEach(investmentPlanProject -> investmentPlanProject.setInvestmentSubjectName(generaterSwapUtil.comSelectValues(investmentPlanProject.getInvestmentSubject()))));
TreeMap<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMapDescending = new TreeMap<>(Comparator.reverseOrder());
investmentPlanProjectMapDescending.putAll(investmentPlanProjectMap);
return ActionResult.success(investmentPlanProjectMapDescending);
```
3. 不需要先将 `investmentPlanProjectMap` 存放到一个 TreeMap 中,再进行降序排序。可以直接使用 Stream API 进行分组和排序。
```
Map<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMap = tzglInvestmentPlanService.selectProjectDetial(params,organize);
investmentPlanProjectMap.forEach((key, projectList) -> projectList.forEach(investmentPlanProject -> investmentPlanProject.setInvestmentSubjectName(generaterSwapUtil.comSelectValues(investmentPlanProject.getInvestmentSubject()))));
Map<String, List<TzglInvestmentPlanProjectModel>> investmentPlanProjectMapDescending = investmentPlanProjectMap.entrySet().stream()
.sorted(Map.Entry.<String, List<TzglInvestmentPlanProjectModel>>comparingByKey().reversed())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, TreeMap::new));
return ActionResult.success(investmentPlanProjectMapDescending);
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)