美文网首页
CRM项目07

CRM项目07

作者: 建国同学 | 来源:发表于2020-05-24 18:11 被阅读0次

复习

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

移交实现

  1. 把客户的销售人员改为新的销售人员
    <update id="updateStatus" parameterType="cn.wolfcode.domain.Customer">
        update customer
        set  status = #{status,jdbcType=INTEGER}
        where id = #{id,jdbcType=BIGINT}
    </update>
  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

    复习 @Param参数当有参数类型相同的时候parameterType判断不错参数使用哪一个,需要添加@Param...

  • crm项目

    项目目的:能一目了然看到项目进展情况、客户进展情况 数据包含:服务行销数据、项目进展相关数据 目前仅能做到服务行销...

  • 如何正确评估CRM项目实施风险?(三)

    越来越多的企业面临着企业数据化建设时,首选建立CRM数据库,实施CRM项目首先要对项目进行评估,如何评估CRM实施...

  • 八骏:CRM调研,企业需要做什么呢?

    CRM调研阶段是CRM实施的第一步,一般都是具有个性化配置需求的CRM项目需要调研。企业在确定CRM厂商之后就会进...

  • CRM实施流程环节_八骏CRM

    CRM客户管理系统的实施流程很重要,成熟的实施流程能大大降低CRM项目失败的风险。八骏CRM客户管理系统的实施流程...

  • CRM项目08

    复习 mybatis里排序用${},是把 ${ } 替换成变量的值,完成的是简单的字符串拼接。参数用#{},预编译...

  • CRM项目02

    一、Bootstrap-Validator验证插件 下载:http://bootstrapvalidator.vo...

  • CRM项目01

    一、Freemarker FreeMarker 是一款免费的模板引擎 对比 JSP 而言,FreeMarker 性...

  • CRM项目06

    复习 List selectByRoleSn(String... sn); 可变参数,可以直接传多个字符串,...

  • CRM项目05

    一、 导入导出功能 Apache POI Apache POI 是 Apache 软件基金会的开放源码函式库,PO...

网友评论

      本文标题:CRM项目07

      本文链接:https://www.haomeiwen.com/subject/hrkjahtx.html