美文网首页
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

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