浏览代码

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

YunaiV 1 年之前
父节点
当前提交
55f9e0131c

+ 12 - 6
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactBaseVO.java

@@ -1,14 +1,12 @@
 package cn.iocoder.yudao.module.crm.controller.admin.contact.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import javax.validation.constraints.*;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
 /**
@@ -18,6 +16,8 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 @Data
 public class ContactBaseVO {
 
+    // TODO @zyna:部分字段,缺少 example,需要补充;
+
     @Schema(description = "联系人名称", example = "张三")
     @NotNull(message = "姓名不能为空")
     private String name;
@@ -25,18 +25,22 @@ public class ContactBaseVO {
     @Schema(description = "下次联系时间")
     private LocalDateTime nextTime;
 
+    // TODO @zyna:缺少 validator 的校验
     @Schema(description = "手机号")
     private String mobile;
 
+    // TODO @zyna:缺少 validator 的校验
     @Schema(description = "电话")
     private String telephone;
 
+    // TODO @zyna:缺少 validator 的校验
     @Schema(description = "电子邮箱")
     private String email;
 
     @Schema(description = "职务")
     private String post;
 
+    // TODO @zyna:非空校验
     @Schema(description = "客户编号", example = "10795")
     private Long customerId;
 
@@ -46,10 +50,12 @@ public class ContactBaseVO {
     @Schema(description = "备注", example = "你说的对")
     private String remark;
 
+    // TODO @zyna:这个新建的时候,应该不会传递;而是后端默认设置自己为负责人;
     @Schema(description = "负责人用户编号", example = "7648")
     private Long ownerUserId;
 
     @Schema(description = "最后跟进时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime lastTime;
+
 }

+ 7 - 3
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/vo/ContactPageReqVO.java

@@ -1,10 +1,12 @@
 package cn.iocoder.yudao.module.crm.controller.admin.contact.vo;
 
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDateTime;
 
 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_
 @ToString(callSuper = true)
 public class ContactPageReqVO extends PageParam {
 
+    // TODO @芋艿:需要查询的字段;
+
     @Schema(description = "联系人名称", example = "张三")
     private String name;
 

+ 10 - 6
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contact/ContactDO.java

@@ -1,15 +1,15 @@
 package cn.iocoder.yudao.module.crm.dal.dataobject.contact;
 
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
+
 import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 
 /**
- * crm联系人 DO
+ * crm 联系人 DO
  *
  * @author 芋道源码
  */
@@ -54,6 +54,8 @@ public class ContactDO extends BaseDO {
     private String post;
     /**
      * 客户编号
+     *
+     * TODO @zyna:关联的字段,也要写下
      */
     private Long customerId;
     /**
@@ -66,6 +68,8 @@ public class ContactDO extends BaseDO {
     private String remark;
     /**
      * 负责人用户编号
+     *
+     * TODO @zyna:关联的字段,也要写下
      */
     private Long ownerUserId;
     /**

+ 17 - 12
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/ContactServiceImpl.java

@@ -1,22 +1,24 @@
 package cn.iocoder.yudao.module.crm.service.contact;
 
-import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-
-import java.util.*;
-import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.*;
-import cn.iocoder.yudao.module.crm.dal.dataobject.contact.ContactDO;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
+import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactCreateReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactExportReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactPageReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contact.vo.ContactUpdateReqVO;
 import cn.iocoder.yudao.module.crm.convert.contact.ContactConvert;
+import cn.iocoder.yudao.module.crm.dal.dataobject.contact.ContactDO;
 import cn.iocoder.yudao.module.crm.dal.mysql.contact.ContactMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
 
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
 
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ListUtil;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CONTACT_NOT_EXISTS;
 
 /**
  * crm联系人 Service 实现类
@@ -32,6 +34,7 @@ public class ContactServiceImpl implements ContactService {
 
     @Override
     public Long createContact(ContactCreateReqVO createReqVO) {
+        // TODO @customerId:需要校验存在
         // 插入
         ContactDO contact = ContactConvert.INSTANCE.convert(createReqVO);
         contactMapper.insert(contact);
@@ -43,6 +46,8 @@ public class ContactServiceImpl implements ContactService {
     public void updateContact(ContactUpdateReqVO updateReqVO) {
         // 校验存在
         validateContactExists(updateReqVO.getId());
+        // TODO @customerId:需要校验存在
+
         // 更新
         ContactDO updateObj = ContactConvert.INSTANCE.convert(updateReqVO);
         contactMapper.updateById(updateObj);