From 8ad99e5f72085d14fd56e8faa7aa36701823c8b5 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 05 十一月 2026 20:16:23 +0800
Subject: [PATCH] feat(crm): 统一客户团队数据权限并放开开票金额上限
---
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
index dbc812e..3052329 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -33,7 +33,6 @@
import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
import cn.iocoder.yudao.module.crm.service.business.CrmBusinessService;
import cn.iocoder.yudao.module.crm.service.contact.CrmContactService;
-import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
@@ -115,8 +114,6 @@
@Resource
private CrmCustomerService customerService;
@Resource
- private CrmCustomerApi customerApi;
- @Resource
private CrmBusinessService businessService;
@Resource
private CrmContactService contactService;
@@ -170,6 +167,9 @@
crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setUserId(contract.getOwnerUserId())
.setBizType(CrmBizTypeEnum.CRM_CONTRACT.getType()).setBizId(contract.getId())
.setLevel(CrmPermissionLevelEnum.OWNER.getLevel()));
+ // 3.1 瀹㈡埛璐熻矗浜鸿嚜鍔ㄦ嫢鏈夎鍚堝悓鐨勮鍐欐潈闄�
+ crmPermissionService.createPermissionForCustomerOwner(CrmBizTypeEnum.CRM_CONTRACT.getType(),
+ contract.getId(), contract.getCustomerId(), contract.getOwnerUserId());
// 4. 璁板綍鎿嶄綔鏃ュ織涓婁笅鏂�
LogRecordContext.putVariable("contract", contract);
@@ -481,10 +481,10 @@
return PageResult.empty();
}
}
- // 2. 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
- List<Long> permittedCustomerIds = customerApi.getPermittedCustomerIds();
- // 3. 鏌ヨ鍒嗛〉
- return contractMapper.selectPage(pageReqVO, userId, config, permittedCustomerIds);
+ // 2. 鏌ヨ鍒嗛〉
+ // 鍚堝悓鍙鎬у畬鍏ㄧ敱 appendPermissionCondition 鎺у埗锛堝悎鍚屽洟闃� 鈭� 瀹㈡埛鍥㈤槦锛夛紝
+ // 涓嶅啀棰濆鎸夈�屾湁鏉冮檺鐨勫鎴枫�嶈繃婊わ紝鍚﹀垯涓嶅湪瀹㈡埛鍥㈤槦銆佷絾灞炰簬鍚堝悓璐熻矗浜�/鍚堝悓鍥㈤槦鐨勭敤鎴蜂細琚敊璇繃婊ゆ帀
+ return contractMapper.selectPage(pageReqVO, userId, config);
}
@Override
@@ -718,6 +718,9 @@
if (!products.isEmpty() || contract.getTotalPrice() == null) calculateTotalPrice(contract, validateContractProducts(products));
contractMapper.insert(contract);
crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CONTRACT.getType()).setBizId(contract.getId()).setUserId(ownerId).setLevel(CrmPermissionLevelEnum.OWNER.getLevel()));
+ // 瀹㈡埛璐熻矗浜鸿嚜鍔ㄦ嫢鏈夎鍚堝悓鐨勮鍐欐潈闄�
+ crmPermissionService.createPermissionForCustomerOwner(CrmBizTypeEnum.CRM_CONTRACT.getType(),
+ contract.getId(), customer.getId(), ownerId);
} else {
contract.setId(existing.getId());
List<CrmContractProductDO> amountDetails = products.isEmpty()
--
Gitblit v1.9.3