From ca367c376fc74f80bb1060cc1383327d1943ae76 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 20 Jun 2026 11:01:37 -0700 Subject: [PATCH] feat(crm):新增 contact/business 的 list-by-customer 接口(含 @CrmPermission 数据权限) --- yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java | 11 +++++++++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java | 11 +++++++++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java | 4 ++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java | 8 ++++++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java | 6 ++++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java | 8 ++++++++ yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java | 6 ++++++ 7 files changed, 54 insertions(+), 0 deletions(-) diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java index 33e8d84..817e66a 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java @@ -138,6 +138,17 @@ public class CrmBusinessController { .setCustomerId(business.getCustomerId()))); } + @GetMapping("/list-by-customer") + @Operation(summary = "获得商机列表,基于指定客户") + @Parameter(name = "customerId", description = "客户编号", required = true) + @PreAuthorize("@ss.hasPermission('crm:business:query')") + public CommonResult> getBusinessListByCustomer(@RequestParam("customerId") Long customerId) { + List list = businessService.getBusinessListByCustomerId(customerId); + return success(convertList(list, business -> // 只返回 id、name 字段 + new CrmBusinessRespVO().setId(business.getId()).setName(business.getName()) + .setCustomerId(business.getCustomerId()))); + } + @GetMapping("/page") @Operation(summary = "获得商机分页") @PreAuthorize("@ss.hasPermission('crm:business:query')") diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java index 58ea20d..1ff695c 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java @@ -114,6 +114,17 @@ public class CrmContactController { .setCustomerId(contact.getCustomerId()))); } + @GetMapping("/list-by-customer") + @Operation(summary = "获得联系人列表,基于指定客户") + @Parameter(name = "customerId", description = "客户编号", required = true) + @PreAuthorize("@ss.hasPermission('crm:contact:query')") + public CommonResult> getContactListByCustomer(@RequestParam("customerId") Long customerId) { + List list = contactService.getContactListByCustomerId(customerId); + return success(convertList(list, contact -> // 只返回 id、name 字段 + new CrmContactRespVO().setId(contact.getId()).setName(contact.getName()) + .setCustomerId(contact.getCustomerId()))); + } + @GetMapping("/page") @Operation(summary = "获得联系人分页") @PreAuthorize("@ss.hasPermission('crm:contact:query')") diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java index 894ab32..cc6d598 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java @@ -65,6 +65,10 @@ public interface CrmBusinessMapper extends BaseMapperX { .eq(CrmBusinessDO::getOwnerUserId, ownerUserId)); } + default List selectListByCustomerId(Long customerId) { + return selectList(CrmBusinessDO::getCustomerId, customerId); + } + default PageResult selectPage(CrmStatisticsFunnelReqVO pageVO) { return selectPage(pageVO, new LambdaQueryWrapperX() .in(CrmBusinessDO::getOwnerUserId, pageVO.getUserIds()) diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java index abe5a70..ff1ce4d 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java @@ -196,6 +196,14 @@ public interface CrmBusinessService { List getBusinessListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId); /** + * 获得商机列表,基于指定客户 + * + * @param customerId 客户编号 + * @return 商机列表 + */ + List getBusinessListByCustomerId(Long customerId); + + /** * 获得商机分页,目前用于【数据统计】 * * @param pageVO 请求 diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java index 71b1884..1609843 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java @@ -378,6 +378,12 @@ public class CrmBusinessServiceImpl implements CrmBusinessService { } @Override + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#customerId", level = CrmPermissionLevelEnum.READ) + public List getBusinessListByCustomerId(Long customerId) { + return businessMapper.selectListByCustomerId(customerId); + } + + @Override public PageResult getBusinessPageByDate(CrmStatisticsFunnelReqVO pageVO) { return businessMapper.selectPage(pageVO); } diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java index 971d413..3095c73 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java @@ -169,4 +169,12 @@ public interface CrmContactService { */ List getContactListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId); + /** + * 获得联系人列表,基于指定客户 + * + * @param customerId 客户编号 + * @return 联系人列表 + */ + List getContactListByCustomerId(Long customerId); + } diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java index c3855f7..def0fe7 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java @@ -304,4 +304,10 @@ public class CrmContactServiceImpl implements CrmContactService { return contactMapper.selectListByCustomerIdOwnerUserId(customerId, ownerUserId); } + @Override + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#customerId", level = CrmPermissionLevelEnum.READ) + public List getContactListByCustomerId(Long customerId) { + return contactMapper.selectListByCustomerId(customerId); + } + } -- libgit2 0.21.4