1 学习计划

1、定区关联客户

n 完善CRM服务中的客户查询方法

n 在BOS项目中配置代理对象远程调用crm服务

n 调整定区关联客户页面

n 实现定区关联客户

2、查看定区中包含的分区

n 页面调整

n 服务端实现

3、查看定区关联的客户列表数据

n 页面调整

n 服务端通过代理对象远程调用CRM服务活动客户信息

 

定区关联客户

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中提供关联客户方法

查看定区中包含的分区

页面:WEB-INF/pages/base/decidedzone.jsp

3.1 页面调整

第一步:为datagrid绑定数据事件

第二步:定义doDblClickRow函数

3.2 服务端实现

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

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

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

    public String findListHasAssociation(){
List<Customer> list2 = customerService.findByHasAssociation(model.getId());
ObjectToJson(list2, null);
return NONE;
}

 

JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户的更多相关文章

  1. 在maven项目中 配置代理对象远程调用crm

    1 在maven项目中配置代理对象远程调用crm 1.1 在项目的pom.xml中引入CXF的依赖 <dependency> <groupId>org.apache.cxf&l ...

  2. JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入

    1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...

  3. JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作

    1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...

  4. JAVAEE——BOS物流项目07:WebService入门、apache CXF入门、基于CXF发布CRM服务

    1 学习计划 1.WebService入门 n 什么是WebService n 调用网络上的WebService服务 n SOAP和WSDL概念 n 基于JDK1.7发布一个简单的WebService ...

  5. JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理

    1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...

  6. JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图

    1 学习计划 1.Quartz概述 n Quartz介绍和下载 n 入门案例 n Quartz执行流程 n cron表达式 2.在BOS项目中使用Quartz创建定时任务 3.在BOS项目中使用Jav ...

  7. JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能

    1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...

  8. JAVAEE——BOS物流项目13:Quartz入门案例、核心概念、cron 表达式的格式(了解)

    1.quartz入门案例 本入门案例基于spring和quartz整合完成. 第一步:创建maven工程,导入spring和quartz相关依赖 第二步:创建任务类 第三步:在spring配置文件中配 ...

  9. JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)

    1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ...

随机推荐

  1. 利用 jQuery 来验证密码两次输入是否相同

    html <div class="row"> <div class="panel panel-info"> <div class= ...

  2. 【php】DIRECTORY_SEPARATOR的作用

    DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用. 在windows下路径分隔符是/(当然/在部分系统上也是可以正常运行的),在li ...

  3. 图像处理------透明混合 - Alpha Blending效果

    基本原理: 图像的透明混合有个专属名词– Alpha Blending 对任意两张图像可以合成为一张图像,合成图像的像素取值根据数学公式: RGB3 = (1- a) * RGB1 + a * RGB ...

  4. 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 ...

  5. 小白——java基础之数据类型

    PS:此文章为小白提供,大佬请绕道!!!! 首先特别感谢大才哥给我提供这个平台,未来我希望把java这个版块的内容补全. 今天要讲的是数据类型,最最最基础的内容~ java标识符.数据类型.关键字 开 ...

  6. 2016四川省赛 Floyd-Warshall

    这题真的有毒 首先你忽略 N-M < 100 的条件你就gg吧 其次就算你知道了怎么做之后 还有可能因为写vector或者各种常数大的原因被卡 #include<iostream> ...

  7. 二叉树与AVL树

    二叉树 什么是二叉树? 父节点至多只有两个子树的树形结构成为二叉树.如下图所示,图1不是二叉树,图2是一棵二叉树. 图1 普通的树                                    ...

  8. 洛谷U19464 山村游历(Wander)(LCT,Splay)

    洛谷题目传送门 LCT维护子树信息常见套路详见我的总结 闲话 题目摘自WC模拟试题(by Philipsweng),原题目名Wander,"山村游历"是自己搞出来的中文名. 数据自 ...

  9. [Luogu4174][NOI2006]最大获益

    luogu sol 一周没摸键盘了回来刷刷水题练练手感 显然,最大化收益可以转化为最小化损失,从而建立最小割模型. 记\(tot=\sum_{i=1}^{m}C_i\),事先假设所有的获益都得到了,那 ...

  10. 【BZOJ1006】神奇的国度(弦图)

    [BZOJ1006]神奇的国度(弦图) 题面 BZOJ 题解 直接参考弦图的做法 #include<iostream> #include<cstdio> #include< ...