Commit 55a215da44481a9116bdae824d018dda45afaacd

Authored by puhui999
1 parent 3e91ac73

CRM-数据权限:完善数据权限补全管理员和公海相关情况处理逻辑

Showing 14 changed files with 66 additions and 30 deletions
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/permission/CrmPermissionController.java
@@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.crm.controller.admin.permission.vo.CrmPermissionR @@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.crm.controller.admin.permission.vo.CrmPermissionR
8 import cn.iocoder.yudao.module.crm.controller.admin.permission.vo.CrmPermissionUpdateReqVO; 8 import cn.iocoder.yudao.module.crm.controller.admin.permission.vo.CrmPermissionUpdateReqVO;
9 import cn.iocoder.yudao.module.crm.convert.permission.CrmPermissionConvert; 9 import cn.iocoder.yudao.module.crm.convert.permission.CrmPermissionConvert;
10 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; 10 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
11 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission;  
12 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 11 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
  12 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
13 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 13 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
14 import cn.iocoder.yudao.module.system.api.dept.DeptApi; 14 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
15 import cn.iocoder.yudao.module.system.api.dept.PostApi; 15 import cn.iocoder.yudao.module.system.api.dept.PostApi;
@@ -21,12 +21,12 @@ import io.swagger.v3.oas.annotations.Operation; @@ -21,12 +21,12 @@ import io.swagger.v3.oas.annotations.Operation;
21 import io.swagger.v3.oas.annotations.Parameter; 21 import io.swagger.v3.oas.annotations.Parameter;
22 import io.swagger.v3.oas.annotations.Parameters; 22 import io.swagger.v3.oas.annotations.Parameters;
23 import io.swagger.v3.oas.annotations.tags.Tag; 23 import io.swagger.v3.oas.annotations.tags.Tag;
  24 +import jakarta.annotation.Resource;
  25 +import jakarta.validation.Valid;
24 import org.springframework.security.access.prepost.PreAuthorize; 26 import org.springframework.security.access.prepost.PreAuthorize;
25 import org.springframework.validation.annotation.Validated; 27 import org.springframework.validation.annotation.Validated;
26 import org.springframework.web.bind.annotation.*; 28 import org.springframework.web.bind.annotation.*;
27 29
28 -import jakarta.annotation.Resource;  
29 -import jakarta.validation.Valid;  
30 import java.util.*; 30 import java.util.*;
31 31
32 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 32 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/core/package-info.java deleted
1 -package cn.iocoder.yudao.module.crm.framework.core;  
2 \ No newline at end of file 0 \ No newline at end of file
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/core/annotations/CrmPermission.java renamed to yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/permission/core/annotations/CrmPermission.java
1 -package cn.iocoder.yudao.module.crm.framework.core.annotations; 1 +package cn.iocoder.yudao.module.crm.framework.permission.core.annotations;
2 2
3 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 3 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
4 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 4 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/core/aop/CrmPermissionAspect.java renamed to yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/permission/core/aop/CrmPermissionAspect.java
1 -package cn.iocoder.yudao.module.crm.framework.core.aop; 1 +package cn.iocoder.yudao.module.crm.framework.permission.core.aop;
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.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
  6 +import cn.hutool.extra.spring.SpringUtil;
6 import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils; 7 import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils;
7 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 8 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
8 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; 9 import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
9 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission;  
10 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 10 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
11 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 11 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
  12 +import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionRoleCodeEnum;
  13 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
12 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 14 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
  15 +import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
  16 +import jakarta.annotation.Resource;
13 import lombok.extern.slf4j.Slf4j; 17 import lombok.extern.slf4j.Slf4j;
14 import org.aspectj.lang.JoinPoint; 18 import org.aspectj.lang.JoinPoint;
15 import org.aspectj.lang.annotation.Aspect; 19 import org.aspectj.lang.annotation.Aspect;
16 import org.aspectj.lang.annotation.Before; 20 import org.aspectj.lang.annotation.Before;
17 import org.springframework.stereotype.Component; 21 import org.springframework.stereotype.Component;
18 22
19 -import jakarta.annotation.Resource;  
20 import java.util.ArrayList; 23 import java.util.ArrayList;
21 import java.util.List; 24 import java.util.List;
22 import java.util.Map; 25 import java.util.Map;
23 26
24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 27 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  28 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch;
25 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; 29 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
26 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CRM_PERMISSION_DENIED; 30 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CRM_PERMISSION_DENIED;
27 -import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CRM_PERMISSION_MODEL_NOT_EXISTS;  
28 31
29 -// TODO 这个包,改成 permission,然后搞 config 和 core 包,这个类在 core 包里;目的是:framework 最好分类下  
30 /** 32 /**
31 * Crm 数据权限校验 AOP 切面 33 * Crm 数据权限校验 AOP 切面
32 * 34 *
@@ -42,10 +44,6 @@ public class CrmPermissionAspect { @@ -42,10 +44,6 @@ public class CrmPermissionAspect {
42 44
43 @Before("@annotation(crmPermission)") 45 @Before("@annotation(crmPermission)")
44 public void doBefore(JoinPoint joinPoint, CrmPermission crmPermission) { 46 public void doBefore(JoinPoint joinPoint, CrmPermission crmPermission) {
45 - // TODO 芋艿:临时,方便大家调试  
46 - //if (true) {  
47 - // return;  
48 - //}  
49 // 获取相关属性值 47 // 获取相关属性值
50 Map<String, Object> expressionValues = parseExpressions(joinPoint, crmPermission); 48 Map<String, Object> expressionValues = parseExpressions(joinPoint, crmPermission);
51 Integer bizType = StrUtil.isEmpty(crmPermission.bizTypeValue()) ? 49 Integer bizType = StrUtil.isEmpty(crmPermission.bizTypeValue()) ?
@@ -53,16 +51,28 @@ public class CrmPermissionAspect { @@ -53,16 +51,28 @@ public class CrmPermissionAspect {
53 Long bizId = (Long) expressionValues.get(crmPermission.bizId()); // 模块数据编号 51 Long bizId = (Long) expressionValues.get(crmPermission.bizId()); // 模块数据编号
54 Integer permissionLevel = crmPermission.level().getLevel(); // 需要的权限级别 52 Integer permissionLevel = crmPermission.level().getLevel(); // 需要的权限级别
55 53
56 - // TODO 如果是超级管理员则直接通过  
57 - //if (superAdmin){  
58 - // return;  
59 - //}  
60 -  
61 - // 1. 获取数据权限 54 + // 1.1 如果是超级管理员则直接通过
  55 + if (validateAdminUser(getUserId())) {
  56 + return;
  57 + }
  58 + // 1.2 获取数据权限
62 List<CrmPermissionDO> bizPermissions = crmPermissionService.getPermissionListByBiz(bizType, bizId); 59 List<CrmPermissionDO> bizPermissions = crmPermissionService.getPermissionListByBiz(bizType, bizId);
63 - if (CollUtil.isEmpty(bizPermissions)) { // 数据权限不存存那么数据也不存在  
64 - throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType)); 60 + if (CollUtil.isEmpty(bizPermissions)) { // 没有数据权限的情况
  61 + // 公海数据如果没有团队成员大家也因该有读权限才对
  62 + if (CrmPermissionLevelEnum.isRead(permissionLevel)) {
  63 + return;
  64 + }
  65 +
  66 + // 没有数据权限的情况下超出了读权限直接报错,避免后面校验空指针
  67 + throw exception(CRM_PERMISSION_DENIED, CrmBizTypeEnum.getNameByType(bizType));
  68 + } else { // 有数据权限但是没有负责人的情况
  69 + if (!anyMatch(bizPermissions, item -> CrmPermissionLevelEnum.isOwner(item.getLevel()))) {
  70 + if (CrmPermissionLevelEnum.isRead(permissionLevel)) {
  71 + return;
  72 + }
  73 + }
65 } 74 }
  75 +
66 // 2.1 情况一:如果自己是负责人,则默认有所有权限 76 // 2.1 情况一:如果自己是负责人,则默认有所有权限
67 CrmPermissionDO userPermission = CollUtil.findOne(bizPermissions, permission -> ObjUtil.equal(permission.getUserId(), getUserId())); 77 CrmPermissionDO userPermission = CollUtil.findOne(bizPermissions, permission -> ObjUtil.equal(permission.getUserId(), getUserId()));
68 if (userPermission != null) { 78 if (userPermission != null) {
@@ -110,4 +120,29 @@ public class CrmPermissionAspect { @@ -110,4 +120,29 @@ public class CrmPermissionAspect {
110 return SpringExpressionUtils.parseExpressions(joinPoint, expressionStrings); 120 return SpringExpressionUtils.parseExpressions(joinPoint, expressionStrings);
111 } 121 }
112 122
  123 + /**
  124 + * 校验用户是否是 CRM 管理员
  125 + *
  126 + * @param userId 用户编号
  127 + * @return 是/否
  128 + */
  129 + private static boolean validateAdminUser(Long userId) {
  130 + return SingletonManager.getPermissionApi().hasAnyRoles(userId, CrmPermissionRoleCodeEnum.CRM_ADMIN.getCode());
  131 + }
  132 +
  133 + /**
  134 + * 静态内部类实现单例获取
  135 + *
  136 + * @author HUIHUI
  137 + */
  138 + private static class SingletonManager {
  139 +
  140 + private static final PermissionApi PERMISSION_API = SpringUtil.getBean(PermissionApi.class);
  141 +
  142 + public static PermissionApi getPermissionApi() {
  143 + return PERMISSION_API;
  144 + }
  145 +
  146 + }
  147 +
113 } 148 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/permission/core/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.crm.framework.permission.core;
0 \ No newline at end of file 2 \ No newline at end of file
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/permission/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.crm.framework.permission;
0 \ No newline at end of file 2 \ No newline at end of file
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/business/CrmBusinessServiceImpl.java
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO; @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
12 import cn.iocoder.yudao.module.crm.dal.mysql.business.CrmBusinessMapper; 12 import cn.iocoder.yudao.module.crm.dal.mysql.business.CrmBusinessMapper;
13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
15 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 15 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
16 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; 16 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
17 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 17 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
18 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 18 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.clue.CrmClueDO; @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.clue.CrmClueDO;
12 import cn.iocoder.yudao.module.crm.dal.mysql.clue.CrmClueMapper; 12 import cn.iocoder.yudao.module.crm.dal.mysql.clue.CrmClueMapper;
13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
15 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 15 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
16 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; 16 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
17 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 17 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
18 import jakarta.annotation.Resource; 18 import jakarta.annotation.Resource;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactServiceImpl.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contact.CrmContactDO; @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contact.CrmContactDO;
9 import cn.iocoder.yudao.module.crm.dal.mysql.contact.CrmContactMapper; 9 import cn.iocoder.yudao.module.crm.dal.mysql.contact.CrmContactMapper;
10 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 10 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
11 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 11 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
12 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 12 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
13 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; 13 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
14 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 14 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
15 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 15 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contactbusinesslink/CrmContactBusinessLinkServiceImpl.java
@@ -14,7 +14,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contactbusinesslink.CrmContact @@ -14,7 +14,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contactbusinesslink.CrmContact
14 import cn.iocoder.yudao.module.crm.dal.mysql.contactbusinesslink.CrmContactBusinessLinkMapper; 14 import cn.iocoder.yudao.module.crm.dal.mysql.contactbusinesslink.CrmContactBusinessLinkMapper;
15 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 15 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
16 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 16 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
17 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 17 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
18 import cn.iocoder.yudao.module.crm.service.business.CrmBusinessService; 18 import cn.iocoder.yudao.module.crm.service.business.CrmBusinessService;
19 import jakarta.annotation.Resource; 19 import jakarta.annotation.Resource;
20 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO; @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO;
12 import cn.iocoder.yudao.module.crm.dal.mysql.contract.CrmContractMapper; 12 import cn.iocoder.yudao.module.crm.dal.mysql.contract.CrmContractMapper;
13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
15 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 15 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
16 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 16 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
17 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 17 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
18 import jakarta.annotation.Resource; 18 import jakarta.annotation.Resource;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
12 import cn.iocoder.yudao.module.crm.dal.mysql.customer.CrmCustomerMapper; 12 import cn.iocoder.yudao.module.crm.dal.mysql.customer.CrmCustomerMapper;
13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 13 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 14 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
15 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 15 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
16 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 16 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
17 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 17 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
18 import cn.iocoder.yudao.module.system.api.user.AdminUserApi; 18 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
@@ -15,7 +15,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.CrmReceivablePlanDO @@ -15,7 +15,7 @@ import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.CrmReceivablePlanDO
15 import cn.iocoder.yudao.module.crm.dal.mysql.receivable.CrmReceivablePlanMapper; 15 import cn.iocoder.yudao.module.crm.dal.mysql.receivable.CrmReceivablePlanMapper;
16 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 16 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
17 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 17 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
18 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 18 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
19 import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; 19 import cn.iocoder.yudao.module.crm.service.contract.CrmContractService;
20 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; 20 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
21 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 21 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivableServiceImpl.java
@@ -18,7 +18,7 @@ import cn.iocoder.yudao.module.crm.dal.mysql.receivable.CrmReceivableMapper; @@ -18,7 +18,7 @@ import cn.iocoder.yudao.module.crm.dal.mysql.receivable.CrmReceivableMapper;
18 import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum; 18 import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum;
19 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; 19 import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum;
20 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; 20 import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum;
21 -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; 21 +import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
22 import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; 22 import cn.iocoder.yudao.module.crm.service.contract.CrmContractService;
23 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; 23 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
24 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 24 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;