网上商城项目SSM(八)——后台订单管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40788630/article/details/85555901

首先查看后台 订单管理,其中订单管理就只有删除订单这一个功能

所以只需要实现这一个删除功能就行了

实现的顺序是:持久层——dao层——service层——controller层——jsp层

一、实现持久层

在com.po包中创建订单的相关类Order

package com.po;

public class Order {
	private Integer id;
	private Integer busertable_id;
	private Double amount;
	private Integer status;
	private String orderdate;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getBusertable_id() {
		return busertable_id;
	}
	public void setBusertable_id(Integer busertable_id) {
		this.busertable_id = busertable_id;
	}
	public Double getAmount() {
		return amount;
	}
	public void setAmount(Double amount) {
		this.amount = amount;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public String getOrderdate() {
		return orderdate;
	}
	public void setOrderdate(String orderdate) {
		this.orderdate = orderdate;
	}
}

二、dao层实现

dao层由AdminOrderDao接口以及同名的数据库映射文件组成,

AdminOrderDao接口详细代码如下所示:

package com.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Repository("adminOrderDao")
@Mapper
public interface AdminOrderDao {
    public List<Map<String, Object>> orderInfo();
    public int deleteOrderDetail(Integer id);
    public int deleteOrderBase(Integer id);
}

其同名映射文件详细代码如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.AdminOrderDao">
    <select id="orderInfo" resultType="map">
        select ot.id, ot.amount, ot.status,  orderdate, bt.bemail, ot.busertable_id 
		from ORDERBASETABLE ot, BUSERTABLE bt where ot.busertable_id=bt.id
    </select>
    <delete id="deleteOrderDetail" parameterType="Integer">
        delete from orderdetail where orderbasetable_id=#{id}
    </delete>
    <delete id="deleteOrderBase" parameterType="Integer">
        delete from orderbasetable where id=#{id}
    </delete>
</mapper>

三、实现service层

此层是由AdminOrderService接口及其实现类组成的

其接口详细代码如下所示:

package com.service.admin;

import org.springframework.ui.Model;

public interface AdminOrderService {
    public String orderInfo(Model model);
    public String deleteorderManager(Integer id);
}

其接口实现类如下所示:

package com.service.admin;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;

import com.dao.AdminOrderDao;
@Service("adminOrderService")
@Transactional
public class AdminOrderServiceImpl implements AdminOrderService {
    @Autowired
    private AdminOrderDao adminOrderDao;
	@Override
	public String orderInfo(Model model) {
		List<Map<String, Object>> list = adminOrderDao.orderInfo();
		model.addAttribute("orderList", list);
		return "admin/orderManager";
	}

	@Override
	public String deleteorderManager(Integer id) {
		//先删除订单明细
		adminOrderDao.deleteOrderDetail(id);
		//再删除订单明细
		adminOrderDao.deleteOrderBase(id);
		return "forward:/adminOrder/orderInfo";
	}

}

四、实现Controller层

在com.controller.admin包中创建AdminOrderController,其详细代码如下所示:

package com.controller.admin;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.service.admin.AdminOrderService;

@Controller
@RequestMapping("/adminOrder")
public class AdminOrderController extends BaseController{
    @Autowired
    private AdminOrderService adminOrderService;
    @RequestMapping("/orderInfo")
    public String orderInfo(Model model) {
    	return adminOrderService.orderInfo(model);
    }
    @RequestMapping("/deleteorderManager")
    public String deleteorderManager(Integer id) {
    	return adminOrderService.deleteorderManager(id);
    }
}

五、实现jsp层

创建ordermanager.jsp文件,其源代码如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>订单管理</title>
	<link href="css/admin/common.css" type="text/css" rel="stylesheet">
	<style type="text/css">
		table{
			text-align: center;
			border-collapse: collapse
		}
		.bgcolor{
		  	background-color: #F08080;
		}
	</style>
	<script type="text/javascript">
		function changeColor(obj){
			obj.className="bgcolor";
		}
		function changeColor1(obj){
			obj.className="";
		}
		function checkDel(id){
  			if(window.confirm("是否删除该订单?")){
  				window.location.href="/ch20/adminOrder/deleteorderManager?id="+id;
  			}
  		}
	</script>
</head>
<body>
	<br>
	<table border="1" bordercolor="PaleGreen">
		<tr>
			<th width="150px">订单编号</th>
			<th width="150px">用户E-mail</th>
			<th width="100px">订单金额</th>
			<th width="100px">订单状态</th>
			<th width="150px">订单日期</th>
			<th width="100px">操作</th>
		</tr>
		<c:forEach var="n" items="${orderList}">
		<tr onmousemove="changeColor(this)" onmouseout="changeColor1(this)">
			<td>${n.id}</td>
			<td>${n.bemail}</td>
			<td>${n.amount}</td>
			<td><c:if test="${n.status == 0}" >未付款</c:if><c:if test="${n.status == 1}" >已付款</c:if></td>
			<td>${n.orderdate}</td>
			<td>
				<c:if test="${n.status == 0}" >
					<a href="javaScript:checkDel('${n.id}')">删除</a>
				</c:if>
				&nbsp;
			</td>
		</tr>
		</c:forEach>
	</table>
</body>
</html>

至此,删除订单的功能就完成了,

此时在浏览器登录后台,点击删除订单按钮显示画面如下图所示:

由于数据库中还没有订单,所以并没有看到订单项,

猜你喜欢

转载自blog.csdn.net/qq_40788630/article/details/85555901