1 學習計劃 1、定區關聯客戶 n 完善CRM服務中的客戶查詢方法 n 在BOS項目中配置代理對象遠程調用crm服務 n 調整定區關聯客戶頁面 n 實現定區關聯客戶 2、查看定區中包含的分區 n 頁面調整 n 服務端實現 3、查看定區關聯的客戶列表數據 n 頁面調整 n 服務端通過代理對象遠程調用C ...
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; }