JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
1 学习计划
1、定区关联客户
n 完善CRM服务中的客户查询方法
n 在BOS项目中配置代理对象远程调用crm服务
n 调整定区关联客户页面
n 实现定区关联客户
2、查看定区中包含的分区
n 页面调整
n 服务端实现
3、查看定区关联的客户列表数据
n 页面调整
n 服务端通过代理对象远程调用CRM服务活动客户信息
2 定区关联客户
2.1 在BOS项目中配置代理对象远程调用crm
第一步:在BOS项目的pom.xml中引入CXF的依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.0.1</version>
</dependency>
第二步:使用wsimport命令解析wsdl文件生成本地代码,只需要接口文件和实体类

第三步:在spring配置文件中注册crm客户端代理对象
<!-- 注册crm客户端代理对象 -->
<jaxws:client id="crmClient"
serviceClass="com.itheima.crm.ICustomerService"
address="http://192.168.115.89:8080/crm_heima32/service/customer"/>
第四步:通过注解方式将代理对象注入给Action

2.2 完善CRM服务中的客户查询方法
l 在crm服务中的接口中扩展两个方法

l 在实现类中实现方法
//查询未关联到定区的客户
public List<Customer> findListNotAssociation() {
String sql = "select * from t_customer where decidedzone_id is null";
List<Customer> list = jdbcTemplate.query(sql, new RowMapper<Customer>(){
public Customer mapRow(ResultSet rs, int arg1) throws SQLException {
int id = rs.getInt("id");//根据字段名称从结果集中获取对应的值
String name = rs.getString("name");
String station = rs.getString("station");
String telephone = rs.getString("telephone");
String address = rs.getString("address");
String decidedzone_id = rs.getString("decidedzone_id");
return new Customer(id, name, station, telephone, address, decidedzone_id);
}
});
return list;
} //查询已经关联到指定定区的客户
public List<Customer> findListHasAssociation(String decidedzoneId) {
String sql = "select * from t_customer where decidedzone_id = ?";
List<Customer> list = jdbcTemplate.query(sql, new RowMapper<Customer>(){
public Customer mapRow(ResultSet rs, int arg1) throws SQLException {
int id = rs.getInt("id");//根据字段名称从结果集中获取对应的值
String name = rs.getString("name");
String station = rs.getString("station");
String telephone = rs.getString("telephone");
String address = rs.getString("address");
String decidedzone_id = rs.getString("decidedzone_id");
return new Customer(id, name, station, telephone, address, decidedzone_id);
}
},decidedzoneId);
return list;
}
注意:服务端扩展了新的方法,需要客户端重新生成客户端代码
2.3 调整定区关联客户页面
页面:WEB-INF/pages/base/decidedzone.jsp

第一步:修改定区页面中关联客户按钮绑定事件处理函数
function doAssociations(){
//获取当前数据表格所有选中的行,返回数组
var rows = $("#grid").datagrid("getSelections");
if(rows.length != 1){
//弹出提示
$.messager.alert("提示信息","请选择一个定区操作!","warning");
}else{
//选中了一个定区
$('#customerWindow').window('open');
//清理下拉框
$("#noassociationSelect").empty();
$("#associationSelect").empty();
//发送ajax请求,请求定区Action,在定区Action中通过crm代理对象完成对于crm服务远程调用获取客户数据
var url_1 = "decidedzoneAction_findListNotAssociation.action";
$.post(url_1,function(data){
//遍历json数组
for(var i=0;i<data.length;i++){
var id = data[i].id;
var name = data[i].name;
var telephone = data[i].telephone;
name = name + "(" + telephone + ")";
$("#noassociationSelect").append("<option value='"+id+"'>"+name+"</option>");
}
});
//发送ajax请求,请求定区Action,在定区Action中通过crm代理对象完成对于crm服务远程调用获取客户数据
var url_2 = "decidedzoneAction_findListHasAssociation.action";
var decidedzoneId = rows[0].id;
$.post(url_2,{"id":decidedzoneId},function(data){
//遍历json数组
for(var i=0;i<data.length;i++){
var id = data[i].id;
var name = data[i].name;
var telephone = data[i].telephone;
name = name + "(" + telephone + ")";
$("#associationSelect").append("<option value='"+id+"'>"+name+"</option>");
}
});
}
}
第二步:在定区Action中注入crm代理对象,并且提供方法远程调用crm服务

第三步:为关联客户窗口中左右移动两个按钮绑定事件

第四步:为定区关联客户窗口中的“关联客户”按钮绑定事件


2.4 在crm服务端扩展定区关联客户方法

注意:crm服务端扩展方法后,需要bos客户端重新生成客户端代码
2.5 在定区Action中提供关联客户方法

3 查看定区中包含的分区
页面:WEB-INF/pages/base/decidedzone.jsp
3.1 页面调整
第一步:为datagrid绑定数据事件

第二步:定义doDblClickRow函数

3.2 服务端实现
l 在分区Action中提供方法,根据定区id查询关联的分区

l 在SubareaServiceImpl中提供方法,根据定区id查询关联的分区

4 查看定区中关联的客户信息

public String findListHasAssociation(){
List<Customer> list2 = customerService.findByHasAssociation(model.getId());
ObjectToJson(list2, null);
return NONE;
}
JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户的更多相关文章
- 在maven项目中 配置代理对象远程调用crm
1 在maven项目中配置代理对象远程调用crm 1.1 在项目的pom.xml中引入CXF的依赖 <dependency> <groupId>org.apache.cxf&l ...
- JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入
1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...
- JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...
- JAVAEE——BOS物流项目07:WebService入门、apache CXF入门、基于CXF发布CRM服务
1 学习计划 1.WebService入门 n 什么是WebService n 调用网络上的WebService服务 n SOAP和WSDL概念 n 基于JDK1.7发布一个简单的WebService ...
- JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理
1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...
- JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图
1 学习计划 1.Quartz概述 n Quartz介绍和下载 n 入门案例 n Quartz执行流程 n cron表达式 2.在BOS项目中使用Quartz创建定时任务 3.在BOS项目中使用Jav ...
- JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能
1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...
- JAVAEE——BOS物流项目13:Quartz入门案例、核心概念、cron 表达式的格式(了解)
1.quartz入门案例 本入门案例基于spring和quartz整合完成. 第一步:创建maven工程,导入spring和quartz相关依赖 第二步:创建任务类 第三步:在spring配置文件中配 ...
- JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)
1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ...
随机推荐
- JAVA的helloworld
java环境设置------------- 在环境变量中设置以下三个变量:JAVA_HOME=C:\j2sdk1.4.1 //可以改为相应的目录CLASSPATH=%JAVA_HOME%\lib\to ...
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗
1. TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的.基于IP的传输层协议,采用三次握手确认建立一个连接. TCP为 ...
- 配置WebLogic的详细步骤
配置WebLogic的详细步骤 1.安装好WebLogic后,进入配置阶段,点击"Getting started with WebLogic Server 10.3.6" 2.进入 ...
- Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection
1.错误描述 Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection[jdbc\:mysql\://loca ...
- Xenu-web开发死链接检测工具应用
Xenu 是一款深受业界好评,并被广泛使用的死链接检测工具. 时常检测网站并排除死链接,对网站的SEO 非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任,web程序开发人员还可通过其找到死 ...
- OpenStack_I版 1.准备过程
openstack是一个开源云平台,python开发 此次部署为实验环境, 采用扁平化简单的网络架构部署 优点:低耦合的,模块化 ...
- POJ 2104 K-th Number 主席树
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...
- 在Visual Studio 2012中使用GSL
1. 下载GSL http://gnuwin32.sourceforge.net/packages/gsl.htm 下载 Complete package, except sources和Source ...
- 【SoDiaoEditor电子病历编辑器】编辑器支持移动化
写在前面 每次写SoDiao时都是一次灵魂拷问,这么猥琐的名字,会对程序媛产生多少误导啊,我是一个正直的人,不管你信不信每个见到我的人都这么说.本次更新拖了很久,本来半个月前应该实现的,却一直拖到昨天 ...
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action.RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传.而Partial.RenderPa ...