Commit a24919e55506bf5cdf98d40563a31fecfe04892d

Authored by Wanwan
1 parent ecf72896

style: 客户 review 修改

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
... ... @@ -5,6 +5,8 @@ import cn.hutool.core.util.NumberUtil;
5 5 import cn.hutool.core.util.ObjectUtil;
6 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  9 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
8 10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
9 11 import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils;
10 12 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
... ... @@ -101,25 +103,10 @@ public class CrmCustomerController {
101 103 @PreAuthorize("@ss.hasPermission('crm:customer:query')")
102 104 public CommonResult<PageResult<CrmCustomerRespVO>> getCustomerPage(@Valid CrmCustomerPageReqVO pageVO) {
103 105 PageResult<CrmCustomerDO> pageResult = customerService.getCustomerPage(pageVO);
104   - PageResult<CrmCustomerRespVO> pageVo = CrmCustomerConvert.INSTANCE.convertPage(pageResult);
105   - // TODO @wanwan: 可以参考 CollectionUtils.convertListByFlatMap(),目的是简洁
106   - Set<Long> userSet = pageVo.getList().stream().flatMap(i -> Stream.of(NumberUtil.parseLong(i.getCreator()), i.getOwnerUserId())).collect(Collectors.toSet());
  106 + Set<Long> userSet = CollectionUtils.convertSetByFlatMap(pageResult.getList(), i -> Stream.of(NumberUtil.parseLong(i.getCreator()), i.getOwnerUserId()));
107 107 Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userSet);
108 108 Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(userMap.values().stream().map(AdminUserRespDTO::getDeptId).collect(Collectors.toSet()));
109   - // TODO @wanwan:这块可以形成一个 convertPage 方法,default 实现;
110   - pageVo.getList().forEach(customerRespVO -> {
111   - customerRespVO.setAreaName(AreaUtils.format(customerRespVO.getAreaId()));
112   - customerRespVO.setCreatorName(Optional.ofNullable(userMap.get(NumberUtil.parseLong(customerRespVO.getCreator()))).map(AdminUserRespDTO::getNickname).orElse(null));
113   - // TODO @wanwan:可以使用 MapUtils.findAndThen
114   - AdminUserRespDTO ownerUser = userMap.get(customerRespVO.getOwnerUserId());
115   - if (Objects.nonNull(ownerUser)) {
116   - customerRespVO.setOwnerUserName(ownerUser.getNickname());
117   - DeptRespDTO dept = deptMap.get(ownerUser.getDeptId());
118   - if (Objects.nonNull(dept)) {
119   - customerRespVO.setOwnerUserDept(dept.getName());
120   - }
121   - }
122   - });
  109 + PageResult<CrmCustomerRespVO> pageVo = CrmCustomerConvert.INSTANCE.convertPage(pageResult, userMap, deptMap);
123 110 return success(pageVo);
124 111 }
125 112  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/customer/CrmCustomerConvert.java
1 1 package cn.iocoder.yudao.module.crm.convert.customer;
2 2  
  3 +import cn.hutool.core.util.NumberUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  6 +import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils;
4 7 import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.*;
5 8 import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
6 9 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO;
  10 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  11 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
7 12 import org.mapstruct.Mapper;
8 13 import org.mapstruct.Mapping;
9 14 import org.mapstruct.Mappings;
10 15 import org.mapstruct.factory.Mappers;
11 16  
12 17 import java.util.List;
  18 +import java.util.Map;
  19 +import java.util.Objects;
  20 +import java.util.Optional;
13 21  
14 22 /**
15 23 * 客户 Convert
... ... @@ -29,6 +37,21 @@ public interface CrmCustomerConvert {
29 37  
30 38 PageResult<CrmCustomerRespVO> convertPage(PageResult<CrmCustomerDO> page);
31 39  
  40 + default PageResult<CrmCustomerRespVO> convertPage(PageResult<CrmCustomerDO> page, Map<Long, AdminUserRespDTO> userMap, Map<Long, DeptRespDTO> deptMap) {
  41 + PageResult<CrmCustomerRespVO> result = convertPage(page);
  42 + result.getList().forEach(customerRespVO -> {
  43 + customerRespVO.setAreaName(AreaUtils.format(customerRespVO.getAreaId()));
  44 + MapUtils.findAndThen(userMap, NumberUtil.parseLong(customerRespVO.getCreator()), creator ->
  45 + customerRespVO.setCreatorName(creator.getNickname()));
  46 + MapUtils.findAndThen(userMap, customerRespVO.getOwnerUserId(), ownerUser -> {
  47 + customerRespVO.setOwnerUserName(ownerUser.getNickname());
  48 + MapUtils.findAndThen(deptMap, ownerUser.getDeptId(), dept ->
  49 + customerRespVO.setOwnerUserDept(dept.getName()));
  50 + });
  51 + });
  52 + return result;
  53 + }
  54 +
32 55 List<CrmCustomerExcelVO> convertList02(List<CrmCustomerDO> list);
33 56  
34 57 @Mappings({
... ...