Commit 4dab376ca968941b99ca75029193698ae36f00fb

Authored by zhijiantianya@gmail.com
1 parent 9f1b92ab

code review:数据权限的实现

Showing 50 changed files with 80 additions and 66 deletions
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
... ... @@ -34,6 +34,7 @@ public interface ErrorCodeConstants {
34 34 // ========== 客户管理 1_020_006_000 ==========
35 35 ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_020_006_000, "客户不存在");
36 36  
  37 + // TODO @puhui999:权限管理???
37 38 // ========== 客户管理 1_020_007_000 ==========
38 39 ErrorCode CRM_PERMISSION_NOT_EXISTS = new ErrorCode(1_020_007_000, "数据权限不存在");
39 40 ErrorCode CRM_PERMISSION_DENIED = new ErrorCode(1_020_007_001, "{}操作失败,原因:没有权限");
... ...
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/common/TransferTypeEnum.java
... ... @@ -6,6 +6,7 @@ import lombok.Getter;
6 6  
7 7 import java.util.Arrays;
8 8  
  9 +// TODO @puhui999:这个可以不用哈
9 10 /**
10 11 * Crm 负责人转移后原负责人的处理方式
11 12 *
... ... @@ -17,6 +18,7 @@ public enum TransferTypeEnum implements IntArrayValuable {
17 18  
18 19 REMOVE(1, "移除"),
19 20 TEAM(2, "转为团队成员");
  21 +
20 22 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TransferTypeEnum::getType).toArray();
21 23  
22 24 /**
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/ContactController.java
... ... @@ -26,7 +26,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
26 26 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
27 27 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
28 28  
29   -@Tag(name = "管理后台 - crm联系人")
  29 +@Tag(name = "管理后台 - CRM 联系人")
30 30 @RestController
31 31 @RequestMapping("/crm/contact")
32 32 @Validated
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactCreateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5 import lombok.EqualsAndHashCode;
6 6 import lombok.ToString;
7 7  
8   -@Schema(description = "管理后台 - crm联系人创建 Request VO")
  8 +@Schema(description = "管理后台 - CRM 联系人创建 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactExportReqVO.java
... ... @@ -9,7 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
9 9  
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11  
12   -@Schema(description = "管理后台 - crm联系人 Excel 导出 Request VO,参数和 ContactPageReqVO 是一致的")
  12 +@Schema(description = "管理后台 - CRM 联系人 Excel 导出 Request VO,参数和 ContactPageReqVO 是一致的")
13 13 @Data
14 14 public class ContactExportReqVO {
15 15  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactPageReqVO.java
... ... @@ -11,7 +11,7 @@ import java.time.LocalDateTime;
11 11  
12 12 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
13 13  
14   -@Schema(description = "管理后台 - crm联系人分页 Request VO")
  14 +@Schema(description = "管理后台 - CRM 联系人分页 Request VO")
15 15 @Data
16 16 @EqualsAndHashCode(callSuper = true)
17 17 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactRespVO.java
... ... @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.*;
5 5 import java.time.LocalDateTime;
6 6  
7   -@Schema(description = "管理后台 - crm联系人 Response VO")
  7 +@Schema(description = "管理后台 - CRM 联系人 Response VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactUpdateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5 import lombok.EqualsAndHashCode;
6 6 import lombok.ToString;
7 7  
8   -@Schema(description = "管理后台 - crm联系人更新 Request VO")
  8 +@Schema(description = "管理后台 - CRM 联系人更新 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/CrmTransferContactReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5  
6 6 import javax.validation.constraints.NotNull;
7 7  
8   -@Schema(description = "管理后台 - 联系人转移 Request VO")
  8 +@Schema(description = "管理后台 - CRM 联系人转移 Request VO")
9 9 @Data
10 10 public class CrmTransferContactReqVO {
11 11  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/ContractController.java
... ... @@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 25 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
26 26 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
27 27  
28   -@Tag(name = "管理后台 - 合同")
  28 +@Tag(name = "管理后台 - CRM 合同")
29 29 @RestController
30 30 @RequestMapping("/crm/contract")
31 31 @Validated
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/package-info.java deleted
1   -/**
2   - * 合同
3   - */
4   -package cn.iocoder.yudao.module.crm.controller.admin.contract;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractCreateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5 import lombok.EqualsAndHashCode;
6 6 import lombok.ToString;
7 7  
8   -@Schema(description = "管理后台 - 合同创建 Request VO")
  8 +@Schema(description = "管理后台 - CRM 合同创建 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractExcelVO.java
... ... @@ -6,7 +6,7 @@ import lombok.Data;
6 6 import java.time.LocalDateTime;
7 7  
8 8 /**
9   - * 合同 Excel VO
  9 + * CRM 合同 Excel VO
10 10 *
11 11 * @author dhb52
12 12 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractExportReqVO.java
... ... @@ -8,7 +8,7 @@ import java.time.LocalDateTime;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@Schema(description = "管理后台 - 合同 Excel 导出 Request VO,参数和 ContractPageReqVO 是一致的")
  11 +@Schema(description = "管理后台 - CRM 合同 Excel 导出 Request VO,参数和 ContractPageReqVO 是一致的")
12 12 @Data
13 13 public class ContractExportReqVO {
14 14  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractPageReqVO.java
... ... @@ -11,7 +11,7 @@ import java.time.LocalDateTime;
11 11  
12 12 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
13 13  
14   -@Schema(description = "管理后台 - 合同分页 Request VO")
  14 +@Schema(description = "管理后台 - CRM 合同分页 Request VO")
15 15 @Data
16 16 @EqualsAndHashCode(callSuper = true)
17 17 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractRespVO.java
... ... @@ -7,7 +7,7 @@ import lombok.ToString;
7 7  
8 8 import java.time.LocalDateTime;
9 9  
10   -@Schema(description = "管理后台 - 合同 Response VO")
  10 +@Schema(description = "管理后台 - CRM 合同 Response VO")
11 11 @Data
12 12 @EqualsAndHashCode(callSuper = true)
13 13 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/ContractUpdateReqVO.java
... ... @@ -7,7 +7,7 @@ import lombok.ToString;
7 7  
8 8 import javax.validation.constraints.NotNull;
9 9  
10   -@Schema(description = "管理后台 - 合同更新 Request VO")
  10 +@Schema(description = "管理后台 - CRM 合同更新 Request VO")
11 11 @Data
12 12 @EqualsAndHashCode(callSuper = true)
13 13 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/vo/CrmTransferContractReqVO.java
... ... @@ -5,7 +5,8 @@ import lombok.Data;
5 5  
6 6 import javax.validation.constraints.NotNull;
7 7  
8   -@Schema(description = "管理后台 - 合同转移 Request VO")
  8 +// TODO @puhui999:CrmContractTransferReqVO,模块名字要放前面;看看还有没其它类似的
  9 +@Schema(description = "管理后台 - CRM 合同转移 Request VO")
9 10 @Data
10 11 public class CrmTransferContractReqVO {
11 12  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
... ... @@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 25 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
26 26 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
27 27  
28   -@Tag(name = "管理后台 - 客户")
  28 +@Tag(name = "管理后台 - CRM 客户")
29 29 @RestController
30 30 @RequestMapping("/crm/customer")
31 31 @Validated
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerCreateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5 import lombok.EqualsAndHashCode;
6 6 import lombok.ToString;
7 7  
8   -@Schema(description = "管理后台 - 客户创建 Request VO")
  8 +@Schema(description = "管理后台 - CRM 客户创建 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerExcelVO.java
... ... @@ -11,7 +11,7 @@ import java.time.LocalDateTime;
11 11  
12 12 // TODO 芋艿:导出最后做,等基本确认的差不多之后;
13 13 /**
14   - * 客户 Excel VO
  14 + * CRM 客户 Excel VO
15 15 *
16 16 * @author Wanwan
17 17 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerExportReqVO.java
... ... @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.Data;
5 5  
6 6 // TODO 芋艿:导出最后做,等基本确认的差不多之后;
7   -@Schema(description = "管理后台 - 客户 Excel 导出 Request VO,参数和 CrmCustomerPageReqVO 是一致的")
  7 +@Schema(description = "管理后台 - CRM 客户 Excel 导出 Request VO,参数和 CrmCustomerPageReqVO 是一致的")
8 8 @Data
9 9 public class CrmCustomerExportReqVO {
10 10  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerPageReqVO.java
... ... @@ -6,7 +6,7 @@ import lombok.Data;
6 6 import lombok.EqualsAndHashCode;
7 7 import lombok.ToString;
8 8  
9   -@Schema(description = "管理后台 - 客户分页 Request VO")
  9 +@Schema(description = "管理后台 - CRM 客户分页 Request VO")
10 10 @Data
11 11 @EqualsAndHashCode(callSuper = true)
12 12 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerRespVO.java
... ... @@ -10,7 +10,7 @@ import java.time.LocalDateTime;
10 10  
11 11 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
12 12  
13   -@Schema(description = "管理后台 - 客户 Response VO")
  13 +@Schema(description = "管理后台 - CRM 客户 Response VO")
14 14 @Data
15 15 @EqualsAndHashCode(callSuper = true)
16 16 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerUpdateReqVO.java
... ... @@ -7,7 +7,7 @@ import lombok.ToString;
7 7  
8 8 import javax.validation.constraints.NotNull;
9 9  
10   -@Schema(description = "管理后台 - 客户更新 Request VO")
  10 +@Schema(description = "管理后台 - CRM 客户更新 Request VO")
11 11 @Data
12 12 @EqualsAndHashCode(callSuper = true)
13 13 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmTransferCustomerReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.Data;
5 5  
6 6 import javax.validation.constraints.NotNull;
7 7  
8   -@Schema(description = "管理后台 - 客户转移 Request VO")
  8 +@Schema(description = "管理后台 - CRM 客户转移 Request VO")
9 9 @Data
10 10 public class CrmTransferCustomerReqVO {
11 11  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/ReceivableController.java
... ... @@ -24,10 +24,7 @@ import java.util.List;
24 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 25 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
26 26  
27   -/**
28   - * @author 赤焰
29   - */
30   -@Tag(name = "管理后台 - 回款管理")
  27 +@Tag(name = "管理后台 - CRM 回款管理")
31 28 @RestController
32 29 @RequestMapping("/crm/receivable")
33 30 @Validated
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/ReceivablePlanController.java
... ... @@ -24,10 +24,7 @@ import java.util.List;
24 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 25 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
26 26  
27   -/**
28   - * @author 赤焰
29   - */
30   -@Tag(name = "管理后台 - 回款计划")
  27 +@Tag(name = "管理后台 - CRM 回款计划")
31 28 @RestController
32 29 @RequestMapping("/crm/receivable-plan")
33 30 @Validated
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableCreateReqVO.java
... ... @@ -5,7 +5,7 @@ import java.util.*;
5 5 import io.swagger.v3.oas.annotations.media.Schema;
6 6 import javax.validation.constraints.*;
7 7  
8   -@Schema(description = "管理后台 - 回款管理创建 Request VO")
  8 +@Schema(description = "管理后台 - CRM 回款创建 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExcelVO.java
... ... @@ -14,7 +14,7 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
14 14  
15 15  
16 16 /**
17   - * 回款管理 Excel VO
  17 + * CRM 回款管理 Excel VO
18 18 *
19 19 * @author 赤焰
20 20 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExportReqVO.java
... ... @@ -12,7 +12,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
12 12 /**
13 13 * @author 赤焰
14 14 */
15   -@Schema(description = "管理后台 - 回款管理 Excel 导出 Request VO,参数和 ReceivablePageReqVO 是一致的")
  15 +@Schema(description = "管理后台 - CRM 回款 Excel 导出 Request VO,参数和 ReceivablePageReqVO 是一致的")
16 16 @Data
17 17 public class ReceivableExportReqVO {
18 18  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePageReqVO.java
... ... @@ -12,7 +12,7 @@ import java.time.LocalDateTime;
12 12  
13 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 14  
15   -@Schema(description = "管理后台 - 回款管理分页 Request VO")
  15 +@Schema(description = "管理后台 - CRM 回款分页 Request VO")
16 16 @Data
17 17 @EqualsAndHashCode(callSuper = true)
18 18 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanCreateReqVO.java
... ... @@ -5,7 +5,7 @@ import java.util.*;
5 5 import io.swagger.v3.oas.annotations.media.Schema;
6 6 import javax.validation.constraints.*;
7 7  
8   -@Schema(description = "管理后台 - 回款计划创建 Request VO")
  8 +@Schema(description = "管理后台 - CRM 回款计划创建 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExcelVO.java
1 1 package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo;
2 2  
3   -import io.swagger.v3.oas.annotations.media.Schema;
4 3 import lombok.*;
5   -import java.util.*;
  4 +
6 5 import java.math.BigDecimal;
7 6 import java.time.LocalDateTime;
8   -import java.time.LocalDateTime;
9   -import java.time.LocalDateTime;
10   -import java.time.LocalDateTime;
11 7  
12 8 import com.alibaba.excel.annotation.ExcelProperty;
13 9 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
... ... @@ -15,7 +11,7 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
15 11  
16 12  
17 13 /**
18   - * 回款计划 Excel VO
  14 + * CRM 回款计划 Excel VO
19 15 *
20 16 * @author 芋道源码
21 17 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExportReqVO.java
... ... @@ -9,7 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
9 9  
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11  
12   -@Schema(description = "管理后台 - 回款计划 Excel 导出 Request VO,参数和 ReceivablePlanPageReqVO 是一致的")
  12 +@Schema(description = "管理后台 - CRM 回款计划 Excel 导出 Request VO,参数和 ReceivablePlanPageReqVO 是一致的")
13 13 @Data
14 14 public class ReceivablePlanExportReqVO {
15 15  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanPageReqVO.java
... ... @@ -11,7 +11,7 @@ import java.time.LocalDateTime;
11 11  
12 12 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
13 13  
14   -@Schema(description = "管理后台 - 回款计划分页 Request VO")
  14 +@Schema(description = "管理后台 - CRM 回款计划分页 Request VO")
15 15 @Data
16 16 @EqualsAndHashCode(callSuper = true)
17 17 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanRespVO.java
... ... @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.*;
5 5 import java.time.LocalDateTime;
6 6  
7   -@Schema(description = "管理后台 - 回款计划 Response VO")
  7 +@Schema(description = "管理后台 - CRM 回款计划 Response VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanUpdateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.*;
5 5 import java.util.*;
6 6 import javax.validation.constraints.*;
7 7  
8   -@Schema(description = "管理后台 - 回款计划更新 Request VO")
  8 +@Schema(description = "管理后台 - CRM 回款计划更新 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableRespVO.java
... ... @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.*;
5 5 import java.time.LocalDateTime;
6 6  
7   -@Schema(description = "管理后台 - 回款管理 Response VO")
  7 +@Schema(description = "管理后台 - CRM 回款 Response VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableUpdateReqVO.java
... ... @@ -5,7 +5,7 @@ import lombok.*;
5 5 import java.util.*;
6 6 import javax.validation.constraints.*;
7 7  
8   -@Schema(description = "管理后台 - 回款管理更新 Request VO")
  8 +@Schema(description = "管理后台 - CRM 回款更新 Request VO")
9 9 @Data
10 10 @EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/contact/ContactConvert.java
... ... @@ -12,7 +12,7 @@ import org.mapstruct.factory.Mappers;
12 12 import java.util.List;
13 13  
14 14 /**
15   - * crm联系人 Convert
  15 + * crm 联系人 Convert
16 16 *
17 17 * @author 芋道源码
18 18 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/core/aop/CrmPermissionAspect.java
... ... @@ -47,19 +47,21 @@ public class CrmPermissionAspect {
47 47 try {
48 48 Integer crmType = crmPermission.crmType().getType();
49 49 Integer operationType = crmPermission.operationType().getType();
  50 + // TODO @puhui999:不一定是 id 参数噢;例如说,ContactServiceImpl 的 updateContact
50 51 Long id = (Long) joinPoint.getArgs()[0];// 获取操作数据的编号
51 52  
52   - // 1. 获取数据权限
  53 + // 1.1 获取数据权限
53 54 CrmPermissionDO permission = crmPermissionService.getCrmPermissionByCrmTypeAndCrmDataId(crmType, id);
54 55 if (permission == null) {
55 56 // 不存在说明数据也不存在
56 57 throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, crmPermission.crmType().getName());
57 58 }
58   - // 1.2. 校验是否为公海数据
  59 + // 1.2 校验是否为公海数据
  60 + // TODO @puhui999:这个判断去掉比较合适哈。这里更多是业务逻辑,不算权限判断。例如说,公海的客户,只要没负责人,就可以领取了;
59 61 if (permission.getOwnerUserId() == null) {
60 62 return;
61 63 }
62   - // 1.3. 校验当前负责人是不是自己
  64 + // 1.3 校验当前负责人是不是自己
63 65 if (ObjUtil.equal(permission.getOwnerUserId(), getUserId())) {
64 66 return;
65 67 }
... ... @@ -68,6 +70,7 @@ public class CrmPermissionAspect {
68 70 // 2. 校验是否有读权限
69 71 if (OperationTypeEnum.isRead(operationType)) {
70 72 // 校验该数据当前用户是否可读
  73 + // TODO @puhui999:直接 CollUtil.contains 就好,因为就是有某个 userId 呀
71 74 boolean isRead = CollUtil.contains(permission.getRoUserIds(), item -> ObjUtil.equal(item, getUserId()))
72 75 || CollUtil.contains(permission.getRwUserIds(), item -> ObjUtil.equal(item, getUserId()));
73 76 if (isRead) {
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/enums/CrmEnum.java
... ... @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjUtil;
4 4 import lombok.Getter;
5 5 import lombok.RequiredArgsConstructor;
6 6  
  7 +// TODO @puhui999:可以改成 CrmBizTypeEnum,CRM 业务类型枚举
7 8 /**
8 9 * Crm 类型枚举
9 10 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/enums/OperationTypeEnum.java
... ... @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjUtil;
4 4 import lombok.Getter;
5 5 import lombok.RequiredArgsConstructor;
6 6  
  7 +// TODO @puhui999:是不是可以和 PermissionTypeEnum 合并,就是 CrmPermissionEnum,负责人、读取、读写;目前阶段,不用做的特别细致;类似 linux 的 acl;
7 8 /**
8 9 * Crm 数据操作类型枚举
9 10 *
... ... @@ -13,6 +14,7 @@ import lombok.RequiredArgsConstructor;
13 14 @Getter
14 15 public enum OperationTypeEnum {
15 16  
  17 + // TODO @puhui999:抽象上,就分三种,会更合理。一个 OWNER 负责人,一个 READ 读,一个 WRITE 写;
16 18 DELETE(1, "删除"),
17 19 UPDATE(2, "修改"),
18 20 READ(3, "查询");
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
... ... @@ -115,8 +115,8 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
115 115 /**
116 116 * 校验客户是否存在
117 117 *
118   - * @param customerId 客户id
119   - * @return
  118 + * @param customerId 客户 id
  119 + * @return 客户
120 120 */
121 121 @Override
122 122 public CrmCustomerDO validateCustomer(Long customerId) {
... ... @@ -130,7 +130,7 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
130 130 @Override
131 131 @Transactional(rollbackFor = Exception.class)
132 132 public void transferCustomer(CrmTransferCustomerReqVO reqVO, Long userId) {
133   - // 1 校验合同是否存在
  133 + // 1. 校验合同是否存在
134 134 validateCustomer(reqVO.getId());
135 135  
136 136 // 2. 数据权限转移
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionService.java
... ... @@ -16,6 +16,7 @@ import javax.validation.Valid;
16 16 */
17 17 public interface CrmPermissionService {
18 18  
  19 + // TODO @puhui999:方法名上,不用 Crm
19 20 /**
20 21 * 创建数据权限
21 22 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
... ... @@ -41,6 +41,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
41 41 @Override
42 42 @Transactional(rollbackFor = Exception.class)
43 43 public Long createCrmPermission(CrmPermissionCreateBO createBO) {
  44 + // TODO @puhui999:createDO 改成 permission,保持统一哈;
44 45 CrmPermissionDO createDO = CrmPermissionConvert.INSTANCE.convert(createBO);
45 46 crmPermissionMapper.insert(createDO);
46 47 return createDO.getId();
... ... @@ -50,7 +51,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
50 51 @Transactional(rollbackFor = Exception.class)
51 52 public void updateCrmPermission(CrmPermissionUpdateBO updateBO) {
52 53 validateCrmPermissionExists(updateBO.getId());
53   -
  54 + // 更新操作
54 55 CrmPermissionDO updateDO = CrmPermissionConvert.INSTANCE.convert(updateBO);
55 56 crmPermissionMapper.updateById(updateDO);
56 57 }
... ... @@ -59,7 +60,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
59 60 @Transactional(rollbackFor = Exception.class)
60 61 public void deleteCrmPermission(Long id) {
61 62 validateCrmPermissionExists(id);
62   -
  63 + // 删除
63 64 crmPermissionMapper.deleteById(id);
64 65 }
65 66  
... ... @@ -74,9 +75,11 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
74 75 return crmPermissionMapper.selectByCrmTypeAndCrmDataId(crmType, crmDataId);
75 76 }
76 77  
  78 + // TODO @puhui999:参数名,是不是 transferReqBO
77 79 @Override
78 80 public void transferCrmPermission(TransferCrmPermissionBO transferCrmPermissionBO) {
79   - // 1 校验商机是否存在
  81 + // 1.1 校验商机是否存在
  82 + // TODO puhui999:这里直接调用 crmPermissionMapper 的 selectByCrmTypeAndCrmDataId 方法,会更简洁一点;
80 83 CrmPermissionDO permission = getCrmPermissionByCrmTypeAndCrmDataId(transferCrmPermissionBO.getCrmType(),
81 84 transferCrmPermissionBO.getCrmDataId());
82 85 String crmName = CrmEnum.getNameByType(transferCrmPermissionBO.getCrmType());
... ... @@ -85,6 +88,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
85 88 }
86 89 // 1.2 校验转移对象是否已经是该负责人
87 90 if (ObjUtil.equal(permission.getOwnerUserId(), permission.getOwnerUserId())) {
  91 + // TODO @puhui999:是不是这个错误码不太对。。。
88 92 throw exception(CRM_PERMISSION_MODEL_TRANSFER_FAIL_OWNER_USER_NOT_EXISTS, crmName);
89 93 }
90 94 // 1.3 校验新负责人是否存在
... ... @@ -94,11 +98,12 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
94 98 }
95 99 // TODO 校验是否为超级管理员 || 1.4
96 100 // 1.4 校验是否有写权限
  101 + // TODO puhui999:CollUtil.contains 就够了,不用后面写个表达式;
97 102 if (!CollUtil.contains(permission.getRwUserIds(), id -> ObjUtil.equal(id, transferCrmPermissionBO.getUserId()))) {
98 103 throw exception(CRM_PERMISSION_DENIED, crmName);
99 104 }
100 105  
101   - // 2 权限转移
  106 + // 2. 权限转移
102 107 CrmPermissionDO updateCrmPermission = new CrmPermissionDO().setId(permission.getId())
103 108 .setOwnerUserId(transferCrmPermissionBO.getOwnerUserId());
104 109 if (ObjUtil.equal(TransferTypeEnum.TEAM.getType(), transferCrmPermissionBO.getTransferType())) {
... ... @@ -116,6 +121,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
116 121 crmPermissionMapper.updateById(updateCrmPermission);
117 122  
118 123 // 3. TODO 记录机转移日志
  124 + // TODO @puhui999:是不是交给业务记录哈;
119 125 }
120 126  
121 127 }
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/bo/CrmPermissionCreateBO.java
... ... @@ -6,6 +6,7 @@ import lombok.Data;
6 6 import javax.validation.constraints.NotNull;
7 7 import java.util.Set;
8 8  
  9 +// TODO @puhui999:,一个是 Crm 前缀,一个 Req 表示入参
9 10 /**
10 11 * crm 数据权限 Create BO
11 12 *
... ... @@ -14,6 +15,8 @@ import java.util.Set;
14 15 @Data
15 16 public class CrmPermissionCreateBO {
16 17  
  18 + // TODO @puhui999:如果是关联字段,换一行写它的注释;不然看着略乱哈
  19 +
17 20 /**
18 21 * Crm 类型 关联 {@link CrmEnum}
19 22 */
... ... @@ -24,6 +27,7 @@ public class CrmPermissionCreateBO {
24 27 */
25 28 @NotNull(message = "Crm 数据编号不能为空")
26 29 private Long crmDataId;
  30 +
27 31 /**
28 32 * 负责人的用户编号 关联 AdminUser#id, null 则为公海数据
29 33 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/bo/CrmPermissionUpdateBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7 import javax.validation.constraints.NotNull;
8 8 import java.util.Set;
9 9  
  10 +// TODO @puhui999:,一个是 Crm 前缀,一个 Req 表示入参
10 11 /**
11 12 * crm 数据权限 Update BO
12 13 *
... ... @@ -15,6 +16,7 @@ import java.util.Set;
15 16 @Data
16 17 public class CrmPermissionUpdateBO {
17 18  
  19 + // TODO @puhui999:id 和 crmType + crmDataId 是不是重叠了;
18 20 /**
19 21 * 数据权限编号 {@link CrmPermissionDO#getId()}
20 22 */
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/bo/TransferCrmPermissionBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7  
8 8 import javax.validation.constraints.NotNull;
9 9  
  10 +// TODO @puhui999:CrmTransferPermissionReqBO,一个是 Crm 前缀,一个 Req 表示入参
10 11 /**
11 12 * 数据权限转移 BO
12 13 *
... ... @@ -15,26 +16,30 @@ import javax.validation.constraints.NotNull;
15 16 @Data
16 17 public class TransferCrmPermissionBO {
17 18  
  19 + // TODO @puhui999:参数的注释
18 20 @NotNull(message = "用户编号不能为空")
19 21 private Long userId;
20 22  
  23 + // TODO @puhui999:bizType
21 24 /**
22   - * Crm 类型 关联 {@link CrmEnum}
  25 + * Crm 类型 关联 {@link CrmEnum} TODO 这种不用再写关联了,直接 @InEnum 参数校验
23 26 */
24 27 @NotNull(message = "Crm 类型不能为空")
25 28 private Integer crmType;
26 29  
  30 + // TODO @puhui999:bizId
27 31 /**
28   - * 数据编号 关联 {@link CrmEnum} 对应模块 DO#getId()
  32 + * 数据编号
29 33 */
30 34 @NotNull(message = "Crm 数据编号不能为空")
31 35 private Long crmDataId;
32 36  
  37 + // TODO @puhui999:要不这里改成 newOwnerUserId;然后,transferType 和 permissionType,合并成 oldOwnerPermission(空就是移除)
33 38 @NotNull(message = "新负责人的用户编号不能为空")
34 39 private Long ownerUserId;
35 40  
36 41 /**
37   - * 原负责人移除方式, 关联 {@link TransferTypeEnum}
  42 + * 原负责人移除方式, 关联 {@link TransferTypeEnum} TODO 这种不用再写关联了,直接 @InEnum 参数校验
38 43 */
39 44 @NotNull(message = "原负责人移除方式不能为空")
40 45 private Integer transferType;
... ...