实现删除订单功能

功能

对已经支付的订单可以进行删除操作

编辑页面代码

<script type="text/javascript">
//删除订单
function o_del() {   
	var msg = "您确定要删除该订单吗?";   
	if (confirm(msg)==true){   
	return true;   
	}else{   
	return false;   
	}   
}   
</script>



<!--  已支付,弹出提示框由操作人确认 -->
<c:if test="${order.paystate!=0 }">
    <a href="${pageContext.request.contextPath}/delOrderById?id=${order.id}&type=admin" onclick="javascript:return o_del()">
        <img src="${pageContext.request.contextPath}/admin/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
    </a>
</c:if> 
<!--  未支付 ,不能删除-->
<c:if test="${order.paystate==0 }">
    <a href="javascript:alert('不能删除未支付订单')">
        <img src="${pageContext.request.contextPath}/admin/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
    </a>
</c:if>

创建Servlet

/**
 * 删除订单
 * @author admin
 *
 */
public class DelOrderByIdServlet extends HttpServlet {
	private static final long serialVersionUID = -742965707205621644L;
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 订单id
		String id = request.getParameter("id");
		// 已支付的订单带有type值为client的参数
		String type = request.getParameter("type");
		OrderService service = new OrderService();
		if (type != null && type.trim().length() > 0) {
			service.delOrderById(id);
			if ("admin".equals(type)) {
				request.getRequestDispatcher("/findOrders").forward(request, response);
				return;
			}
		} else {
			// 调用service层方法删除相应订单
			service.delOrderByIdWithClient(id);
		}
		//response.sendRedirect(request.getContextPath() + "/client/delOrderSuccess.jsp");
		request.getRequestDispatcher("/findOrderByUser").forward(request, response);
		return;
	}
}

编写Service层方法

//根据id删除订单 管理员删除订单
public void delOrderById(String id) {			
	try {
		DataSourceUtils.startTransaction();//开启事务
		oidao.delOrderItems(id);
		odao.delOrderById(id);
	} catch (SQLException e) {
		e.printStackTrace();
		try {
			DataSourceUtils.rollback();
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
	}finally{
		try {
			DataSourceUtils.releaseAndCloseConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}		
}

编写DAO方法

OrderDao

/**
 * 根据id删除订单
 * @param id
 * @throws SQLException
 */
public void delOrderById(String id) throws SQLException {
	String sql="delete from orders where id=?";		
	QueryRunner runner = new QueryRunner();		
	runner.update(DataSourceUtils.getConnection(),sql,id);		
}

OrderItemDao

//根据订单id删除订单项
public void delOrderItems(String id) throws SQLException {
	String sql="delete from orderItem where order_id=?";
	
	QueryRunner runner=new QueryRunner();
	
	runner.update(DataSourceUtils.getConnection(),sql,id);
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值