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

This commit is contained in:
YunaiV 2023-10-21 22:20:00 +08:00
parent 723707c7ed
commit 55f9e0131c
4 changed files with 50 additions and 31 deletions

View File

@ -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;
}

View File

@ -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;

View File

@ -1,15 +1,15 @@
package cn.iocoder.yudao.module.crm.dal.dataobject.contact;
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;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.time.LocalDateTime;
/**
* 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;
/**

View File

@ -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.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.crm.convert.contact.ContactConvert;
import cn.iocoder.yudao.module.crm.dal.mysql.contact.ContactMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
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 javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
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);