From 8169e1525d87a54a9402837b237f8600e6bba54f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=99=E9=A3=8E=E9=81=93=E9=AA=A8=E5=B0=8F=E5=8D=8A?= =?UTF-8?q?=E4=BB=99=E5=84=BF?= <414571696@qq.com> Date: Thu, 20 Mar 2025 21:46:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E4=BC=9A=E5=91=98=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=97=B6=E6=B7=BB=E5=8A=A0=E6=98=AF=E5=90=A6=E5=B7=B2=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=AE=A2=E6=88=B7=E7=9A=84=E5=88=A4=E6=96=AD=EF=BC=9A?= =?UTF-8?q?=201.=20=E5=AD=98=E5=9C=A8=E5=AE=A2=E6=88=B7=E5=88=99=E4=B8=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BD=92=E5=B1=9E=202.=20=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=AE=A2=E6=88=B7=E5=88=99=E5=8D=95=E7=8B=AC=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AE=A2=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/crm/api/customer/CrmCustomerApi.java | 2 +- .../yudao/module/crm/enums/ErrorCodeConstants.java | 1 + .../module/crm/dal/mysql/customer/CrmCustomerMapper.java | 4 ++++ .../crm/service/customer/CrmCustomerServiceImpl.java | 9 ++++++++- .../member/service/user/MemberUserServiceImpl.java | 5 +++-- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java index 5849e86fb6..ff27acb03e 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java @@ -5,7 +5,7 @@ import jakarta.validation.constraints.NotNull; public interface CrmCustomerApi { /** - * 执行真正的邮件发送 + * 执行创建CRM客户方法,巾用在member会员注册时 * 注意,该方法仅仅提供给 MQ Consumer 使用 * * @param mobile 手机号 diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java index 07a6dad60d..3a05701969 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java @@ -65,6 +65,7 @@ public interface ErrorCodeConstants { ErrorCode CUSTOMER_CREATE_NAME_NOT_NULL = new ErrorCode(1_020_006_013, "客户名称不能为空!"); ErrorCode CUSTOMER_NAME_EXISTS = new ErrorCode(1_020_006_014, "已存在名为【{}】的客户!"); ErrorCode CUSTOMER_UPDATE_DEAL_STATUS_FAIL = new ErrorCode(1_020_006_015, "更新客户的成交状态失败,原因:已经是该状态,无需更新"); + ErrorCode CUSTOMERCREATE_NAME_EXISTS = new ErrorCode(1_020_006_016, "会员创建已存在手机号为【{}】的客户"); // ========== 权限管理 1_020_007_000 ========== ErrorCode CRM_PERMISSION_NOT_EXISTS = new ErrorCode(1_020_007_000, "数据权限不存在"); diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java index 6be1186772..dadcbb5ea5 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java @@ -88,6 +88,10 @@ public interface CrmCustomerMapper extends BaseMapperX { return selectOne(CrmCustomerDO::getName, name); } + default CrmCustomerDO selectByCustomerMobile(String mobile) { + return selectOne(CrmCustomerDO::getMobile, mobile); + } + default PageResult selectPutPoolRemindCustomerPage(CrmCustomerPageReqVO pageReqVO, CrmCustomerPoolConfigDO poolConfig, Long ownerUserId) { diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java index ed7e35ad0e..d77b35cc62 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java @@ -671,6 +671,13 @@ public class CrmCustomerServiceImpl implements CrmCustomerService, CrmCustomerAp createReqVO.setId(null); createReqVO.setMobile(mobile); + // TODO AN 假如已有会员,需要判断CRM中手机号是否已经存在客户 + // 如果存在则放弃创建,不更新关联负责人, + // 如果不存在则单独创建客户 + CrmCustomerDO customer = customerMapper.selectByCustomerMobile(mobile); + if (customer != null) { + throw exception(CUSTOMERCREATE_NAME_EXISTS,customer.getMobile()); + } // 邀请码是否为空判断 if (StrUtil.isNotBlank(invitationCode)) { @@ -687,7 +694,7 @@ public class CrmCustomerServiceImpl implements CrmCustomerService, CrmCustomerAp validateCustomerExceedOwnerLimit(createReqVO.getOwnerUserId(), 1); // 2. 插入客户 - CrmCustomerDO customer = initCustomer(createReqVO, createReqVO.getOwnerUserId()); + customer = initCustomer(createReqVO, createReqVO.getOwnerUserId()); customerMapper.insert(customer); // 3. 创建数据权限 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 93d005f13e..7e51c89d3e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -103,10 +103,11 @@ public class MemberUserServiceImpl implements MemberUserService { @Override @Transactional(rollbackFor = Exception.class) public MemberUserDO createUserAndCustomerIfAbsent(String mobile, String registerIp, Integer terminal,String invitationCode) { - // 用户已经存在 + // 用户是否存在 MemberUserDO user = memberUserMapper.selectByMobile(mobile); if (user != null) { - // 如果会员不为空,则查询CRM客户是否存在,ri + //如果会员不为空,该方法回查询CRM客户是否存在,不存在则单独插入CRM客户信息 + registerProducer.sendRegisterSendMessage(mobile, registerIp,invitationCode); return user; } // 用户不存在,则进行创建