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. hive上mysql元数据库配置

    hive调试信息显示模式: ./hive -hiveconf hive.root.logger=DEBUG,console 非常有用. 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只 ...

  2. 2.5 非透明PCI桥

    PCI桥规范定义了透明桥的实现规则,本篇在第2.3.1节中详细介绍了这种桥片.通过透明桥,处理器系统可以以HOST主桥为根节点,建立一颗PCI总线树,在这个树上的PCI设备共享同一个PCI总线域上的地 ...

  3. FusionCharts封装-Label

    Category.java: /** * @Title:Category.java * @Package:com.fusionchart.model * @Description:FusionChar ...

  4. FusionWidgets Bulb图

    1.数据源提供 Bulb.xml: <?xml version="1.0" encoding="UTF-8"?> <chart lowerLi ...

  5. Vxworks下的SATA提速

    1.       ATA接口的三种数据传输方式 (1)PIO(Programmable Input-Output)传输,可以分为PIO寄存器传输和PIO数据传输.PIO寄存器传输主要用于对ATA设备中 ...

  6. 使用AOP的好处

    原始代码的写法 既然要通过代码来演示,那必须要有例子,这里我的例子为: 有一个接口Dao有insert.delete.update三个方法,在insert与update被调用的前后,打印调用前的毫秒数 ...

  7. dom文档对象模型图

  8. OpenAI dota2大战人类顶尖选手视频

    AI大战Dendi:http://www.bilibili.com/video/av13267474/?zw#quality=3 AI大战Sumail:http://www.bilibili.com/ ...

  9. 关于Mybatis的java.lang.UnsupportedOperationException异常处理

    圈住的那行报java.lang.UnsupportedOperationException这个错,这个错的意思是:不支持的操作异常 异常我就不贴了,直接上解决办法吧. 可能我的异常跟大家的不太一样,报 ...

  10. 如何解决Reporting Services目录数据库文件存在的问题

    打开MSSQL数据库管理系统的安装目录,例如:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA,C:\是你 ...