Commit 7a8ffd9ccb6b8ee434ea79f917aa249b2a9a4694

Authored by puhui999
1 parent 91dd61ed

CRM-商机:完善获取权限过滤后的分页数据

Showing 14 changed files with 96 additions and 24 deletions
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/CrmBusinessController.java
@@ -71,8 +71,7 @@ public class CrmBusinessController { @@ -71,8 +71,7 @@ public class CrmBusinessController {
71 @Operation(summary = "获得商机分页") 71 @Operation(summary = "获得商机分页")
72 @PreAuthorize("@ss.hasPermission('crm:business:query')") 72 @PreAuthorize("@ss.hasPermission('crm:business:query')")
73 public CommonResult<PageResult<CrmBusinessRespVO>> getBusinessPage(@Valid CrmBusinessPageReqVO pageVO) { 73 public CommonResult<PageResult<CrmBusinessRespVO>> getBusinessPage(@Valid CrmBusinessPageReqVO pageVO) {
74 - PageResult<CrmBusinessDO> pageResult = businessService.getBusinessPage(pageVO);  
75 - 74 + PageResult<CrmBusinessDO> pageResult = businessService.getBusinessPage(pageVO, getLoginUserId());
76 return success(CrmBusinessConvert.INSTANCE.convertPage(pageResult)); 75 return success(CrmBusinessConvert.INSTANCE.convertPage(pageResult));
77 } 76 }
78 77
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/business/CrmBusinessConvert.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.crm.convert.business; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.crm.convert.business;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.*; 4 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.*;
5 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO; 5 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
  6 +import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionPageReqBO;
6 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO; 7 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO;
7 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
8 import org.mapstruct.Mapping; 9 import org.mapstruct.Mapping;
@@ -37,4 +38,6 @@ public interface CrmBusinessConvert { @@ -37,4 +38,6 @@ public interface CrmBusinessConvert {
37 }) 38 })
38 CrmTransferPermissionReqBO convert(CrmBusinessTransferReqVO reqVO, Long userId); 39 CrmTransferPermissionReqBO convert(CrmBusinessTransferReqVO reqVO, Long userId);
39 40
  41 + CrmPermissionPageReqBO convert(CrmBusinessPageReqVO pageReqVO);
  42 +
40 } 43 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/permission/CrmPermissionDO.java
@@ -24,6 +24,12 @@ import lombok.*; @@ -24,6 +24,12 @@ import lombok.*;
24 public class CrmPermissionDO extends BaseDO { 24 public class CrmPermissionDO extends BaseDO {
25 25
26 /** 26 /**
  27 + * 当数据变为公海数据时,也就是数据团队成员中没有负责人的时候,将原本的负责人 userId 设置为 POOL_USER_ID 方便查询公海数据。
  28 + * 也就是说每条数据到最后都有一个负责人,如果有人领取则 userId 为领取人
  29 + */
  30 + public static final Long POOL_USER_ID = 0L;
  31 +
  32 + /**
27 * ID 33 * ID
28 */ 34 */
29 @TableId 35 @TableId
@@ -38,12 +44,12 @@ public class CrmPermissionDO extends BaseDO { @@ -38,12 +44,12 @@ public class CrmPermissionDO extends BaseDO {
38 private Long bizId; 44 private Long bizId;
39 /** 45 /**
40 * 团队成员,关联 AdminUser#id 46 * 团队成员,关联 AdminUser#id
  47 + * 如果为公海数据的话会干掉此数据的负责人后设置为 {@link #POOL_USER_ID},领取人则上位负责人
  48 + * 例:客户放入公海后会干掉团队成员中的负责人,而其他团队成员则不受影响
41 */ 49 */
42 private Long userId; 50 private Long userId;
43 /** 51 /**
44 * 权限级别,关联 {@link CrmPermissionLevelEnum} 52 * 权限级别,关联 {@link CrmPermissionLevelEnum}
45 - * 如果为公海数据的话会干掉此数据的负责人,领取人则上位负责人  
46 - * 例:客户放入公海后会干掉团队成员中的负责人,而其他团队成员则不受影响  
47 */ 53 */
48 private Integer permissionLevel; 54 private Integer permissionLevel;
49 55
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/CrmBusinessMapper.java
1 package cn.iocoder.yudao.module.crm.dal.mysql.business; 1 package cn.iocoder.yudao.module.crm.dal.mysql.business;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.CrmBusinessExportReqVO; 5 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.CrmBusinessExportReqVO;
@@ -8,6 +7,7 @@ import cn.iocoder.yudao.module.crm.controller.admin.business.vo.CrmBusinessPageR @@ -8,6 +7,7 @@ import cn.iocoder.yudao.module.crm.controller.admin.business.vo.CrmBusinessPageR
8 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO; 7 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
9 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
10 9
  10 +import java.util.Collection;
11 import java.util.List; 11 import java.util.List;
12 12
13 /** 13 /**
@@ -18,8 +18,9 @@ import java.util.List; @@ -18,8 +18,9 @@ import java.util.List;
18 @Mapper 18 @Mapper
19 public interface CrmBusinessMapper extends BaseMapperX<CrmBusinessDO> { 19 public interface CrmBusinessMapper extends BaseMapperX<CrmBusinessDO> {
20 20
21 - default PageResult<CrmBusinessDO> selectPage(CrmBusinessPageReqVO reqVO) {  
22 - return selectPage(reqVO, new LambdaQueryWrapperX<CrmBusinessDO>() 21 + default List<CrmBusinessDO> selectList(CrmBusinessPageReqVO reqVO, Collection<Long> ids) {
  22 + return selectList(new LambdaQueryWrapperX<CrmBusinessDO>()
  23 + .in(CrmBusinessDO::getId, ids)
23 .likeIfPresent(CrmBusinessDO::getName, reqVO.getName()) 24 .likeIfPresent(CrmBusinessDO::getName, reqVO.getName())
24 .orderByDesc(CrmBusinessDO::getId)); 25 .orderByDesc(CrmBusinessDO::getId));
25 } 26 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/permission/CrmPermissionMapper.java
1 package cn.iocoder.yudao.module.crm.dal.mysql.permission; 1 package cn.iocoder.yudao.module.crm.dal.mysql.permission;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
5 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; 6 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
6 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum; 7 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
  8 +import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionPageReqBO;
7 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
8 10
9 import java.util.List; 11 import java.util.List;
@@ -57,4 +59,10 @@ public interface CrmPermissionMapper extends BaseMapperX&lt;CrmPermissionDO&gt; { @@ -57,4 +59,10 @@ public interface CrmPermissionMapper extends BaseMapperX&lt;CrmPermissionDO&gt; {
57 .eq(CrmPermissionDO::getUserId, userId)); 59 .eq(CrmPermissionDO::getUserId, userId));
58 } 60 }
59 61
  62 + default PageResult<CrmPermissionDO> selectPage(CrmPermissionPageReqBO pageReqBO) {
  63 + return selectPage(pageReqBO, new LambdaQueryWrapperX<CrmPermissionDO>()
  64 + .eq(CrmPermissionDO::getBizType, pageReqBO.getBizType())
  65 + .eq(CrmPermissionDO::getUserId, pageReqBO.getUserId())); // 只要是团队成员都有读取的权限
  66 + }
  67 +
60 } 68 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/core/aop/CrmPermissionAspect.java
@@ -81,7 +81,8 @@ public class CrmPermissionAspect { @@ -81,7 +81,8 @@ public class CrmPermissionAspect {
81 } 81 }
82 if (isRead(permissionLevel)) { // 读权限 82 if (isRead(permissionLevel)) { // 读权限
83 // 如果没有数据权限或没有负责人则表示此记录为公海数据所有人都有只读权限可以领取成为负责人(团队成员领取的) 83 // 如果没有数据权限或没有负责人则表示此记录为公海数据所有人都有只读权限可以领取成为负责人(团队成员领取的)
84 - if (CollUtil.isEmpty(bizPermissions) || !CollUtil.anyMatch(bizPermissions, item -> isOwner(item.getPermissionLevel()))) { 84 + if (CollUtil.isEmpty(bizPermissions) || CollUtil.anyMatch(bizPermissions,
  85 + item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID))) { // 详见 CrmPermissionDO.POOL_USER_ID 注释
85 return; 86 return;
86 } 87 }
87 if (isRead(userPermission.getPermissionLevel())) { // 校验当前用户是否有读权限 88 if (isRead(userPermission.getPermissionLevel())) { // 校验当前用户是否有读权限
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessService.java
@@ -58,9 +58,10 @@ public interface CrmBusinessService { @@ -58,9 +58,10 @@ public interface CrmBusinessService {
58 * 获得商机分页 58 * 获得商机分页
59 * 59 *
60 * @param pageReqVO 分页查询 60 * @param pageReqVO 分页查询
  61 + * @param userId 用户编号
61 * @return 商机分页 62 * @return 商机分页
62 */ 63 */
63 - PageResult<CrmBusinessDO> getBusinessPage(CrmBusinessPageReqVO pageReqVO); 64 + PageResult<CrmBusinessDO> getBusinessPage(CrmBusinessPageReqVO pageReqVO, Long userId);
64 65
65 /** 66 /**
66 * 获得商机列表, 用于 Excel 导出 67 * 获得商机列表, 用于 Excel 导出
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.*; 6 import cn.iocoder.yudao.module.crm.controller.admin.business.vo.*;
7 import cn.iocoder.yudao.module.crm.convert.business.CrmBusinessConvert; 7 import cn.iocoder.yudao.module.crm.convert.business.CrmBusinessConvert;
8 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO; 8 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
  9 +import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
9 import cn.iocoder.yudao.module.crm.dal.mysql.business.CrmBusinessMapper; 10 import cn.iocoder.yudao.module.crm.dal.mysql.business.CrmBusinessMapper;
10 import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 11 import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission;
11 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum; 12 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
@@ -19,8 +20,10 @@ import org.springframework.validation.annotation.Validated; @@ -19,8 +20,10 @@ import org.springframework.validation.annotation.Validated;
19 import javax.annotation.Resource; 20 import javax.annotation.Resource;
20 import java.util.Collection; 21 import java.util.Collection;
21 import java.util.List; 22 import java.util.List;
  23 +import java.util.Set;
22 24
23 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  26 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
24 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.BUSINESS_NOT_EXISTS; 27 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.BUSINESS_NOT_EXISTS;
25 28
26 /** 29 /**
@@ -98,8 +101,18 @@ public class CrmBusinessServiceImpl implements CrmBusinessService { @@ -98,8 +101,18 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
98 } 101 }
99 102
100 @Override 103 @Override
101 - public PageResult<CrmBusinessDO> getBusinessPage(CrmBusinessPageReqVO pageReqVO) {  
102 - return businessMapper.selectPage(pageReqVO); 104 + public PageResult<CrmBusinessDO> getBusinessPage(CrmBusinessPageReqVO pageReqVO, Long userId) {
  105 + // 1. 获取当前用户能看的分页数据
  106 + PageResult<CrmPermissionDO> permissionPage = crmPermissionService.getPermissionPage(
  107 + CrmBusinessConvert.INSTANCE.convert(pageReqVO).setBizType(CrmBizTypeEnum.CRM_BUSINESS.getType()).setUserId(userId));
  108 + Set<Long> ids = convertSet(permissionPage.getList(), CrmPermissionDO::getBizId);
  109 + if (CollUtil.isEmpty(ids)) { // 没得说明没有什么给他看的
  110 + return PageResult.empty();
  111 + }
  112 +
  113 + // 2. 获取商机分页数据
  114 + List<CrmBusinessDO> businessList = businessMapper.selectList(pageReqVO, ids);
  115 + return new PageResult<>(businessList, (long) businessList.size());
103 } 116 }
104 117
105 @Override 118 @Override
@@ -114,7 +127,7 @@ public class CrmBusinessServiceImpl implements CrmBusinessService { @@ -114,7 +127,7 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
114 validateBusinessExists(reqVO.getId()); 127 validateBusinessExists(reqVO.getId());
115 128
116 // 2. 数据权限转移 129 // 2. 数据权限转移
117 - crmPermissionService.transferCrmPermission( 130 + crmPermissionService.transferPermission(
118 CrmBusinessConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_BUSINESS.getType())); 131 CrmBusinessConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_BUSINESS.getType()));
119 132
120 // 3. TODO 记录转移日志 133 // 3. TODO 记录转移日志
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/ContactServiceImpl.java
@@ -115,7 +115,7 @@ public class ContactServiceImpl implements ContactService { @@ -115,7 +115,7 @@ public class ContactServiceImpl implements ContactService {
115 validateContactExists(reqVO.getId()); 115 validateContactExists(reqVO.getId());
116 116
117 // 2. 数据权限转移 117 // 2. 数据权限转移
118 - crmPermissionService.transferCrmPermission( 118 + crmPermissionService.transferPermission(
119 ContactConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CONTACTS.getType())); 119 ContactConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CONTACTS.getType()));
120 120
121 // 3. TODO 记录转移日志 121 // 3. TODO 记录转移日志
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/ContractServiceImpl.java
@@ -113,7 +113,7 @@ public class ContractServiceImpl implements ContractService { @@ -113,7 +113,7 @@ public class ContractServiceImpl implements ContractService {
113 validateContractExists(reqVO.getId()); 113 validateContractExists(reqVO.getId());
114 114
115 // 2. 数据权限转移 115 // 2. 数据权限转移
116 - crmPermissionService.transferCrmPermission( 116 + crmPermissionService.transferPermission(
117 ContractConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CONTRACT.getType())); 117 ContractConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CONTRACT.getType()));
118 118
119 // 3. TODO 记录转移日志 119 // 3. TODO 记录转移日志
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
@@ -136,7 +136,7 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { @@ -136,7 +136,7 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
136 validateCustomer(reqVO.getId()); 136 validateCustomer(reqVO.getId());
137 137
138 // 2. 数据权限转移 138 // 2. 数据权限转移
139 - crmPermissionService.transferCrmPermission( 139 + crmPermissionService.transferPermission(
140 CrmCustomerConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType())); 140 CrmCustomerConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType()));
141 141
142 // 3. TODO 记录转移日志 142 // 3. TODO 记录转移日志
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionService.java
1 package cn.iocoder.yudao.module.crm.service.permission; 1 package cn.iocoder.yudao.module.crm.service.permission;
2 2
3 3
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; 5 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
5 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum; 6 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
6 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 7 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
  8 +import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionPageReqBO;
7 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateReqBO; 9 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateReqBO;
8 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO; 10 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO;
9 11
@@ -59,19 +61,18 @@ public interface CrmPermissionService { @@ -59,19 +61,18 @@ public interface CrmPermissionService {
59 List<CrmPermissionDO> getPermissionByBizTypeAndBizId(Integer bizType, Long bizId); 61 List<CrmPermissionDO> getPermissionByBizTypeAndBizId(Integer bizType, Long bizId);
60 62
61 /** 63 /**
62 - * 获取数据权限列表,通过 数据类型 x 用户编号 64 + * 数据权限转移
63 * 65 *
64 - * @param bizType 数据类型,关联 {@link CrmBizTypeEnum}  
65 - * @param userId 用户编号  
66 - * @return Crm 数据权限列表 66 + * @param crmTransferPermissionReqBO 数据权限转移请求
67 */ 67 */
68 - List<CrmPermissionDO> getPermissionByBizTypeAndUserId(Integer bizType, Long userId); 68 + void transferPermission(@Valid CrmTransferPermissionReqBO crmTransferPermissionReqBO);
69 69
70 /** 70 /**
71 - * 数据权限转移 71 + * 获取数据权限分页数据
72 * 72 *
73 - * @param crmTransferPermissionReqBO 数据权限转移请求 73 + * @param pageReqBO 分页请求
  74 + * @return 数据权限分页数据
74 */ 75 */
75 - void transferCrmPermission(@Valid CrmTransferPermissionReqBO crmTransferPermissionReqBO); 76 + PageResult<CrmPermissionDO> getPermissionPage(CrmPermissionPageReqBO pageReqBO);
76 77
77 } 78 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
@@ -2,12 +2,14 @@ package cn.iocoder.yudao.module.crm.service.permission; @@ -2,12 +2,14 @@ package cn.iocoder.yudao.module.crm.service.permission;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.crm.convert.permission.CrmPermissionConvert; 6 import cn.iocoder.yudao.module.crm.convert.permission.CrmPermissionConvert;
6 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; 7 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
7 import cn.iocoder.yudao.module.crm.dal.mysql.permission.CrmPermissionMapper; 8 import cn.iocoder.yudao.module.crm.dal.mysql.permission.CrmPermissionMapper;
8 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum; 9 import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
9 import cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum; 10 import cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum;
10 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 11 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
  12 +import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionPageReqBO;
11 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateReqBO; 13 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateReqBO;
12 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO; 14 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmTransferPermissionReqBO;
13 import cn.iocoder.yudao.module.system.api.user.AdminUserApi; 15 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
@@ -86,7 +88,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { @@ -86,7 +88,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
86 88
87 89
88 @Override 90 @Override
89 - public void transferCrmPermission(CrmTransferPermissionReqBO transferReqBO) { 91 + public void transferPermission(CrmTransferPermissionReqBO transferReqBO) {
90 // 1. 校验数据权限-是否是负责人,只有负责人才可以转移 92 // 1. 校验数据权限-是否是负责人,只有负责人才可以转移
91 CrmPermissionDO oldPermission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(transferReqBO.getBizType(), 93 CrmPermissionDO oldPermission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(transferReqBO.getBizType(),
92 transferReqBO.getBizId(), transferReqBO.getUserId()); 94 transferReqBO.getBizId(), transferReqBO.getUserId());
@@ -131,4 +133,9 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { @@ -131,4 +133,9 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
131 crmPermissionMapper.deleteById(oldPermission.getId()); // 移除 133 crmPermissionMapper.deleteById(oldPermission.getId()); // 移除
132 } 134 }
133 135
  136 + @Override
  137 + public PageResult<CrmPermissionDO> getPermissionPage(CrmPermissionPageReqBO pageReqBO) {
  138 + return crmPermissionMapper.selectPage(pageReqBO);
  139 + }
  140 +
134 } 141 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/bo/CrmPermissionPageReqBO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.crm.service.permission.bo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  5 +import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
  6 +import io.swagger.v3.oas.annotations.media.Schema;
  7 +import lombok.Data;
  8 +import lombok.EqualsAndHashCode;
  9 +import lombok.ToString;
  10 +
  11 +import javax.validation.constraints.NotNull;
  12 +
  13 +@Schema(description = "管理后台 - CRM 数据权限分页 Request BO")
  14 +@Data
  15 +@EqualsAndHashCode(callSuper = true)
  16 +@ToString(callSuper = true)
  17 +public class CrmPermissionPageReqBO extends PageParam {
  18 +
  19 + /**
  20 + * 当前登录用户编号
  21 + */
  22 + @NotNull(message = "用户编号不能为空")
  23 + private Long userId;
  24 +
  25 + /**
  26 + * Crm 类型
  27 + */
  28 + @NotNull(message = "Crm 类型不能为空")
  29 + @InEnum(CrmBizTypeEnum.class)
  30 + private Integer bizType;
  31 +
  32 +}