diff --git a/deal2/META-INF/MANIFEST.MF b/deal2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ b/deal2/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/deal2/WEB-INF/classes/applicationContext.xml b/deal2/WEB-INF/classes/applicationContext.xml
new file mode 100644
index 0000000..cda9763
--- /dev/null
+++ b/deal2/WEB-INF/classes/applicationContext.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/deal2/WEB-INF/classes/business.xml b/deal2/WEB-INF/classes/business.xml
new file mode 100644
index 0000000..6ebd00f
--- /dev/null
+++ b/deal2/WEB-INF/classes/business.xml
@@ -0,0 +1,58 @@
+
+
+
+
+ 2015-11-24
+ 0
+ 1
+ 86.5
+ 1
+ 001
+ zhangsan
+
+
+ 2015-11-24
+ 0
+ 1
+ 86.5
+ 1
+ 002
+ success1
+
+
+ 2015-11-24
+ 0
+ 1
+ 86.5
+ 2
+ 003
+ success2
+
+
+ 2015-11-24
+ 0
+ 1
+ 86.5
+ 1
+ 004
+ success3
+
+
+ 2015-11-24
+ 1
+ 1
+ -86.5
+ 1
+ 006
+ fail1
+
+
+ 2015-11-24
+ 1
+ 1
+ 0
+ 1
+ 007
+ fail2
+
+
diff --git a/deal2/WEB-INF/classes/com/wendell/controller/DealController.class b/deal2/WEB-INF/classes/com/wendell/controller/DealController.class
new file mode 100644
index 0000000..1705e56
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/controller/DealController.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/controller/DealController.java b/deal2/WEB-INF/classes/com/wendell/controller/DealController.java
new file mode 100644
index 0000000..3a19bf5
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/controller/DealController.java
@@ -0,0 +1,73 @@
+package com.wendell.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.wendell.dealService.DealService;
+import com.wendell.domain.Deal;
+
+/**
+ * 交易controller层
+ * @author Wendell
+ *
+ */
+@Controller
+@RequestMapping("/rest")
+public class DealController {
+
+ //注入DealService对象
+ @Autowired
+ private DealService dealService;
+
+ //使用springmvc向外提供Rest风格服务
+ @RequestMapping(value="/addDeal",method=RequestMethod.POST)
+ @ResponseBody
+ public ModelAndView makeDeal(Deal deal){
+
+ try {
+ //设置交易记录ID
+ deal.setId(UUID.randomUUID().toString());
+ //设置交易记录时间
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ String dateFormat = simpleDateFormat.format(new Date());
+ deal.setDate(dateFormat);
+ //设置交易状态
+ if(Double.valueOf(deal.getMoney())<=0){
+ //如果交易金额为负数,则交易失败
+ deal.setState(String.valueOf(1));
+ }else{
+ //否则交易成功
+ deal.setState(String.valueOf(0));
+ }
+ //保存交易记录
+ dealService.addDeal(deal);
+ ModelAndView view = new ModelAndView();
+ view.setViewName("success");
+ return view;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("添加交易记录失败!");
+ }
+ }
+
+ //对外提供查询交易记录的接口
+ @RequestMapping(value="/getDeals/{state}",method=RequestMethod.GET)
+ @ResponseBody
+ public List getDealList(@PathVariable String state){
+ List dealList = dealService.getDealList(state);
+ return dealList;
+
+ }
+
+
+}
diff --git a/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.class b/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.class
new file mode 100644
index 0000000..212172a
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.java b/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.java
new file mode 100644
index 0000000..0b27fe2
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/dealDao/BusinessDao.java
@@ -0,0 +1,12 @@
+package com.wendell.dealDao;
+
+import java.util.List;
+
+import com.wendell.domain.Deal;
+
+public interface BusinessDao {
+ //保存交易记录到business.xml中
+ void saveDeal(Deal deal);
+ //根据交易状态查询交易信息
+ List getDealList(String state);
+}
diff --git a/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.class b/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.class
new file mode 100644
index 0000000..b69b5be
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.java b/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.java
new file mode 100644
index 0000000..c122cfc
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/dealDaoImpl/BusinessDaoImpl.java
@@ -0,0 +1,154 @@
+package com.wendell.dealDaoImpl;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.SAXReader;
+import org.dom4j.io.XMLWriter;
+import org.springframework.stereotype.Repository;
+
+import com.wendell.dealDao.BusinessDao;
+import com.wendell.domain.Deal;
+/**
+ * 对business.xml操作的DAO实现类
+ * @author Wendell
+ *
+ */
+@Repository
+public class BusinessDaoImpl implements BusinessDao{
+
+ //保存交易信息到business.xml中
+ public void saveDeal(Deal deal) {
+ //获得xml数据源的文档对象
+ Document dc = getDocument();
+ //获得根元素deals
+ Element deals = dc.getRootElement();
+ //在根元素下增加deal子元素并添加id属性
+ Element dealEle = deals.addElement("deal").addAttribute("id", deal.getId());
+ //为deal增加其他子元素
+ dealEle.addElement("date").addText(deal.getDate());
+ dealEle.addElement("state").addText(deal.getState());
+ dealEle.addElement("type").addText(deal.getType());
+ dealEle.addElement("money").addText(deal.getMoney());
+ dealEle.addElement("currency").addText(deal.getCurrency());
+ dealEle.addElement("userId").addText(deal.getUserId());
+ dealEle.addElement("userName").addText(deal.getUserName());
+ //将修改后的内容写回到xml文件中
+ saveDocument(dc);
+
+
+ }
+ //通过交易状态查询交易记录
+ public List getDealList(String state) {
+ //得到document对象
+ Document document = getDocument();
+ //定义xpath
+ String xpath = "/deals/deal";
+ //根据xpath找到所有的元素
+ List elements = document.selectNodes(xpath);
+ //判断集合是否为空
+ if(elements==null){
+ return Collections.EMPTY_LIST;
+ }
+ List dealList = new ArrayList();
+ for(Element element:elements){
+ Deal deal = ele2deal(element);
+ if(deal.getState().equals(state)){
+ dealList.add(deal);
+ }
+ }
+ return dealList;
+ }
+ //---------以下是抽取通用方法-------------------------
+ //获得文档对象
+ private Document getDocument(){
+ try {
+ //创建解析器
+ SAXReader reader = new SAXReader();
+ //获得xml的资源流,交给解析器解析,得到Document对象
+ String path = getXmlPath();
+ InputStream fis = new FileInputStream(path);
+ Document document = reader.read(fis);
+ //关闭资源流
+ fis.close();
+ //返回Document对象
+ return document;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("读取xml文件失败!");
+
+ }
+
+ }
+ //获得xml文件的路径
+ private String getXmlPath(){
+ URL url = BusinessDaoImpl.class.getResource("/business.xml");
+ String path = url.getPath();
+ return path;
+ }
+ //将document写回到xml文件中
+ private void saveDocument(Document dc){
+ try {
+ //准备输出到xml文件中的输出流
+ String path = getXmlPath();
+ FileOutputStream os = new FileOutputStream(path);
+ //创建outputFormat
+ OutputFormat format = OutputFormat.createPrettyPrint();
+ //创建XmlWriter
+ XMLWriter writer = new XMLWriter(os, format);
+ //写入
+ writer.write(dc);
+ //关闭资源
+ os.close();
+ writer.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("文件写入失败!");
+ }
+ }
+ //将元素封装到Deal中
+ public Deal ele2deal(Element dealEle){
+ Deal deal = new Deal();
+ //封装交易记录ID
+ String id = dealEle.attributeValue("id");
+ deal.setId(id);
+ //封装用户ID
+ String userId = dealEle.elementText("userId");
+ deal.setUserId(userId);
+ //封装用户名
+ String userName = dealEle.elementText("userName");
+ deal.setUserName(userName);
+ //封装交易金额
+ String money = dealEle.elementText("money");
+ deal.setMoney(money);
+ //封装交易类型
+ String type = dealEle.elementText("type");
+ deal.setType(type);
+ //封装交易时间
+ String date = dealEle.elementText("date");
+ deal.setDate(date);
+ //封装交易状态
+ String state = dealEle.elementText("state");
+ deal.setState(state);
+ //封装交易币种
+ String currency = dealEle.elementText("currency");
+ deal.setCurrency(currency);
+ return deal;
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/deal2/WEB-INF/classes/com/wendell/dealService/DealService.class b/deal2/WEB-INF/classes/com/wendell/dealService/DealService.class
new file mode 100644
index 0000000..9305b87
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/dealService/DealService.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/dealService/DealService.java b/deal2/WEB-INF/classes/com/wendell/dealService/DealService.java
new file mode 100644
index 0000000..73545dc
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/dealService/DealService.java
@@ -0,0 +1,12 @@
+package com.wendell.dealService;
+
+import java.util.List;
+
+import com.wendell.domain.Deal;
+
+public interface DealService {
+ //增加交易记录
+ void addDeal(Deal deal);
+ //获得交易记录
+ List getDealList(String state);
+}
diff --git a/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.class b/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.class
new file mode 100644
index 0000000..2d80422
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.java b/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.java
new file mode 100644
index 0000000..6dd88e6
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/dealServiceImpl/DealServiceImpl.java
@@ -0,0 +1,31 @@
+package com.wendell.dealServiceImpl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.wendell.dealDao.BusinessDao;
+import com.wendell.dealService.DealService;
+import com.wendell.domain.Deal;
+/**
+ * 交易Service层
+ * @author Wendell
+ *
+ */
+@Service
+public class DealServiceImpl implements DealService {
+ //注入DealDao实现类
+ @Autowired
+ private BusinessDao businessDao;
+ //增加交易记录
+ public void addDeal(Deal deal) {
+ businessDao.saveDeal(deal);
+ }
+ //获得交易记录
+ public List getDealList(String state) {
+ List dealList = businessDao.getDealList(state);
+ return dealList;
+ }
+
+}
diff --git a/deal2/WEB-INF/classes/com/wendell/domain/Deal.class b/deal2/WEB-INF/classes/com/wendell/domain/Deal.class
new file mode 100644
index 0000000..5ab965a
Binary files /dev/null and b/deal2/WEB-INF/classes/com/wendell/domain/Deal.class differ
diff --git a/deal2/WEB-INF/classes/com/wendell/domain/Deal.java b/deal2/WEB-INF/classes/com/wendell/domain/Deal.java
new file mode 100644
index 0000000..4fcaef2
--- /dev/null
+++ b/deal2/WEB-INF/classes/com/wendell/domain/Deal.java
@@ -0,0 +1,68 @@
+package com.wendell.domain;
+
+public class Deal {
+ //交易ID
+ private String id;
+ //交易时间
+ private String date;
+ //交易状态,0:交易成功,1:交易失败
+ private String state;
+ //交易类型,1:支付。2:退款
+ private String type;
+ //交易金额
+ private String money;
+ //交易币种
+ private String currency;
+ //用户ID
+ private String userId;
+ //用户姓名
+ private String userName;
+ public String getId() {
+ return id;
+ }
+ public void setId(String id) {
+ this.id = id;
+ }
+ public String getDate() {
+ return date;
+ }
+ public void setDate(String date) {
+ this.date = date;
+ }
+ public String getState() {
+ return state;
+ }
+ public void setState(String state) {
+ this.state = state;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getMoney() {
+ return money;
+ }
+ public void setMoney(String money) {
+ this.money = money;
+ }
+ public String getCurrency() {
+ return currency;
+ }
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+ public String getUserId() {
+ return userId;
+ }
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ public String getUserName() {
+ return userName;
+ }
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+}
diff --git a/deal2/WEB-INF/classes/springmvc.xml b/deal2/WEB-INF/classes/springmvc.xml
new file mode 100644
index 0000000..ba6faee
--- /dev/null
+++ b/deal2/WEB-INF/classes/springmvc.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/deal2/WEB-INF/jsp/success.jsp b/deal2/WEB-INF/jsp/success.jsp
new file mode 100644
index 0000000..e1c650f
--- /dev/null
+++ b/deal2/WEB-INF/jsp/success.jsp
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+
+
+Insert title here
+
+
+Successful!
+
+
\ No newline at end of file
diff --git a/deal2/WEB-INF/lib/commons-beanutils-1.8.3.jar b/deal2/WEB-INF/lib/commons-beanutils-1.8.3.jar
new file mode 100644
index 0000000..218510b
Binary files /dev/null and b/deal2/WEB-INF/lib/commons-beanutils-1.8.3.jar differ
diff --git a/deal2/WEB-INF/lib/commons-logging-1.1.1.jar b/deal2/WEB-INF/lib/commons-logging-1.1.1.jar
new file mode 100644
index 0000000..8758a96
Binary files /dev/null and b/deal2/WEB-INF/lib/commons-logging-1.1.1.jar differ
diff --git a/deal2/WEB-INF/lib/dom4j-1.6.1.jar b/deal2/WEB-INF/lib/dom4j-1.6.1.jar
new file mode 100644
index 0000000..c8c4dbb
Binary files /dev/null and b/deal2/WEB-INF/lib/dom4j-1.6.1.jar differ
diff --git a/deal2/WEB-INF/lib/jackson-core-asl-1.9.11.jar b/deal2/WEB-INF/lib/jackson-core-asl-1.9.11.jar
new file mode 100644
index 0000000..145fc48
Binary files /dev/null and b/deal2/WEB-INF/lib/jackson-core-asl-1.9.11.jar differ
diff --git a/deal2/WEB-INF/lib/jackson-mapper-asl-1.9.11.jar b/deal2/WEB-INF/lib/jackson-mapper-asl-1.9.11.jar
new file mode 100644
index 0000000..3e686c6
Binary files /dev/null and b/deal2/WEB-INF/lib/jackson-mapper-asl-1.9.11.jar differ
diff --git a/deal2/WEB-INF/lib/jaxen-1.1-beta-6.jar b/deal2/WEB-INF/lib/jaxen-1.1-beta-6.jar
new file mode 100644
index 0000000..6cef35d
Binary files /dev/null and b/deal2/WEB-INF/lib/jaxen-1.1-beta-6.jar differ
diff --git a/deal2/WEB-INF/lib/jstl-1.2.jar b/deal2/WEB-INF/lib/jstl-1.2.jar
new file mode 100644
index 0000000..0fd275e
Binary files /dev/null and b/deal2/WEB-INF/lib/jstl-1.2.jar differ
diff --git a/deal2/WEB-INF/lib/spring-aop-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-aop-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..e945961
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-aop-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-aspects-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-aspects-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..f1e2c48
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-aspects-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-beans-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-beans-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..e036195
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-beans-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-context-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-context-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..995d2a4
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-context-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-context-support-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-context-support-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..5aeb9b7
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-context-support-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-core-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-core-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..f8dede4
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-core-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-expression-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-expression-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..cf14aff
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-expression-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..583d5bc
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-orm-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-orm-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..48aaf1f
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-orm-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-test-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-test-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..59c4437
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-test-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-tx-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-tx-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..6f4f8d8
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-tx-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-web-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-web-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..0061f35
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-web-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE.jar b/deal2/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE.jar
new file mode 100644
index 0000000..acded7a
Binary files /dev/null and b/deal2/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE.jar differ
diff --git a/deal2/WEB-INF/web.xml b/deal2/WEB-INF/web.xml
new file mode 100644
index 0000000..44f9d76
--- /dev/null
+++ b/deal2/WEB-INF/web.xml
@@ -0,0 +1,35 @@
+
+
+ deal2
+
+ index.html
+ index.htm
+ index.jsp
+ default.html
+ default.htm
+ default.jsp
+
+
+
+ contextConfigLocation
+ classpath:applicationContext.xml
+
+
+ org.springframework.web.context.ContextLoaderListener
+
+
+
+ springmvc
+ org.springframework.web.servlet.DispatcherServlet
+
+
+ contextConfigLocation
+ classpath:springmvc.xml
+
+ 1
+
+
+ springmvc
+ /
+
+
\ No newline at end of file
diff --git a/deal2/makeDeal.jsp b/deal2/makeDeal.jsp
new file mode 100644
index 0000000..45be6f4
--- /dev/null
+++ b/deal2/makeDeal.jsp
@@ -0,0 +1,54 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file