CRM:【线索】使用工具类替换stream操作

This commit is contained in:
min 2024-01-20 13:55:05 +08:00
parent fea84deca0
commit ba4f9207e2

View File

@ -3,7 +3,9 @@ package cn.iocoder.yudao.module.crm.service.clue;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.crm.controller.admin.clue.vo.CrmCluePageReqVO; import cn.iocoder.yudao.module.crm.controller.admin.clue.vo.CrmCluePageReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.clue.vo.CrmClueSaveReqVO; import cn.iocoder.yudao.module.crm.controller.admin.clue.vo.CrmClueSaveReqVO;
@ -25,11 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.Collection; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@ -145,19 +143,16 @@ public class CrmClueServiceImpl implements CrmClueService {
List<CrmClueDO> clues = getClueList(clueIds, userId); List<CrmClueDO> clues = getClueList(clueIds, userId);
if (CollUtil.isEmpty(clues) || ObjectUtil.notEqual(clues.size(), clueIds.size())) { if (CollUtil.isEmpty(clues) || ObjectUtil.notEqual(clues.size(), clueIds.size())) {
clueIds.removeAll(convertSet(clues, CrmClueDO::getId)); clueIds.removeAll(convertSet(clues, CrmClueDO::getId));
// TODO @min可以使用 StrUtil.join(",", clueIds) 简化这种常见操作 throw exception(CLUE_ANY_CLUE_NOT_EXISTS, StrUtil.join(",", clueIds));
throw exception(CLUE_ANY_CLUE_NOT_EXISTS, clueIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
} }
// 过滤出未转化的客户 // 过滤出未转化的客户
// TODO @min1存在已经转化的直接提示哈避免操作的用户以为都转化成功了2常见的过滤逻辑可以使用 CollectionUtils.filterList() List<CrmClueDO> unTransformClues = CollectionUtils.filterList(clues,
List<CrmClueDO> unTransformClues = clues.stream() clue -> ObjectUtil.notEqual(Boolean.TRUE, clue.getTransformStatus()));
.filter(clue -> ObjectUtil.notEqual(Boolean.TRUE, clue.getTransformStatus())).toList(); // 存在已经转化的直接提示哈避免操作的用户以为都转化成功了
// 传入的线索中包含已经转化的情况抛出业务异常
if (ObjectUtil.notEqual(clues.size(), unTransformClues.size())) { if (ObjectUtil.notEqual(clues.size(), unTransformClues.size())) {
// TODO @min可以使用 StrUtil.join(",", clueIds) 简化这种常见操作
clueIds.removeAll(convertSet(unTransformClues, CrmClueDO::getId)); clueIds.removeAll(convertSet(unTransformClues, CrmClueDO::getId));
throw exception(CLUE_ANY_CLUE_ALREADY_TRANSLATED, clueIds.stream().map(String::valueOf).collect(Collectors.joining(","))); throw exception(CLUE_ANY_CLUE_ALREADY_TRANSLATED, StrUtil.join(",", clueIds));
} }
// 遍历线索(未转化的线索)创建对应的客户 // 遍历线索(未转化的线索)创建对应的客户