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