Commit 4dab376ca968941b99ca75029193698ae36f00fb
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
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
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
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
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
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
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
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
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
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
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; | ... | ... |