From a87fcc60346dfc799bd3c2cddc7acfffb105cb61 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 13 十月 2026 14:34:00 +0800
Subject: [PATCH] feat(crm): 客户公海可见度控制功能实现
---
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java | 33 +++++++++++++++------------------
1 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
index 756a962..52fedcb 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
@@ -9,6 +9,7 @@
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.operatelog.core.util.OperateLogUtils;
import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.CrmBusinessTransferReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.CrmContactTransferReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractTransferReqVO;
@@ -117,8 +118,12 @@
* @return 瀹㈡埛淇℃伅 DO
*/
private static CrmCustomerDO initCustomer(Object customer, Long ownerUserId) {
- return BeanUtils.toBean(customer, CrmCustomerDO.class).setOwnerUserId(ownerUserId)
+ CrmCustomerDO result = BeanUtils.toBean(customer, CrmCustomerDO.class).setOwnerUserId(ownerUserId)
.setOwnerTime(LocalDateTime.now());
+ if (result.getAutoPoolEnabled() == null) {
+ result.setAutoPoolEnabled(true);
+ }
+ return result;
}
@Override
@@ -291,6 +296,8 @@
}
@Override
+ @LogRecord(type = CRM_CUSTOMER_TYPE, subType = CRM_CUSTOMER_IMPORT_SUB_TYPE, bizNo = "0",
+ success = CRM_CUSTOMER_IMPORT_SUCCESS)
public CrmCustomerImportRespVO importCustomerList(List<CrmCustomerImportExcelVO> importCustomers,
CrmCustomerImportReqVO importReqVO) {
// 鏍¢獙闈炵┖
@@ -322,8 +329,6 @@
permissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType())
.setBizId(customer.getId()).setUserId(importReqVO.getOwnerUserId()).setLevel(CrmPermissionLevelEnum.OWNER.getLevel()));
}
- // 1.3 璁板綍鎿嶄綔鏃ュ織
- getSelf().importCustomerLog(customer, false);
return;
}
@@ -338,23 +343,11 @@
.setId(existCustomer.getId());
customerMapper.updateById(updateCustomer);
respVO.getUpdateCustomerNames().add(importCustomer.getName());
- // 2.2 璁板綍鎿嶄綔鏃ュ織
- getSelf().importCustomerLog(updateCustomer, true);
});
+ // 璁板綍瀵煎叆缁撴灉姹囨�伙紝渚� @LogRecord 鐨� success 鏂囨寮曠敤
+ OperateLogUtils.putImportSummary(respVO.getCreateCustomerNames(), respVO.getUpdateCustomerNames(),
+ respVO.getFailureCustomerNames());
return respVO;
- }
-
- /**
- * 璁板綍瀵煎叆瀹㈡埛鏃剁殑鎿嶄綔鏃ュ織
- *
- * @param customer 瀹㈡埛淇℃伅
- * @param isUpdate 鏄惁鏇存柊锛泃rue - 鏇存柊锛宖alse - 鏂板
- */
- @LogRecord(type = CRM_CUSTOMER_TYPE, subType = CRM_CUSTOMER_IMPORT_SUB_TYPE, bizNo = "{{#customer.id}}",
- success = CRM_CUSTOMER_IMPORT_SUCCESS)
- public void importCustomerLog(CrmCustomerDO customer, boolean isUpdate) {
- LogRecordContext.putVariable("customer", customer);
- LogRecordContext.putVariable("isUpdate", isUpdate);
}
// ==================== 鍏捣鐩稿叧鎿嶄綔 ====================
@@ -394,6 +387,10 @@
adminUserApi.validateUserList(singletonList(ownerUserId));
// 1.3 鏍¢獙鐘舵��
customers.forEach(customer -> {
+ // 鍏抽棴鍏捣鍙搴︾殑瀹㈡埛涓嶈兘閫氳繃缂栧彿鐩存帴棰嗗彇鎴栧垎閰嶃��
+ if (Boolean.FALSE.equals(customer.getAutoPoolEnabled())) {
+ throw exception(CRM_PERMISSION_DENIED, CrmBizTypeEnum.CRM_CUSTOMER.getName());
+ }
// 鏍¢獙鏄惁宸叉湁璐熻矗浜�
validateCustomerOwnerExists(customer, false);
// 鏍¢獙鏄惁閿佸畾
--
Gitblit v1.9.3