复习
- @Param参数
当有参数类型相同的时候parameterType判断不错参数使用哪一个,需要添加@Param注解来区别参数
void updateSeller(@Param("sellerId") Long sellerId, @Param("customerId") Long Id);
<update id="updateSeller" parameterType="java.lang.Long">
update customer set seller_id = #{sellerId,jdbcType=BIGINT}
where id = #{customerId,jdbcType=BIGINT}
</update>
一、客户跟进功能
介绍
跟进功能是为了记录目前客户的情况,以便日后回访和循迹调查。
跟进时产生跟进历史,该历史需要客户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
引入插件
<!--引入日期插件的样式文件-->
<link rel="stylesheet" href="/js/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css"/>
<!--引入日期插件的js文件-->
<script type="text/javascript" src="/js/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
<!--引入中文国际化文件-->
<script type="text/javascript" src="/js/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js"></script>
使用插件
//跟进时间使用日期插件
$("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;
}
移交实现
- 把客户的销售人员改为新的销售人员
<update id="updateStatus" parameterType="cn.wolfcode.domain.Customer">
update customer
set status = #{status,jdbcType=INTEGER}
where id = #{id,jdbcType=BIGINT}
</update>
- 保存一条移交历史记录(新增移交历史)
@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);// 保存客户
}
网友评论