From 93eabb4efd61c74065bdec3223211dac2943a980 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 20 Jun 2026 21:56:22 -0700 Subject: [PATCH] feat(crm):新增 list-by-contact 接口,适配 admin uniapp 不分页下拉 --- yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java | 9 +++++++++ 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 | 12 ++++++++++++ 3 files changed, 29 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 817e66a..84d31ab 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 @@ -149,6 +149,15 @@ public class CrmBusinessController { .setCustomerId(business.getCustomerId()))); } + @GetMapping("/list-by-contact") + @Operation(summary = "获得商机列表,基于指定联系人") + @Parameter(name = "contactId", description = "联系人编号", required = true) + @PreAuthorize("@ss.hasPermission('crm:business:query')") + public CommonResult> getBusinessListByContact(@RequestParam("contactId") Long contactId) { + List list = businessService.getBusinessListByContact(contactId); + return success(buildBusinessDetailList(list)); + } + @GetMapping("/page") @Operation(summary = "获得商机分页") @PreAuthorize("@ss.hasPermission('crm:business:query')") 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 ff1ce4d..67a6cf3 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 @@ -204,6 +204,14 @@ public interface CrmBusinessService { List getBusinessListByCustomerId(Long customerId); /** + * 获得商机列表,基于指定联系人 + * + * @param contactId 联系人编号 + * @return 商机列表 + */ + List getBusinessListByContact(Long contactId); + + /** * 获得商机分页,目前用于【数据统计】 * * @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 1609843..49f2314 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 @@ -384,6 +384,18 @@ public class CrmBusinessServiceImpl implements CrmBusinessService { } @Override + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CONTACT, bizId = "#contactId", level = CrmPermissionLevelEnum.READ) + public List getBusinessListByContact(Long contactId) { + // 1. 查询关联的商机编号 + List contactBusinessList = contactBusinessService.getContactBusinessListByContactId(contactId); + if (CollUtil.isEmpty(contactBusinessList)) { + return ListUtil.empty(); + } + // 2. 查询商机列表 + return businessMapper.selectByIds(convertSet(contactBusinessList, CrmContactBusinessDO::getBusinessId)); + } + + @Override public PageResult getBusinessPageByDate(CrmStatisticsFunnelReqVO pageVO) { return businessMapper.selectPage(pageVO); } -- libgit2 0.21.4