Commit ca367c376fc74f80bb1060cc1383327d1943ae76

Authored by YunaiV
1 parent 296eb22b

feat(crm):新增 contact/business 的 list-by-customer 接口(含 @CrmPermission 数据权限)

yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java
... ... @@ -138,6 +138,17 @@ public class CrmBusinessController {
138 138 .setCustomerId(business.getCustomerId())));
139 139 }
140 140  
  141 + @GetMapping("/list-by-customer")
  142 + @Operation(summary = "获得商机列表,基于指定客户")
  143 + @Parameter(name = "customerId", description = "客户编号", required = true)
  144 + @PreAuthorize("@ss.hasPermission('crm:business:query')")
  145 + public CommonResult<List<CrmBusinessRespVO>> getBusinessListByCustomer(@RequestParam("customerId") Long customerId) {
  146 + List<CrmBusinessDO> list = businessService.getBusinessListByCustomerId(customerId);
  147 + return success(convertList(list, business -> // 只返回 id、name 字段
  148 + new CrmBusinessRespVO().setId(business.getId()).setName(business.getName())
  149 + .setCustomerId(business.getCustomerId())));
  150 + }
  151 +
141 152 @GetMapping("/page")
142 153 @Operation(summary = "获得商机分页")
143 154 @PreAuthorize("@ss.hasPermission('crm:business:query')")
... ...
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/CrmContactController.java
... ... @@ -114,6 +114,17 @@ public class CrmContactController {
114 114 .setCustomerId(contact.getCustomerId())));
115 115 }
116 116  
  117 + @GetMapping("/list-by-customer")
  118 + @Operation(summary = "获得联系人列表,基于指定客户")
  119 + @Parameter(name = "customerId", description = "客户编号", required = true)
  120 + @PreAuthorize("@ss.hasPermission('crm:contact:query')")
  121 + public CommonResult<List<CrmContactRespVO>> getContactListByCustomer(@RequestParam("customerId") Long customerId) {
  122 + List<CrmContactDO> list = contactService.getContactListByCustomerId(customerId);
  123 + return success(convertList(list, contact -> // 只返回 id、name 字段
  124 + new CrmContactRespVO().setId(contact.getId()).setName(contact.getName())
  125 + .setCustomerId(contact.getCustomerId())));
  126 + }
  127 +
117 128 @GetMapping("/page")
118 129 @Operation(summary = "获得联系人分页")
119 130 @PreAuthorize("@ss.hasPermission('crm:contact:query')")
... ...
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&lt;CrmBusinessDO&gt; {
65 65 .eq(CrmBusinessDO::getOwnerUserId, ownerUserId));
66 66 }
67 67  
  68 + default List<CrmBusinessDO> selectListByCustomerId(Long customerId) {
  69 + return selectList(CrmBusinessDO::getCustomerId, customerId);
  70 + }
  71 +
68 72 default PageResult<CrmBusinessDO> selectPage(CrmStatisticsFunnelReqVO pageVO) {
69 73 return selectPage(pageVO, new LambdaQueryWrapperX<CrmBusinessDO>()
70 74 .in(CrmBusinessDO::getOwnerUserId, pageVO.getUserIds())
... ...
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java
... ... @@ -196,6 +196,14 @@ public interface CrmBusinessService {
196 196 List<CrmBusinessDO> getBusinessListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId);
197 197  
198 198 /**
  199 + * 获得商机列表,基于指定客户
  200 + *
  201 + * @param customerId 客户编号
  202 + * @return 商机列表
  203 + */
  204 + List<CrmBusinessDO> getBusinessListByCustomerId(Long customerId);
  205 +
  206 + /**
199 207 * 获得商机分页,目前用于【数据统计】
200 208 *
201 209 * @param pageVO 请求
... ...
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java
... ... @@ -378,6 +378,12 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
378 378 }
379 379  
380 380 @Override
  381 + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#customerId", level = CrmPermissionLevelEnum.READ)
  382 + public List<CrmBusinessDO> getBusinessListByCustomerId(Long customerId) {
  383 + return businessMapper.selectListByCustomerId(customerId);
  384 + }
  385 +
  386 + @Override
381 387 public PageResult<CrmBusinessDO> getBusinessPageByDate(CrmStatisticsFunnelReqVO pageVO) {
382 388 return businessMapper.selectPage(pageVO);
383 389 }
... ...
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java
... ... @@ -169,4 +169,12 @@ public interface CrmContactService {
169 169 */
170 170 List<CrmContactDO> getContactListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId);
171 171  
  172 + /**
  173 + * 获得联系人列表,基于指定客户
  174 + *
  175 + * @param customerId 客户编号
  176 + * @return 联系人列表
  177 + */
  178 + List<CrmContactDO> getContactListByCustomerId(Long customerId);
  179 +
172 180 }
... ...
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java
... ... @@ -304,4 +304,10 @@ public class CrmContactServiceImpl implements CrmContactService {
304 304 return contactMapper.selectListByCustomerIdOwnerUserId(customerId, ownerUserId);
305 305 }
306 306  
  307 + @Override
  308 + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#customerId", level = CrmPermissionLevelEnum.READ)
  309 + public List<CrmContactDO> getContactListByCustomerId(Long customerId) {
  310 + return contactMapper.selectListByCustomerId(customerId);
  311 + }
  312 +
307 313 }
... ...