mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	code review:CRM 客户联系人的管理
This commit is contained in:
		| @@ -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; | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|     /** | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV