Commit 55f9e0131c85f27a65d3a2404866543630076f8d

Authored by YunaiV
1 parent 723707c7

code review:CRM 客户联系人的管理

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactBaseVO.java
1 1 package cn.iocoder.yudao.module.crm.controller.admin.contact.vo;
2 2  
3 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   -import java.time.LocalDateTime;
9   -import javax.validation.constraints.*;
  4 +import lombok.Data;
10 5 import org.springframework.format.annotation.DateTimeFormat;
11 6  
  7 +import javax.validation.constraints.NotNull;
  8 +import java.time.LocalDateTime;
  9 +
12 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
13 11  
14 12 /**
... ... @@ -18,6 +16,8 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
18 16 @Data
19 17 public class ContactBaseVO {
20 18  
  19 + // TODO @zyna:部分字段,缺少 example,需要补充;
  20 +
21 21 @Schema(description = "联系人名称", example = "张三")
22 22 @NotNull(message = "姓名不能为空")
23 23 private String name;
... ... @@ -25,18 +25,22 @@ public class ContactBaseVO {
25 25 @Schema(description = "下次联系时间")
26 26 private LocalDateTime nextTime;
27 27  
  28 + // TODO @zyna:缺少 validator 的校验
28 29 @Schema(description = "手机号")
29 30 private String mobile;
30 31  
  32 + // TODO @zyna:缺少 validator 的校验
31 33 @Schema(description = "电话")
32 34 private String telephone;
33 35  
  36 + // TODO @zyna:缺少 validator 的校验
34 37 @Schema(description = "电子邮箱")
35 38 private String email;
36 39  
37 40 @Schema(description = "职务")
38 41 private String post;
39 42  
  43 + // TODO @zyna:非空校验
40 44 @Schema(description = "客户编号", example = "10795")
41 45 private Long customerId;
42 46  
... ... @@ -46,10 +50,12 @@ public class ContactBaseVO {
46 50 @Schema(description = "备注", example = "你说的对")
47 51 private String remark;
48 52  
  53 + // TODO @zyna:这个新建的时候,应该不会传递;而是后端默认设置自己为负责人;
49 54 @Schema(description = "负责人用户编号", example = "7648")
50 55 private Long ownerUserId;
51 56  
52 57 @Schema(description = "最后跟进时间")
53 58 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
54 59 private LocalDateTime lastTime;
  60 +
55 61 }
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactPageReqVO.java
1 1 package cn.iocoder.yudao.module.crm.controller.admin.contact.vo;
2 2  
3   -import lombok.*;
4   -import java.util.*;
5   -import io.swagger.v3.oas.annotations.media.Schema;
6 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
7 8 import org.springframework.format.annotation.DateTimeFormat;
  9 +
8 10 import java.time.LocalDateTime;
9 11  
10 12 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
... ... @@ -15,6 +17,8 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
15 17 @ToString(callSuper = true)
16 18 public class ContactPageReqVO extends PageParam {
17 19  
  20 + // TODO @芋艿:需要查询的字段;
  21 +
18 22 @Schema(description = "联系人名称", example = "张三")
19 23 private String name;
20 24  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contact/ContactDO.java
1 1 package cn.iocoder.yudao.module.crm.dal.dataobject.contact;
2 2  
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
3 7 import lombok.*;
4   -import java.util.*;
5   -import java.time.LocalDateTime;
6   -import java.time.LocalDateTime;
  8 +
7 9 import java.time.LocalDateTime;
8   -import com.baomidou.mybatisplus.annotation.*;
9   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
10 10  
11 11 /**
12   - * crm联系人 DO
  12 + * crm 联系人 DO
13 13 *
14 14 * @author 芋道源码
15 15 */
... ... @@ -54,6 +54,8 @@ public class ContactDO extends BaseDO {
54 54 private String post;
55 55 /**
56 56 * 客户编号
  57 + *
  58 + * TODO @zyna:关联的字段,也要写下
57 59 */
58 60 private Long customerId;
59 61 /**
... ... @@ -66,6 +68,8 @@ public class ContactDO extends BaseDO {
66 68 private String remark;
67 69 /**
68 70 * 负责人用户编号
  71 + *
  72 + * TODO @zyna:关联的字段,也要写下
69 73 */
70 74 private Long ownerUserId;
71 75 /**
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/ContactServiceImpl.java
1 1 package cn.iocoder.yudao.module.crm.service.contact;
2 2  
3   -import org.springframework.stereotype.Service;
4   -import javax.annotation.Resource;
5   -import org.springframework.validation.annotation.Validated;
6   -
7   -import java.util.*;
8   -import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.*;
9   -import cn.iocoder.yudao.module.crm.dal.dataobject.contact.ContactDO;
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.collection.ListUtil;
10 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11   -
  6 +import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactCreateReqVO;
  7 +import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactExportReqVO;
  8 +import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactPageReqVO;
  9 +import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactUpdateReqVO;
12 10 import cn.iocoder.yudao.module.crm.convert.contact.ContactConvert;
  11 +import cn.iocoder.yudao.module.crm.dal.dataobject.contact.ContactDO;
13 12 import cn.iocoder.yudao.module.crm.dal.mysql.contact.ContactMapper;
  13 +import org.springframework.stereotype.Service;
  14 +import org.springframework.validation.annotation.Validated;
14 15  
15   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
16   -import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
  16 +import javax.annotation.Resource;
  17 +import java.util.Collection;
  18 +import java.util.List;
17 19  
18   -import cn.hutool.core.collection.CollUtil;
19   -import cn.hutool.core.collection.ListUtil;
  20 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  21 +import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CONTACT_NOT_EXISTS;
20 22  
21 23 /**
22 24 * crm联系人 Service 实现类
... ... @@ -32,6 +34,7 @@ public class ContactServiceImpl implements ContactService {
32 34  
33 35 @Override
34 36 public Long createContact(ContactCreateReqVO createReqVO) {
  37 + // TODO @customerId:需要校验存在
35 38 // 插入
36 39 ContactDO contact = ContactConvert.INSTANCE.convert(createReqVO);
37 40 contactMapper.insert(contact);
... ... @@ -43,6 +46,8 @@ public class ContactServiceImpl implements ContactService {
43 46 public void updateContact(ContactUpdateReqVO updateReqVO) {
44 47 // 校验存在
45 48 validateContactExists(updateReqVO.getId());
  49 + // TODO @customerId:需要校验存在
  50 +
46 51 // 更新
47 52 ContactDO updateObj = ContactConvert.INSTANCE.convert(updateReqVO);
48 53 contactMapper.updateById(updateObj);
... ...