• SSH与SSM学习之SSH实现CRM练习17添加客户拜访记录和列表

    • 一添加客户拜访记录和列表演示

      • 1 添加客户拜访记录演示
      • 2 客户拜访记录列表演示
    • 二添加客户拜访记录分析
    • 三添加客户拜访记录表实体关系
      • 1 表关系
      • 2 实体
    • 四添加客户拜访记录界面分析
    • 五SaleVisitAction
    • 六SaleVisitServiceImpl
    • 七源码位置
      • 1 addjsp
      • 2 listjsp
      • 3 SaleVisitActionjava
      • 4 SaleVisitServicejava
      • 5 SaleVisitServiceImpljava
      • 6 applicationContextxml
      • 7 strutsxml
    • 八源码下载

SSH与SSM学习之SSH实现CRM练习17——添加客户拜访记录和列表

一、添加客户拜访记录和列表演示

1.1 添加客户拜访记录演示

1.2 客户拜访记录列表演示


二、添加客户拜访记录分析

添加客户拜访记录和添加联系人是一样的。没什么好说的。
列表也如此


三、添加客户拜访记录表实体关系

3.1 表关系

3.2 实体


四、添加客户拜访记录界面分析


五、SaleVisitAction

/*** @author:qiwenming* @date:2017/12/3 0003* @description:* 客户拜访*/
public class SaleVisitAction extends ActionSupport implements ModelDriven<SaleVisit>{private SaleVisit saleVisit = new SaleVisit();private SaleVisitService svs ;/*** 添加客户拜访记录* @return* @throws Exception*/public String add() throws Exception{//1.取出登录用户,放入SaleVisit实体表达关系User u = (User) ActionContext.getContext().getSession().get("user");saleVisit.setUser(u);//2.调用Service保存客户拜访记录//加上这个if的原因是这样的,因为我们的SaleVisit的id默认是 "" 在添加记录的时候,回去执行//update语句,把id设置为null,那么它就回去执行 save了if(saleVisit.getVisit_id()==null || saleVisit.getVisit_id().trim().equals("")) {saleVisit.setVisit_id(null);}svs.save(saleVisit);//3.重定向到拜访记录列表Actionreturn "toList";}private Integer currentPage;private Integer pageSize;public String list() throws Exception {//封装离线查询对象DetachedCriteria dc = DetachedCriteria.forClass(SaleVisit.class);//判断并封装参数if(saleVisit.getCustomer()!=null &&saleVisit.getCustomer().getCust_id()!=null){dc.add(Restrictions.eq("customer.cust_id",saleVisit.getCustomer().getCust_id()));}if(saleVisit.getUser()!=null &&saleVisit.getUser().getUser_id()!=null){dc.add(Restrictions.eq("user.user_id",saleVisit.getUser().getUser_id()));}//1 调用Service查询分页数据(PageBean)PageBean pb = svs.getPageBean(dc,currentPage,pageSize);//2 将PageBean放入request域,转发到列表页面显示ActionContext.getContext().put("pageBean", pb);return "list";}/*** 编辑*/public String toEdit() throws Exception {//1 调用Service根据id查询客户拜访对象SaleVisit sv = svs.getById(saleVisit.getVisit_id());//2 将对象放入request域ActionContext.getContext().put("saleVisit", sv);//3 转发到add.jspreturn "add";}/*** 编辑*/public String delete() throws Exception {svs.delete(saleVisit);return "toList";}@Overridepublic SaleVisit getModel() {return saleVisit;}public SaleVisitService getSvs() {return svs;}public void setSvs(SaleVisitService svs) {this.svs = svs;}public Integer getCurrentPage() {return currentPage;}public void setCurrentPage(Integer currentPage) {this.currentPage = currentPage;}public Integer getPageSize() {return pageSize;}public void setPageSize(Integer pageSize) {this.pageSize = pageSize;}
}

六、SaleVisitServiceImpl

/*** @author:qiwenming* @date:2017/12/3 0003* @description:* 客户拜访*/
public class SaleVisitServiceImpl implements SaleVisitService {private SaleVisitDao svd;@Overridepublic void save(SaleVisit saleVisit) {svd.saveOrUpdate(saleVisit);}@Overridepublic PageBean getPageBean(DetachedCriteria dc, Integer currentPage, Integer pageSize) {//1 调用Dao查询总记录数Integer totalCount = svd.getTotalCount(dc);//2 创建PageBean对象PageBean pb = new PageBean(currentPage, totalCount, pageSize);//3 调用Dao查询分页列表数据List<SaleVisit> list = svd.getPageList(dc,pb.getStart(),pb.getPageSize());//4 列表数据放入pageBean中.并返回pb.setList(list);return pb;}@Overridepublic SaleVisit getById(String visit_id) {return svd.getById(visit_id);}@Overridepublic void delete(SaleVisit saleVisit) {svd.delete(saleVisit);}public void setSvd(SaleVisitDao svd) {this.svd = svd;}
}

七、源码位置

7.1 add.jsp

https://github.com/wimingxxx/ssh_crm/blob/master/web/jsp/salevisit/add.jsp

7.2 list.jsp

https://github.com/wimingxxx/ssh_crm/blob/master/web/jsp/salevisit/list.jsp

7.3 SaleVisitAction.java

https://github.com/wimingxxx/ssh_crm/blob/master/src/com/qwm/ssh_crm/web/action/SaleVisitAction.java

7.4 SaleVisitService.java

https://github.com/wimingxxx/ssh_crm/blob/master/src/com/qwm/ssh_crm/service/SaleVisitService.java

7.5 SaleVisitServiceImpl.java

https://github.com/wimingxxx/ssh_crm/blob/master/src/com/qwm/ssh_crm/service/impl/SaleVisitServiceImpl.java

7.6 applicationContext.xml

https://github.com/wimingxxx/ssh_crm/blob/master/src/applicationContext.xml

7.7 struts.xml

https://github.com/wimingxxx/ssh_crm/blob/master/src/struts.xml


八、源码下载

https://github.com/wimingxxx/ssh_crm

SSH与SSM学习之SSH实现CRM练习17——添加客户拜访记录和列表相关推荐

  1. 联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码

    联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码 客户拜访记录的列表的显示, 客户拜访记录的保存, 客户拜访记录查询(条件 ...

  2. CRM客户关系管理系统开发第十八讲——实现客户拜访记录管理模块中保存客户拜访记录的功能

    跳转到客户拜访记录添加页面 要想实现客户拜访记录管理模块中的保存客户拜访记录的功能,首要前提就是点击新增客户拜访超链接之后要能跳转到客户拜访记录添加页面.前面我们都做完两个模块了,做到这一点还不是依葫 ...

  3. CRM客户关系管理系统开发第十七讲——实现客户拜访记录管理模块中分页查询客户拜访记录列表的功能

    在CRM客户关系管理系统中,客户的拜访是很重要的一个环节,由业务员面见客户并介绍公司的相关的业务,在业务员回到公司以后,需要对此次的拜访的整个过程记录下来,记录中需要包含拜访的客户的姓名,拜访的时间以 ...

  4. CRM客户关系管理系统开发第十九讲——实现客户拜访记录管理模块中条件查询客户拜访记录列表的功能

    在客户拜访记录列表页面上准备一些筛选条件 首先,咱得在客户拜访记录列表页面上准备一些筛选条件,不妨我们按照拜访时间来进行筛选.之前咱在实现联系人管理模块中条件查询联系人列表的功能时,文本输入框使用的是 ...

  5. Java面试题:SSH和SSM原理对比总结以及牵扯到的面试问题

    当下流行的两种企业开发MVC开源框架,是我们Java程 序猿必备知识能力.MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑dao层. ...

  6. CRM第六天:客户拜访管理,权限配置,验证码实现

    目录 1.CRM客户关系管理系统:客户拜访记录 1.1需求概述 1.2准备工作 1.2.1创建表 1.2.2创建实体和映射 1.2.3创建相关类,并交给Spring管理 1.3客户拜访记录列表显示 1 ...

  7. Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较

    SSH和SSM定义 SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做控制 ...

  8. SSM框架和SSH框架的详细对比

    最近了解到SSH框架的使用的企业越来越少了,SSM框架更受青睐,我就了解了一下两种框架体系的区别.反正都要学,现在我已经学过了SSH框架,接下来就是学SSM框架了. 声明:下边的内容是我转载 学习的. ...

  9. Linux ssh/scp/docker学习

    文章目录 Linux ssh/scp/docker使用学习 1. ssh 登录 2. scp传输文件 3. docker 4. git checkout 替换指定分支的单个文件 Linux ssh/s ...

最新文章

  1. android handler,Android中Handler原理
  2. android获取本地图片后缀,Android向图片文件添加扩展信息EXIF如地点,时间,人物等...
  3. cout不明确什么意思_劈腿什么意思?原来出轨和劈腿不一样!原来如此!
  4. 工作159:根据id传向把对象里面的整个数据传向下个接口
  5. Centos5.11 使用yum源
  6. 3d数学基础:图形和游戏开发(第2版)_游戏引擎编程需要哪些基本数学知识?
  7. 官宣:Linux 内核主要贡献者 Linaro「喜提」新任 CEO!
  8. 2022年,雅迪电动车还能保持销量神话吗?
  9. 目标检测中常见指标 AP MAP coco Pascal voc 评价指标说明
  10. android流光字体实现,CSS实现字体流光/高光滑动
  11. android制作类似支付圆圈和打钩界面ProgressWheel
  12. 解决ntp的错误:no server can be used,exiting
  13. 一个程序员的奋斗txt
  14. 一文彻底理解评分卡开发中——Y的确定(Vintage分析、滚动率分析等)
  15. 微信小程序--视频播放器
  16. Java:extends 和 implements 的区别
  17. 太赞了!华为工程师总结的Linux+K8S笔记,提供下载
  18. 网络安全现状与未来蓝图||建立高效的网络安全体系
  19. Docker(四):Docker可视化管理工具
  20. CCRC信息安全服务资质--应急处理

热门文章

  1. 窄带物联网将成为发展趋势
  2. Ubuntu录屏工具
  3. win10某些软件图标显示过小解决方法
  4. Cleave input输入框 自动格式化内容
  5. 神经系统图 基本结构图,神经系统分类和组成图
  6. Http Chunked理解
  7. 怎么通过按钮进行一键截图并保留在文件中
  8. 制作一个简单HTML家乡网页(HTML+CSS)---家乡邢台 页面7个
  9. 【Effective C++ 学习笔记】
  10. 提高工作效率的bat脚本,批量修改文件名脚本(批量修改替换、大小写转换)