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折叠 ...
随机推荐
- 利用 jQuery 来验证密码两次输入是否相同
html <div class="row"> <div class="panel panel-info"> <div class= ...
- 【php】DIRECTORY_SEPARATOR的作用
DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用. 在windows下路径分隔符是/(当然/在部分系统上也是可以正常运行的),在li ...
- 图像处理------透明混合 - Alpha Blending效果
基本原理: 图像的透明混合有个专属名词– Alpha Blending 对任意两张图像可以合成为一张图像,合成图像的像素取值根据数学公式: RGB3 = (1- a) * RGB1 + a * RGB ...
- Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
1.错误描述 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.tes ...
- 小白——java基础之数据类型
PS:此文章为小白提供,大佬请绕道!!!! 首先特别感谢大才哥给我提供这个平台,未来我希望把java这个版块的内容补全. 今天要讲的是数据类型,最最最基础的内容~ java标识符.数据类型.关键字 开 ...
- 2016四川省赛 Floyd-Warshall
这题真的有毒 首先你忽略 N-M < 100 的条件你就gg吧 其次就算你知道了怎么做之后 还有可能因为写vector或者各种常数大的原因被卡 #include<iostream> ...
- 二叉树与AVL树
二叉树 什么是二叉树? 父节点至多只有两个子树的树形结构成为二叉树.如下图所示,图1不是二叉树,图2是一棵二叉树. 图1 普通的树 ...
- 洛谷U19464 山村游历(Wander)(LCT,Splay)
洛谷题目传送门 LCT维护子树信息常见套路详见我的总结 闲话 题目摘自WC模拟试题(by Philipsweng),原题目名Wander,"山村游历"是自己搞出来的中文名. 数据自 ...
- [Luogu4174][NOI2006]最大获益
luogu sol 一周没摸键盘了回来刷刷水题练练手感 显然,最大化收益可以转化为最小化损失,从而建立最小割模型. 记\(tot=\sum_{i=1}^{m}C_i\),事先假设所有的获益都得到了,那 ...
- 【BZOJ1006】神奇的国度(弦图)
[BZOJ1006]神奇的国度(弦图) 题面 BZOJ 题解 直接参考弦图的做法 #include<iostream> #include<cstdio> #include< ...