Commit 81b6aebf476426e356fd0b68dda5f1b7fd7f3e66
1 parent
bf247a66
code review:商机表的实现
Showing
17 changed files
with
50 additions
and
31 deletions
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
| ... | ... | @@ -17,6 +17,9 @@ public interface ErrorCodeConstants { |
| 17 | 17 | |
| 18 | 18 | // ========== 商机管理 1-020-002-000 ========== |
| 19 | 19 | ErrorCode BUSINESS_NOT_EXISTS = new ErrorCode(1_020_002_000, "商机不存在"); |
| 20 | + | |
| 21 | + // TODO @lilleo:商机状态、商机类型,都单独错误码段 | |
| 22 | + | |
| 20 | 23 | ErrorCode BUSINESS_STATUS_TYPE_NOT_EXISTS = new ErrorCode(1_020_002_001, "商机状态类型不存在"); |
| 21 | 24 | ErrorCode BUSINESS_STATUS_NOT_EXISTS = new ErrorCode(1_020_002_002, "商机状态不存在"); |
| 22 | 25 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/CrmBusinessStatusController.java
| ... | ... | @@ -25,6 +25,7 @@ import java.util.List; |
| 25 | 25 | 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 | |
| 28 | +// TODO @lilleo:这个模块,可以挪到 business 下;这样我打开 business 包下,就知道,噢~原来里面有 business 商机、有 type 状态类型、status 具体状态; | |
| 28 | 29 | @Tag(name = "管理后台 - 商机状态") |
| 29 | 30 | @RestController |
| 30 | 31 | @RequestMapping("/crm/business-status") |
| ... | ... | @@ -67,6 +68,7 @@ public class CrmBusinessStatusController { |
| 67 | 68 | return success(CrmBusinessStatusConvert.INSTANCE.convert(businessStatus)); |
| 68 | 69 | } |
| 69 | 70 | |
| 71 | + // TODO @lilleo:这个接口,暂时用不到,可以考虑先删除掉 | |
| 70 | 72 | @GetMapping("/list") |
| 71 | 73 | @Operation(summary = "获得商机状态列表") |
| 72 | 74 | @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") |
| ... | ... | @@ -96,6 +98,7 @@ public class CrmBusinessStatusController { |
| 96 | 98 | ExcelUtils.write(response, "商机状态.xls", "数据", CrmBusinessStatusExcelVO.class, datas); |
| 97 | 99 | } |
| 98 | 100 | |
| 101 | + // TODO 芋艿:后续再看看 | |
| 99 | 102 | @GetMapping("/get-simple-list") |
| 100 | 103 | @Operation(summary = "获得商机状态列表") |
| 101 | 104 | @PreAuthorize("@ss.hasPermission('crm:business-status:query')") |
| ... | ... | @@ -104,6 +107,7 @@ public class CrmBusinessStatusController { |
| 104 | 107 | return success(CrmBusinessStatusConvert.INSTANCE.convertList(list)); |
| 105 | 108 | } |
| 106 | 109 | |
| 110 | + // TODO 芋艿:后续再看看 | |
| 107 | 111 | @GetMapping("/get-all-list") |
| 108 | 112 | @Operation(summary = "获得商机状态列表") |
| 109 | 113 | @PreAuthorize("@ss.hasPermission('crm:business-status:query')") | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/vo/CrmBusinessStatusBaseVO.java
| ... | ... | @@ -12,6 +12,8 @@ import javax.validation.constraints.NotNull; |
| 12 | 12 | @Data |
| 13 | 13 | public class CrmBusinessStatusBaseVO { |
| 14 | 14 | |
| 15 | + // TODO @lilleo:example 要写下 | |
| 16 | + | |
| 15 | 17 | @Schema(description = "状态类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22882") |
| 16 | 18 | @NotNull(message = "状态类型编号不能为空") |
| 17 | 19 | private Long typeId; |
| ... | ... | @@ -20,9 +22,11 @@ public class CrmBusinessStatusBaseVO { |
| 20 | 22 | @NotNull(message = "状态名不能为空") |
| 21 | 23 | private String name; |
| 22 | 24 | |
| 25 | + // TODO @lilleo:percent 应该是 Integer; | |
| 23 | 26 | @Schema(description = "赢单率") |
| 24 | 27 | private String percent; |
| 25 | 28 | |
| 29 | + // TODO @lilleo:这个是不是不用前端新增和修改的时候传递,交给顺序计算出来,存储起来就好了; | |
| 26 | 30 | @Schema(description = "排序") |
| 27 | 31 | private Integer sort; |
| 28 | 32 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/vo/CrmBusinessStatusExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatus.vo; |
| 2 | 2 | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.*; | |
| 5 | -import java.util.*; | |
| 6 | - | |
| 7 | 3 | import com.alibaba.excel.annotation.ExcelProperty; |
| 4 | +import lombok.Data; | |
| 8 | 5 | |
| 6 | +// TODO @lilleo:这个暂时不需要;嘿嘿~不是每个模块都需要导出哈 | |
| 9 | 7 | /** |
| 10 | 8 | * 商机状态 Excel VO |
| 11 | 9 | * | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/vo/CrmBusinessStatusExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatus.vo; |
| 2 | 2 | |
| 3 | -import lombok.*; | |
| 4 | -import java.util.*; | |
| 5 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | +import lombok.Data; | |
| 7 | 5 | |
| 6 | +// TODO @lilleo:这个暂时不需要;嘿嘿~不是每个模块都需要导出哈 | |
| 8 | 7 | @Schema(description = "管理后台 - 商机状态 Excel 导出 Request VO,参数和 CrmBusinessStatusPageReqVO 是一致的") |
| 9 | 8 | @Data |
| 10 | 9 | public class CrmBusinessStatusExportReqVO { | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/vo/CrmBusinessStatusRespVO.java
| ... | ... | @@ -9,7 +9,7 @@ import lombok.*; |
| 9 | 9 | @ToString(callSuper = true) |
| 10 | 10 | public class CrmBusinessStatusRespVO extends CrmBusinessStatusBaseVO { |
| 11 | 11 | |
| 12 | - @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6802") | |
| 12 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6802") | |
| 13 | 13 | private Long id; |
| 14 | 14 | |
| 15 | 15 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatus/vo/CrmBusinessStatusUpdateReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatus.vo; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.*; | |
| 5 | -import java.util.*; | |
| 6 | -import javax.validation.constraints.*; | |
| 4 | +import lombok.Data; | |
| 5 | +import lombok.EqualsAndHashCode; | |
| 6 | +import lombok.ToString; | |
| 7 | + | |
| 8 | +import javax.validation.constraints.NotNull; | |
| 7 | 9 | |
| 8 | 10 | @Schema(description = "管理后台 - 商机状态更新 Request VO") |
| 9 | 11 | @Data |
| ... | ... | @@ -11,8 +13,8 @@ import javax.validation.constraints.*; |
| 11 | 13 | @ToString(callSuper = true) |
| 12 | 14 | public class CrmBusinessStatusUpdateReqVO extends CrmBusinessStatusBaseVO { |
| 13 | 15 | |
| 14 | - @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6802") | |
| 15 | - @NotNull(message = "主键不能为空") | |
| 16 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6802") | |
| 17 | + @NotNull(message = "编号不能为空") | |
| 16 | 18 | private Long id; |
| 17 | 19 | |
| 18 | 20 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatustype/CrmBusinessStatusTypeController.java
| ... | ... | @@ -26,6 +26,7 @@ import java.util.List; |
| 26 | 26 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 27 | 27 | import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; |
| 28 | 28 | |
| 29 | +// TODO @lilleo:这个模块,可以挪到 business 下;这样我打开 business 包下,就知道,噢~原来里面有 business 商机、有 type 状态类型、status 具体状态; | |
| 29 | 30 | @Tag(name = "管理后台 - 商机状态类型") |
| 30 | 31 | @RestController |
| 31 | 32 | @RequestMapping("/crm/business-status-type") |
| ... | ... | @@ -68,6 +69,7 @@ public class CrmBusinessStatusTypeController { |
| 68 | 69 | return success(CrmBusinessStatusTypeConvert.INSTANCE.convert(businessStatusType)); |
| 69 | 70 | } |
| 70 | 71 | |
| 72 | + // TODO @lilleo:这个接口,暂时用不到,可以考虑先删除掉 | |
| 71 | 73 | @GetMapping("/list") |
| 72 | 74 | @Operation(summary = "获得商机状态类型列表") |
| 73 | 75 | @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatustype/vo/CrmBusinessStatusTypeCreateReqVO.java
| ... | ... | @@ -5,6 +5,7 @@ import lombok.Data; |
| 5 | 5 | import lombok.EqualsAndHashCode; |
| 6 | 6 | import lombok.ToString; |
| 7 | 7 | |
| 8 | +// TODO 状态类型和状态添加,是在一个请求里,所以需要把 CrmBusinessStatusCreateReqVO 融合进来; | |
| 8 | 9 | @Schema(description = "管理后台 - 商机状态类型创建 Request VO") |
| 9 | 10 | @Data |
| 10 | 11 | @EqualsAndHashCode(callSuper = true) | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatustype/vo/CrmBusinessStatusTypeExcelVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatustype.vo; |
| 2 | 2 | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.*; | |
| 5 | -import java.util.*; | |
| 6 | -import java.time.LocalDateTime; | |
| 7 | -import java.time.LocalDateTime; | |
| 8 | - | |
| 9 | 3 | import com.alibaba.excel.annotation.ExcelProperty; |
| 4 | +import lombok.Data; | |
| 5 | + | |
| 6 | +import java.time.LocalDateTime; | |
| 10 | 7 | |
| 8 | +// TODO @lilleo:这个暂时不需要;嘿嘿~不是每个模块都需要导出哈 | |
| 11 | 9 | /** |
| 12 | 10 | * 商机状态类型 Excel VO |
| 13 | 11 | * | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatustype/vo/CrmBusinessStatusTypeExportReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatustype.vo; |
| 2 | 2 | |
| 3 | -import lombok.*; | |
| 4 | -import java.util.*; | |
| 5 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 6 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 7 | -import java.time.LocalDateTime; | |
| 4 | +import lombok.Data; | |
| 8 | 5 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 6 | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | + | |
| 10 | 9 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 11 | 10 | |
| 11 | +// TODO @lilleo:这个暂时不需要;嘿嘿~不是每个模块都需要导出哈 | |
| 12 | 12 | @Schema(description = "管理后台 - 商机状态类型 Excel 导出 Request VO,参数和 CrmBusinessStatusTypePageReqVO 是一致的") |
| 13 | 13 | @Data |
| 14 | 14 | public class CrmBusinessStatusTypeExportReqVO { | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/businessstatustype/vo/CrmBusinessStatusTypeUpdateReqVO.java
| 1 | 1 | package cn.iocoder.yudao.module.crm.controller.admin.businessstatustype.vo; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.*; | |
| 5 | -import java.util.*; | |
| 6 | -import javax.validation.constraints.*; | |
| 4 | +import lombok.Data; | |
| 5 | +import lombok.EqualsAndHashCode; | |
| 6 | +import lombok.ToString; | |
| 7 | 7 | |
| 8 | +import javax.validation.constraints.NotNull; | |
| 9 | + | |
| 10 | +// TODO 状态类型和状态添加,是在一个请求里,所以需要把 CrmBusinessStatusUpdateReqVO 融合进来; | |
| 8 | 11 | @Schema(description = "管理后台 - 商机状态类型更新 Request VO") |
| 9 | 12 | @Data |
| 10 | 13 | @EqualsAndHashCode(callSuper = true) | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/businessstatus/CrmBusinessStatusDO.java
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/businessstatustype/CrmBusinessStatusTypeDO.java
| ... | ... | @@ -28,6 +28,7 @@ public class CrmBusinessStatusTypeDO { |
| 28 | 28 | * 状态类型名 |
| 29 | 29 | */ |
| 30 | 30 | private String name; |
| 31 | + // TODO @ljlleo:List 存储哈 | |
| 31 | 32 | /** |
| 32 | 33 | * 使用的部门编号 |
| 33 | 34 | */ |
| ... | ... | @@ -35,6 +36,7 @@ public class CrmBusinessStatusTypeDO { |
| 35 | 36 | /** |
| 36 | 37 | * 开启状态 |
| 37 | 38 | */ |
| 39 | + // TODO @ljlleo:这个字段,使用 Integer,对应 CommonStatus | |
| 38 | 40 | private Boolean status; |
| 39 | 41 | |
| 40 | 42 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/businessstatustype/CrmBusinessStatusTypeMapper.java
| ... | ... | @@ -21,7 +21,7 @@ public interface CrmBusinessStatusTypeMapper extends BaseMapperX<CrmBusinessStat |
| 21 | 21 | default PageResult<CrmBusinessStatusTypeDO> selectPage(CrmBusinessStatusTypePageReqVO reqVO) { |
| 22 | 22 | return selectPage(reqVO, new LambdaQueryWrapperX<CrmBusinessStatusTypeDO>() |
| 23 | 23 | .likeIfPresent(CrmBusinessStatusTypeDO::getName, reqVO.getName()) |
| 24 | - .eqIfPresent(CrmBusinessStatusTypeDO::getDeptIds, reqVO.getDeptIds()) | |
| 24 | +// .eqIfPresent(CrmBusinessStatusTypeDO::getDeptIds, reqVO.getDeptIds()) TODO 报错,临时注释掉 | |
| 25 | 25 | .eqIfPresent(CrmBusinessStatusTypeDO::getStatus, reqVO.getStatus()) |
| 26 | 26 | .orderByDesc(CrmBusinessStatusTypeDO::getId)); |
| 27 | 27 | } |
| ... | ... | @@ -38,6 +38,4 @@ public interface CrmBusinessStatusTypeMapper extends BaseMapperX<CrmBusinessStat |
| 38 | 38 | return selectList(CrmBusinessStatusTypeDO::getStatus, status.byteValue()); |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | - | |
| 42 | - | |
| 43 | 41 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/businessstatus/CrmBusinessStatusService.java
| ... | ... | @@ -73,9 +73,9 @@ public interface CrmBusinessStatusService { |
| 73 | 73 | List<CrmBusinessStatusDO> getBusinessStatusList(CrmBusinessStatusExportReqVO exportReqVO); |
| 74 | 74 | |
| 75 | 75 | /** |
| 76 | - * 根据类型ID获得商机状态列表 | |
| 76 | + * 根据类型 ID 获得商机状态列表 | |
| 77 | 77 | * |
| 78 | - * @param typeId 商机状态类型ID | |
| 78 | + * @param typeId 商机状态类型 ID | |
| 79 | 79 | * @return 商机状态列表 |
| 80 | 80 | */ |
| 81 | 81 | List<CrmBusinessStatusDO> getBusinessStatusListByTypeId(Integer typeId); | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/businessstatustype/CrmBusinessStatusTypeServiceImpl.java
| ... | ... | @@ -34,6 +34,7 @@ public class CrmBusinessStatusTypeServiceImpl implements CrmBusinessStatusTypeSe |
| 34 | 34 | |
| 35 | 35 | @Override |
| 36 | 36 | public Long createBusinessStatusType(CrmBusinessStatusTypeCreateReqVO createReqVO) { |
| 37 | + // TODO ljlleo:name 应该需要唯一哈; | |
| 37 | 38 | // 插入 |
| 38 | 39 | CrmBusinessStatusTypeDO businessStatusType = CrmBusinessStatusTypeConvert.INSTANCE.convert(createReqVO); |
| 39 | 40 | businessStatusTypeMapper.insert(businessStatusType); |
| ... | ... | @@ -43,6 +44,7 @@ public class CrmBusinessStatusTypeServiceImpl implements CrmBusinessStatusTypeSe |
| 43 | 44 | |
| 44 | 45 | @Override |
| 45 | 46 | public void updateBusinessStatusType(CrmBusinessStatusTypeUpdateReqVO updateReqVO) { |
| 47 | + // TODO ljlleo:name 应该需要唯一哈; | |
| 46 | 48 | // 校验存在 |
| 47 | 49 | validateBusinessStatusTypeExists(updateReqVO.getId()); |
| 48 | 50 | // 更新 |
| ... | ... | @@ -54,6 +56,7 @@ public class CrmBusinessStatusTypeServiceImpl implements CrmBusinessStatusTypeSe |
| 54 | 56 | public void deleteBusinessStatusType(Long id) { |
| 55 | 57 | // 校验存在 |
| 56 | 58 | validateBusinessStatusTypeExists(id); |
| 59 | + // TODO 艿艿:这里在看看,是不是要校验业务是否在使用; | |
| 57 | 60 | // 删除 |
| 58 | 61 | businessStatusTypeMapper.deleteById(id); |
| 59 | 62 | } | ... | ... |