CRM_day02

  1. CRM_day02笔记

    1. 上次课内容回顾

  • SVN
    • SVN:版本控制工具。
    • 常见版本控制工具
      • SVN
      • CVS
      • GIT
    • 安装SVN服务器
    • 安装SVN客户端
    • SVN的使用
      • 检出checkout
      • 更新update
      • 提交commit
      • 解决SVN冲突问题
    • SVN的权限的设置
      • SVN创建用户
      • SVN创建组
      • SVN设置权限
    • SVN的Eclipse的插件
  • 搭建CRM环境
    • CRM:客户关系管理
    • CRM准备工作:
  • CRM用户的注册功能
    • 完成用户注册的功能
  • 将CRM部署SVN服务器上
  1. CRM综合练习:用户模块登录功能

  1. 用户模块:登录功能代码实现

    1. 修改登录页面

  1. 编写Action中login方法

  1. 编写Service

  1. 编写DAO

  1. 配置页面的跳转

  1. 在页面中显示数据

  • 在成功页面上显示用户信息

  • 在失败的页面上显示错误信息

  1. CRM综合练习:客户管理保存客户

  1. 客户管理:准备工作

    1. 创建表

CREATE TABLE `cst_customer` (

`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',

`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',

`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',

`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',

`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',

`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',

`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',

PRIMARY KEY (`cust_id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

  1. 创建实体和映射

  • 创建实体

  • 创建映射

  1. 创建Action

  1. 创建Service

  1. 创建DAO

  1. 配置Action、Service、DAO

  1. 跳转到添加页面

    1. 修改左侧菜单页面

  1. 编写Action中的saveUI的方法

  1. 配置Action的跳转

  1. 测试跳转

  1. 引入数据字典

    1. 什么是数据字典

数据字典用来规范某些地方具体值和数据

  1. 创建数据字典表

CREATE TABLE `base_dict` (

`dict_id` varchar(32) NOT NULL COMMENT '数据字典id(主键)',

`dict_type_code` varchar(10) NOT NULL COMMENT '数据字典类别代码',

`dict_type_name` varchar(64) NOT NULL COMMENT '数据字典类别名称',

`dict_item_name` varchar(64) NOT NULL COMMENT '数据字典项目名称',

`dict_item_code` varchar(10) DEFAULT NULL COMMENT '数据字典项目(可为空)',

`dict_sort` int(10) DEFAULT NULL COMMENT '排序字段',

`dict_enable` char(1) NOT NULL COMMENT '1:使用 0:停用',

`dict_memo` varchar(64) DEFAULT NULL COMMENT '备注',

PRIMARY KEY (`dict_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  1. 客户表和字典表的关系分析

  1. 创建字典的实体和映射

  • 创建实体

  • 创建映射

  1. 修改字典和客户的关系映射

  • 修改了客户的实体

 

  • 修改客户的映射

  1. 将映射文件交给Spring

  1. 在添加页面上异步加载字典数据

    1. 创建字典的Action、Service、DAO

  • 编写DAO

  • 编写Service

  • 编写Action

  1. 将字典类交给Spring

  1. 引入jquery的js(在添加页面上)

  1. 编写异步加载的方法

<script type="text/javascript">

    $(function(){

        // 页面加载函数就会执行:

        // 页面加载,异步查询字典数据:

        // 加载客户来源

        $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"002"},function(data){

            // 遍历json的数据:

            $(data).each(function(i,n){

                $("#cust_source").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");

            });

        },"json");

    });

</script>

  1. 编写Action

  1. 编写Service

  1. 编写DAO

  1. 加载其他字典项数据

<script type="text/javascript">

    $(function(){

        // 页面加载函数就会执行:

        // 页面加载,异步查询字典数据:

        // 加载客户来源

        $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"002"},function(data){

            // 遍历json的数据:

            $(data).each(function(i,n){

                $("#cust_source").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");

            });

        },"json");

        $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"006"},function(data){

            // 遍历json的数据:

            $(data).each(function(i,n){

                $("#cust_level").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");

            });

        },"json");

        $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"001"},function(data){

            // 遍历json的数据:

            $(data).each(function(i,n){

                $("#cust_industry").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");

            });

        },"json");

    });

</script>

  1. 保存数据到数据库中

    1. 修改添加页面

  • 修改表单项名称:

  1. 编写Action

  1. 编写Service

  1. 编写DAO

  1. 添加事务:

 

  1. CRM综合练习:客户管理分页查询客户

  1. 查询客户(分页)

    1. 修改menu.jsp

  1. 编写Action中findAll的方法

    public String findAll() {

        // 接收参数:分页参数

        // 最好使用DetachedCriteria对象(条件查询--带分页)

        DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class);

        // 调用业务层查询:

        PageBean<Customer> pageBean = customerService.findByPage(detachedCriteria, currPage, pageSize);

        ActionContext.getContext().getValueStack().push(pageBean);

        return "findAll";

    }

  1. 编写Service

    @Override

    // 业务层分页查询客户的方法:

    public PageBean<Customer> findByPage(DetachedCriteria detachedCriteria, Integer currPage,Integer pageSize) {

        PageBean<Customer> pageBean = new PageBean<Customer>();

        // 封装当前页数:

        pageBean.setCurrPage(currPage);

        // 封装每页显示记录数:

        pageBean.setPageSize(pageSize);

        // 封装总记录数:

        // 调用DAO:

        Integer totalCount = customerDao.findCount(detachedCriteria);

        pageBean.setTotalCount(totalCount);

        // 封装总页数:

        Double tc = totalCount.doubleValue();

        Double num = Math.ceil(tc/pageSize);

        pageBean.setTotalPage(num.intValue());

        // 封装每页显示数据的集合

        Integer begin = (currPage - 1) * pageSize;

        List<Customer> list = customerDao.findByPage(detachedCriteria,begin,pageSize);

        pageBean.setList(list);

        return pageBean;

    }

  1. 编写DAO

    @Override

    // DAO中带条件统计个数的方法

    public Integer findCount(DetachedCriteria detachedCriteria) {

        // select count(*) from xxx where 条件;

        detachedCriteria.setProjection(Projections.rowCount());

        List<Long> list = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);

        if(list.size()>0){

            return list.get(0).intValue();

        }

        return null;

    }

 

    @Override

    // DAO中分页查询客户的方法

    public List<Customer> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize) {

        detachedCriteria.setProjection(null);

        return (List<Customer>) this.getHibernateTemplate().findByCriteria(detachedCriteria, begin, pageSize);

    }

  1. 配置页面跳转

  1. 在list.jsp中显示数据

 

posted @ 2020-06-02 18:21  学菜狗  阅读(148)  评论(0)    收藏  举报