Commit 81b6aebf476426e356fd0b68dda5f1b7fd7f3e66

Authored by YunaiV
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
... ... @@ -26,6 +26,8 @@ public class CrmBusinessStatusDO {
26 26 private Long id;
27 27 /**
28 28 * 状态类型编号
  29 + *
  30 + * // TODO @ljlleo:要写下关联字段噢
29 31 */
30 32 private Long typeId;
31 33 /**
... ...
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&lt;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 }
... ...