javaweb-仿小米商城(7): 订单提交与显示
1功能描述
购物车界面:通过购物车界面点击生成订单,跳转到订单预览界面
订单预览界面:订单创建成功,显示订单预览界面,在预览界面显示添加收获地址
支付界面:当点击提交订单.此时订单数据存储到数据表
支付宝支付:一般开发中用的是沙箱做模拟支付
支付成功界面:可以通过点击我的订单查看订单列表
订单详情界面:可以点击订单列表打开该订单详情信息界面
2功能描述
2.1功能逻辑抽象
商品购物车点击生成订单时:先判断用户是否登录,如果没有登录,先完成用户登录,获取用户对象需要从session中根据购物车数据创建订单对象,和订单详情List集合数据
商品购物车是面向数据库的tb_cart表和订单详情表tb_orderdetall,在订单预览界面添加数据到对应的表,再开发时基于三层架构体系,购物车建立对应的CartServlet接口和实现类,CartDao接口和实现类,订单创建对应的OrederServlet类和OrderDetailServlet接口和实现类,OrderDetailDao接口和实现类
提示:还需要创建辅助vo类
订单列表的显示需要一个Vo类,其中包含订单信息和地址信息用于显示
OrderView:oid,uid,userName,orderTime,telphon,address,ostate,totalMoney
GoodOdersDeailVo:pid,ping,pname,star,pubdate,price,num,money
3代码实现
3.1前端
3.1.1修改购物车a链接信息和地址
3.1.2修改order.html代码块
<script type="text/javascript">
$(function(){
$("#btn_add").click(function(){
location.href = "order.do?action=generateOrder&aid="+$("#address").val();
})
});
$(document).ready(function () {
//获取session数据显示到页面
$.get("cart.do?action=showCart", "", function (result) {
if (result.flag === true) {
var sum = 0;//计算总金额变量
var index = 1;
for (var i in result.data) {
var tbhtml='<tr>' +
' <td>'+ index+ '</td>' +
' <td>' + result.data[i].goodName + '</td>' +
' <td>¥ ' + result.data[i].price + '</td>' +
' <td>' + result.data[i].quantity + '</td>' +
' <td>¥ ' + result.data[i].subtotal + '</td>' +
' </tr>'
index++;
sum += result.data[i].subtotal;
$("#cartBody").append(tbhtml);
}
//显示总计
$("#total").html("<b>¥ " + sum + "</b>");
}
});
</script>
3.2后端
3.2.1Servlet
在OrderServlet类中根据购物车信息创建订单数据
@WebServlet("/order.do")
public class OrderServlet extends BaseServlet{
private ResultData resultData=new ResultData();
/**
* 生成订单
*/
public String generateOrder(HttpServletRequest request, HttpServletResponse response){
String aidStr=request.getParameter("aid");