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; } // 用户不存在,则进行创建