• 十日冲刺之地十日


     昨天进行:


    12.生成订单
    在购物车中,当购物完成后,用户点击 生成订单 生成订单
    访问一个addOrder.jsp -- 列出订单的基本信息,要求用户输入收货地址和支付方式
    AddOrderServlet -- 创建Order对象设置基本值,其中Money需要在后台根据购物车实时计算出来 调用OrderService中生成订单的方法生成订单, 清空购物车 回到主页
    OrderService -- 中生成订单的方法 在订单表中插入一条记录 在订单项表中插入记录保存此订单和商品之间的关系 从商品表中的库存数量中扣除购买数量 需要进行事务管理
    OrderDao -- 增加订单的方法 增加订单项的方法
    ProductDao -- 增加扣除商品数量的方法

    今天进行:(订单的增删改查,,和在线支付的尝试,榜单)

    13.订单查询
    在主页中 提供 订单查询
    OrderListServlet 获取当前客户的用户号,调用Service中查询指定用户订单的方法,查询出这个用户所有订单,存入request域,带到页面显示
    OrderService 提供根据用户id查询订单的方法
    OrderDao 提供根据用户id查询订单的方法
    orderList.jsp 展示所有订单

    订单号 ok
    用户名称 --- 用户表中查
    订单金额 ok
    支付状态 ok
    收货地址 ok
    下单时间 ok
    ------------------------------------------------------
    商品名称 购买数量 单价 总金额 --------------------------------订单项 表 商品表
    ------------------------------------------------------
    萨摩犬 1 999 999
    哈士奇 1 888 888
    ....
    ...
    ------------------------------------------------------


    14.订单删除

    在订单列表 对于未支付的订单 提供 订单删除
    DelOrderServlet 获取订单id 调用service中根据订单id删除订单的方法,删除后再重新回到订单列表页面
    OrderService 提供根据订单id删除订单的方法 将订单相关商品的库存数量加回去 删除订单项表中的记录 删除订单记录 -- 事务控制
    OrderDao中提供根据订单编号删除订单项和 订单的方法
    ProdDao中提供修改库存数量的方法



    15.在线支付(在真正的开发中,一些功能可能不是我们自己开发的,而是调用第三方接口来实现)
    在订单列表页面 对于未支付的订单 提供 在线支付
    pay.jsp 页面中选择要支付的银行
    PayServlet 准备访问易宝所需要的所有的参数,将这些参数保存到request域中,再转发到confirm.jsp页面
    confirm.jsp 将request域中的所有访问易宝的参数取出,组织表单 提交到易宝
    CallBackServlet处理支付完成后的回调


    16.销售榜单下载:管理员可能需要查看商品销售的数据-- 多表查询 csv格式的文件 文件下载
    index.jsp中提供销售榜单下载连接
    SaleListServlet 调用Service中查询销售榜单的方法 将查询到的销售榜单组织成csv格式的文件后提供下载
    OrderService 查询销售榜单
    OrderDao 查询销售榜单:查询所有已支付订单找对应的订单项信息找到销售出去的商品,做一个销售数量的sum()操作

    select products.id prod_id,products.name prod_name,sum(orderitem.buynum ) sale_num
    from orders ,orderitem ,products
    where
    orders.id=orderitem.order_id
    and
    orderitem.product_id=products.id
    and
    orders.paystate = 1
    group by products.id
    order by sale_num desc;


    商品编号 商品名称 总销售数量
    1 xxx 100
    2 yyy 10

    17.权限控制

    部分代码:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>
      <body>
      	<h1>订单列表</h1><hr>
      	<c:forEach items="${requestScope.list}" var="olf">
      		<h3>
      		订单号:${olf.id }<br>
      		</h3>
    		用户名称 :${olf.username }<br>
    		订单金额 :${olf.money }<br>
    		支付状态 :
    			<c:if test="${olf.paystate == 0}">
    				<font color="red">未支付</font>
    				<a href="/DelOrderServlet?id=${olf.id }">订单删除</a>
    				<a href="/pay.jsp?id=${olf.id }&money=${olf.money }">在线支付</a>
    			</c:if>
    			<c:if test="${olf.paystate != 0}">
    				<font color="blue">已支付</font>
    			</c:if>
    		<br>
    		收货地址 :${olf.receiverinfo }<br>
    		下单时间 :${olf.ordertime }<br>
    		<table width="100%" border="1">
    			<tr>
    				<th>商品名称</th>
    				<th>商品种类</th>
    				<th>购买数量</th>
    				<th>商品单价</th>
    				<th>总金额</th>
    			</tr>	
    			<c:forEach items="${olf.prodMap}" var="entry">
    				<tr>
    					<td>${entry.key.name }</td>
    					<td>${entry.key.category }</td>
    					<td>${entry.value }</td>
    					<td>${entry.key.price }</td>
    					<td>${entry.key.price * entry.value }</td>
    				</tr>
    			</c:forEach>
    		</table>
    		<hr>
      	</c:forEach>
      </body>
    </html>
    

     

    遇到问题:知识掌握少,出现乱码问题,,未解决。

    燃尽图:

  • 相关阅读:
    【图像处理】【SEED-VPM】7.ubuntu10.04下 TFTP,NFS 安装指南
    【图像处理】【SEED-VPM】6.文件目录结构
    【DIY】【外壳】木板 & 亚克力 加工
    【图像处理】【SEED-VPM】5.uImage的烧写 & NFS烧写文件系统
    【PCB】【AD使用】Altium Designer 的entry sheet ,offsheet和port作用
    【PCB】【项目记录】AWG任意波形产生器
    【图像处理】【SEED-VPM】4.串口调试信息
    【图像处理】【SEED-VPM】3.外设信息
    【图像处理】【SEED-VPM】2.接口
    【图像处理】【SEED-VPM】1.注意点
  • 原文地址:https://www.cnblogs.com/xuemo/p/6854400.html
Copyright © 2020-2023  润新知