diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 7355cb143..3842663ab 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -64,6 +64,8 @@ public enum ErrorCodeEnum { LINE_STATUS_NOT_ALLOW_OPERATE(500010, "当前线索状态不允许该操作!", null), TASK_STATUS_NOT_ALLOW_OPERATE(500011, "当前任务状态不允许该操作!", null), DATELINE_BEFORE_NOW(500012, "截止时间不能早于当前时间!", null), + NO_TRANSFER_REQUIRED(500013, "招商经理现有私海线索无需转让,请检查后重试!", null), + NO_BATCH_TRANSFER_REQUIRED(500014, "已选线索包含此招商经理现有私海线索,无需转让,请检查后重试!", null), PARTNER_MOBILE_EXIST(500010, "手机号码已存在,请核实!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java index 8d3d92380..6bd8b9221 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java @@ -205,4 +205,11 @@ public class HyPartnerLineInfoDAO { return CollectionUtils.isEmpty(partnerList) ? null : partnerList.get(CommonConstants.ZERO); } + public List getHyPartnerLineInfoList( List lineIds,String investmentManager){ + if (CollectionUtils.isEmpty(lineIds)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getHyPartnerLineInfoList(lineIds,investmentManager); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java index 6c7c4ef90..05c447006 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java @@ -234,4 +234,13 @@ public interface HyPartnerLineInfoMapper { */ List getPartnerSimpleInfoByLineIds(@Param("partnerLineIds") List partnerLineIds); + + /** + * 根据线索ID与招商经理查询数据 + * @param lineIds + * @param investmentManager + * @return + */ + List getHyPartnerLineInfoList(@Param("lineIds") List lineIds,String investmentManager); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index e9b89e7bc..79e888ecb 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -685,4 +685,20 @@ a.id in #{lineId} + + + \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 08bb41574..9ba7d9f59 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -170,6 +170,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getLineId()); + //如果招商经理是当前登录用户,则无需转让 + if (request.getUserId().equals(hyPartnerLineInfoDO.getInvestmentManager())){ + throw new ServiceException(ErrorCodeEnum.NO_TRANSFER_REQUIRED); + } hyPartnerLineInfoDAO.updateInvestmentManager(request.getUserId(), Arrays.asList(request.getLineId())); List userIdList = new ArrayList<>(); @@ -213,6 +217,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { if (CollectionUtils.isEmpty(request.getLineIds())||StringUtils.isEmpty(request.getUserId())){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } + List hyPartnerLineInfoList = hyPartnerLineInfoDAO.getHyPartnerLineInfoList(request.getLineIds(), request.getUserId()); + //如果选中的线索中有线索招商经理已经是被装让的招商经理,则不允许批量操作 + if (CollectionUtils.isNotEmpty(hyPartnerLineInfoList)){ + throw new ServiceException(ErrorCodeEnum.NO_BATCH_TRANSFER_REQUIRED); + } for (Long lineId:request.getLineIds()) { TransferInvestmentManagerRequest transferInvestmentManagerRequest = new TransferInvestmentManagerRequest(); transferInvestmentManagerRequest.setUserId(request.getUserId()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java index 6c1a4c5f7..8329ba9f9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java @@ -80,8 +80,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { if (ObjectUtil.isNotNull(hyPartnerUserInfoDO)) { throw new ServiceException(ErrorCodeEnum.PARTNER_MOBILE_EXIST); } - add(request); - return Boolean.TRUE; + return add(request); } @@ -90,7 +89,8 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { * * @param request */ - public void add(AddLineRequest request) { + public boolean add(AddLineRequest request) { + Boolean flag =false; String partnerId = UUIDUtils.get32UUID(); HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO(); resultUser.setUsername(request.getPartnerName()).setMobile(request.getMobile()).setPartnerId(partnerId).setCreateTime(new Date()).setAcceptAdjustType(request.getAcceptAdjustType()) @@ -103,9 +103,10 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { //判断招商经理是否为空 if (StringUtil.isNotEmpty(request.getInvestmentManager())) { resultLine.setInvestmentManager(request.getInvestmentManager()).setLineStatus(LineStatusEnum.PRIVATE_SEAS.getCode()); + flag=true; } else { //是否分配跟进人 - Boolean flag = hyPartnerLineInfoService.assignFollowUser(partnerId, request.getWantShopArea(), request.getAcceptAdjustType(), Boolean.TRUE); + flag = hyPartnerLineInfoService.assignFollowUser(partnerId, request.getWantShopArea(), request.getAcceptAdjustType(), Boolean.TRUE); if (flag) { //查询跟进人 String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(partnerId, "intent"); @@ -121,7 +122,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { resultBase.setPartnerId(partnerId).setPartnerLineId(resultLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())). setCreateTime(new Date()).setUsername(request.getPartnerName()).setMobile(request.getMobile()); hyPartnerBaseInfoDAO.insertSelective(resultBase); - + return flag; } @SneakyThrows