package com.bjdata.bjsearch.presentation.action.thirdinter;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletInputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import com.bjdata.bjsearch.persistence.stroremanage.order.dao.impl.BiOrderProd;
import com.bjdata.bjsearch.persistence.stroremanage.order.service.IOrderService;
import com.bjdata.bjsearch.presentation.action.BaseAction;
import com.bjdata.bjsearch.util.Misc;
import com.bjdata.bjsearch.util.Util;
import com.bjdata.util.SecurityUtils;
public class DianpingInter extends BaseAction{
private static final String LEAGUETYPE = "dianping";
private static final Long STOREID = 4672143L;
private static final double PERCENT=0.04;
private String result;
public String execute() {
IOrderService orderService = (IOrderService) this.getServiceBean("orderService");
//成功
result = "succ";
try {
//解析xml
ServletInputStream in = this.getRequest().getInputStream();
BiOrderProd prod = new BiOrderProd();
prod.setStoreid(STOREID);
prod.setPmid(String.valueOf(STOREID));
prod.setProductcode("1");
prod.setProductid("-1");
prod.setUserid(0l);
prod.setLeaguetype(LEAGUETYPE);
prod.setTaskid("0");
prod.setGetway("1");
prod.setStatus("0");
//解析 xml后 将值 给prod 了
readXML(in,prod);
// prod.setAmount(1);
// prod.setOrderid(orderid);
// prod.setOrdertime(Misc.convertString2Date(orderdate.trim(), "yyyy-MM-dd HH:mm:ss"));
// prod.setMoney(dprice);
// prod.setUserinfo(ouid);
prod.setPrice(prod.getMoney()/prod.getAmount());
prod.setCommision(prod.getMoney() * PERCENT);
orderService.saveBiOrderProd(prod);
String ordertime=Misc.convertTimestamp2StringTime(prod.getOrdertime(), "yyyy-MM-dd20%HH:mm:ss");
StringBuffer urlBuffer = new StringBuffer("http://192.168.0.88:8080/myweb/orderback.jhtml?ordergetFlag=0&bid=502990&leagueflag=");
urlBuffer.append(LEAGUETYPE).append("&cost=").append(prod.getMoney()).append("&oid=").append(prod.getOrderid()).append("&ordertime=");
urlBuffer.append(ordertime).append("&uid=").append(prod.getUserinfo()).append("&cback=").append(prod.getCommision());
urlBuffer.append("&mcode=").append(SecurityUtils.md5ByHex(prod.getUserinfo() + prod.getOrderid()));
//send
String re = Util.getHTMLByUrl(urlBuffer.toString(), 30000, "utf-8");
if(!"0".equals(re))
result = "0";
} catch (Exception e) {
e.printStackTrace();
result = "3";
}
return HINT;
}
private void readXML(ServletInputStream in,BiOrderProd prod){
SAXReader saxReader=new SAXReader();
try {
Document document=saxReader.read(new InputStreamReader(in,"UTF-8"));
List<Element> list=document.selectNodes("/order");
System.out.println(list.size());
Iterator<Element> iter=list.iterator();
if(iter.hasNext()) {
Element root=iter.next();
//订单号
Node oid=root.selectSingleNode("/order/id");
prod.setOrderid(oid.getText());
//下单时间
Node otime=root.selectSingleNode("/order/order_time");
prod.setOrdertime(Misc.convertString2Date(otime.getText(), "yyyy-MM-dd HH:mm:ss"));
//商品数
Node pnums=root.selectSingleNode("/order/number");
prod.setAmount(Integer.parseInt(pnums.getText().trim()));
//订单总金额
Node amount=root.selectSingleNode("/order/cost/total_amount");
prod.setMoney(Double.parseDouble(amount.getText().trim()));
//跟单uid
Node uid=root.selectSingleNode("/order/user/trackingcode");
prod.setUserinfo(uid.getText());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
<order>
<id>1234563</id>
<user>
<channelcode>{例如baidu_wap}</channelcode>
<trackingcode>{例如uid=123456}</trackingcode>
</user>
<product>
<deal>{123142}</deal>
</product>
<order_time>yyyy-MM-dd HH:mm:ss</order_time>
<pay_time>{yyyy-MM-dd HH:mm:ss|}</pay_time>
<status>{ORDER|PAID}</status>
<number>2</number>
<cost>
<total_amount>120.2</total_amount>
</cost>
</order>
分享到:
相关推荐
2 将struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立...
配置常量,可以改变Struts 2框架的一些行为 name属性表示常量名称,value属性表示常量值 package元素: 包的作用:简化维护工作,提高重用性 包可以“继承”已定义的包,并可以添加自己包的配置 name属性为必须去且...
使用Struts的Action来对数据库进行增、删、改、查四项操作 <br/>1、数据库MySQL,创建数据库 Pagination MySQL.sql用来创建表结构 <br/>连接方式有两种,一种直接JDBC,一种通过连接池,代码中有说明...
struts2学习教程包括:第一个Struts2程序,处理一个form多个submit,struts.xml常用配置解析,使用validate方法验证数据,使用Validation框架验证数据,在Action类中获得HttpServletResponse对象的四种方法,上传...
服务器端采用Struts2编码,Android客户端采用Json解析它的数据 服务器端程序为ServerProject(用MyEclipse建立此项目),Android客户端程序代码为:AndroidHttpJSONActivity 注意Android客户端代码中,有一个ip地址,...
专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...
用sevrlet模拟Struts2的简单功能。从拦截请求、解析自定义xml数据文件以及动态生成action的代理去执行目标方法,并实现了简单的日志拦截【interceptor】
11.4.7 编写Struts的配置文件struts-config.xml 11.4.8 编写Spring的配置文件spring-config.xml 11.4.9 配置web.xml 11.4.10 启动Tomcat运行示例 11.5 小结 第十二章 使用Hibernate快速实现持久层处理 12.1 ...
struts2.2学习笔记总结,action,拦截器,过滤器,国际化,struts.xml解析等的总结。
11.4.7 编写Struts的配置文件struts-config.xml 11.4.8 编写Spring的配置文件spring-config.xml 11.4.9 配置web.xml 11.4.10 启动Tomcat运行示例 11.5 小结 第十二章 使用Hibernate快速实现持久层处理 12.1 ...
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息 3.通过config.buildSessionFactory();//创建SessionFactory 4.sessionFactory.openSession();//打开Sesssion 5.session....
11.4.7 编写Struts的配置文件struts-config.xml 11.4.8 编写Spring的配置文件spring-config.xml 11.4.9 配置web.xml 11.4.10 启动Tomcat运行示例 11.5 小结 第十二章 使用Hibernate快速实现持久层处理 12.1 ...
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
2. Action类相应方法使用封装好的HttpClient相关工具类,准备好HTTP请求的相关参数header参数和body参数并以xml的方式提交HTTP请求; 3. 解析该HTTP请求返回值(XML或JSON); 4. 响应结果; 5. 测试; 备注: 开发...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
目前的版本可以为web(web.xml)、ejb、struts(struts-config.xml)、webwork、hibernate (mapping file)、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant的任务target支持,完全通过ant来完成任务。 我们只须...
10.1.2 实现知晓Spring的Struts action 10.1.3 委托action 10.2 使用Tapestry 10.2.1 替换Tapestry引擎 10.2.2 装载Spring Bean至Tapestry页面中 10.3 集成JavaServer Faces 10.3.1 解析...
11.4.7 编写Struts的配置文件struts-config.xml 11.4.8 编写Spring的配置文件spring-config.xml 11.4.9 配置web.xml 11.4.10 启动Tomcat运行示例 11.5 小结 第十二章 使用Hibernate快速实现持久层处理 12.1 ...
代码一键自动生成工具 可生成Action、JavaBean实体类、Dao及实现类、service及实现类、spring.xml、struts.xml、mybatis.xml *该工具目前支持3种数据源的生成方式,分别是:JDBC、.table、PDM *JDBC:选择JDBC是只...
用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将...