Commit 55f9e0131c85f27a65d3a2404866543630076f8d
1 parent
723707c7
code review:CRM 客户联系人的管理
Showing
4 changed files
with
46 additions
and
27 deletions
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); | ... | ... |