CRM项目07

复习

  • @Param参数
    当有参数类型相同的时候parameterType判断不错参数使用哪一个,需要添加@Param注解来区别参数
    void updateSeller(@Param("sellerId") Long sellerId, @Param("customerId") Long Id);

    update customer set seller_id = #{sellerId,jdbcType=BIGINT}
    where id = #{customerId,jdbcType=BIGINT}
  

一、客户跟进功能

介绍

跟进功能是为了记录目前客户的情况,以便日后回访和循迹调查。
跟进时产生跟进历史,该历史需要客户id,以实现对客户的识别。

实体类

@Setter
@Getter
public class CustomerTraceHistory {
    private Long id;
    //跟进时间
    private Date traceTime;
    //跟进内容
    private String traceDetails;
    //跟进方式
    private SystemDictionaryItem traceType;
    //跟进结果
    private Integer traceResult;
    //客户
    private Customer customer;
    //录入人
    private Employee inputUser;
    //录入时间
    private Date inputTime;
}

跟进时间:销售人员真正跟进客户的那个时间(有可能不是当天,有可能是之前的)
录入时间:新增跟进记录这条数据的时间(后台自动设置的)

日期处理

没贴注解时会出现400状态码参数问题,原因是前端提交的日期字符串是可以随意的,比如2020/01/01 或 2020-01-01这种,但后端springmvc并不知道你提交的属于哪一种格式,所以需要使用@DateTimeFormat注解,并使用pattern声明前端提交的格式, 这样springmvc就会按照pattern规定的格式把前端传过来的数据解析成date类型的对象

@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date traceTime;

二、前端日期插件bootstrap-datepicker

学习网站

自定义时间格式格式github:https://uxsolutions.github.io/bootstrap-datepicker/?#sandbox
官网:https://bootstrap-datepicker.readthedocs.io/en/latest/index.html

引入插件







使用插件

//跟进时间使用日期插件
$("input[name=traceTime]").datepicker({
    language: "zh-CN", //语言
    autoclose: true, //选择日期后自动关闭
    todayHighlight: true //高亮今日日期
});

三、客户移交功能

需要重新安排销售员,需要移交功能,移交后必须要保留移交记录 ,方便查找记录,一般是管理员或经理才可以使用的功能

实体类

@Setter
@Getter
public class CustomerTransfer {
    private Long id;
    //客户
    private Customer customer;
    //操作人
    private Employee operator;
    //操作时间
    private Date operateTime;
    //旧销售人员
    private Employee oldSeller;
    //新销售人员
    private Employee newSeller;
    //移交原因
    private String reason;
}

移交实现

  1. 把客户的销售人员改为新的销售人员
    
        update customer
        set  status = #{status,jdbcType=INTEGER}
        where id = #{id,jdbcType=BIGINT}
    
  1. 保存一条移交历史记录(新增移交历史)
    @Override
    public void save(CustomerTransfer customerTransfer) {
        // 更新客户销售人员字段为移交的销售人员
        Long customerId = customerTransfer.getCustomer().getId();
        Long sellerId = customerTransfer.getNewSeller().getId();
        System.out.println(customerId);
        System.out.println(sellerId);
        customerMapper.updateSeller(sellerId, customerId);

        // ----- 保存移交历史 ------
        customerTransfer.setOperator(UserContext.getCurrentUser());// 设置录入人
        customerTransfer.setOperateTime(new Date());// 设置录入时间
        customerTransferMapper.insert(customerTransfer);// 保存客户
    }

你可能感兴趣的:(CRM项目07)