DAO
배송 상태 수정 - 관리자
public void updateOrderStatus(OrderVO order)
throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
PreparedStatement pstmt2 = null;
String sql = null;
try {
conn = DBUtil.getConnection();
conn.setAutoCommit(false);
sql = "UPDATE zorder SET status=?,modify_date=SYSDATE "
+ "WHERE order_num=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, order.getStatus());
pstmt.setInt(2, order.getOrder_num());
pstmt.executeUpdate();
if(order.getStatus() == 5) {
List<OrderDetailVO> detailList =
getListOrderDetail(order.getOrder_num());
sql = "UPDATE zitem SET quantity=quantity+? WHERE item_num=?";
pstmt2 = conn.prepareStatement(sql);
for(int i=0;i<detailList.size();i++) {
OrderDetailVO detail = detailList.get(i);
pstmt2.setInt(1, detail.getOrder_quantity());
pstmt2.setInt(2, detail.getItem_num());
pstmt2.addBatch();
if(i%1000==0) {
pstmt2.executeBatch();
}
}
pstmt2.executeBatch();
}
conn.commit();
}catch(Exception e) {
conn.rollback();
throw new Exception(e);
}finally {
DBUtil.executeClose(null, pstmt2, conn);
}
}
Action
Admin Detail
package kr.order.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import kr.controller.Action;
import kr.order.dao.OrderDAO;
import kr.order.vo.OrderDetailVO;
import kr.order.vo.OrderVO;
public class AdminDetailAction implements Action{
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
Integer user_num =
(Integer)session.getAttribute("user_num");
if(user_num==null) {
return "redirect:/member/loginForm.do";
}
Integer user_auth =
(Integer)session.getAttribute("user_auth");
if(user_auth != 9) {
return "/WEB-INF/views/common/notice.jsp";
}
int order_num = Integer.parseInt(
request.getParameter("order_num"));
OrderDAO dao = OrderDAO.getInstance();
OrderVO order = dao.getOrder(order_num);
List<OrderDetailVO> detailList =
dao.getListOrderDetail(order_num);
request.setAttribute("order", order);
request.setAttribute("detailList", detailList);
return "/WEB-INF/views/order/admin_detail.jsp";
}
}
package kr.order.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import kr.controller.Action;
import kr.order.dao.OrderDAO;
import kr.order.vo.OrderDetailVO;
import kr.order.vo.OrderVO;
public class AdminModifyStatusFormAction implements Action{
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
Integer user_num =
(Integer)session.getAttribute("user_num");
if(user_num==null) {
return "redirect:/member/loginForm.do";
}
Integer user_auth =
(Integer)session.getAttribute("user_auth");
if(user_auth != 9) {
return "/WEB-INF/views/common/notice.jsp";
}
int order_num = Integer.parseInt(
request.getParameter("order_num"));
OrderDAO dao = OrderDAO.getInstance();
OrderVO order = dao.getOrder(order_num);
request.setAttribute("order", order);
return "/WEB-INF/views/order/admin_modifyStatusForm.jsp";
}
}
Admin Modify Status
package kr.order.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import kr.controller.Action;
import kr.order.dao.OrderDAO;
import kr.order.vo.OrderDetailVO;
import kr.order.vo.OrderVO;
public class AdminModifyStatusAction implements Action{
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
Integer user_num =
(Integer)session.getAttribute("user_num");
if(user_num==null) {
return "redirect:/member/loginForm.do";
}
Integer user_auth =
(Integer)session.getAttribute("user_auth");
if(user_auth != 9) {
return "/WEB-INF/views/common/notice.jsp";
}
request.setCharacterEncoding("utf-8");
OrderVO order = new OrderVO();
order.setStatus(Integer.parseInt(
request.getParameter("status")));
order.setOrder_num(Integer.parseInt(
request.getParameter("order_num")));
OrderDAO dao = OrderDAO.getInstance();
OrderVO db_order = dao.getOrder(order.getOrder_num());
if(db_order.getStatus()==5) {
request.setAttribute("notice_msg",
"사용자가 배송상태를 주문 취소로 변경해서 관리자가 배송상태 수정 불가");
request.setAttribute("notice_url",
request.getContextPath()
+"/order/adminDetail.do?order_num="
+order.getOrder_num());
return "/WEB-INF/views/common/alert_view.jsp";
}
dao.updateOrderStatus(order);
request.setAttribute("notice_msg","정상적으로 수정되었습니다.");
request.setAttribute("notice_url",
request.getContextPath()
+"/order/adminDetail.do?order_num="
+order.getOrder_num());
return "/WEB-INF/views/common/alert_view.jsp";
}
}
View
Admin Detail
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>구매상세(관리자전용)</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" type="text/css">
</head>
<body>
<div class="page-main">
<jsp:include page="/WEB-INF/views/common/header.jsp"/>
<div class="content-main">
<h2>구매상세(관리자전용)</h2>
<table>
<tr>
<th>상품명</th>
<th>수량</th>
<th>상품가격</th>
<th>합계</th>
</tr>
<c:forEach var="detail" items="${detailList}">
<tr>
<td>${detail.item_name}</td>
<td class="align-center">
<fmt:formatNumber value="${detail.order_quantity}"/>
</td>
<td class="align-center">
<fmt:formatNumber value="${detail.item_price}"/>원
</td>
<td class="align-center">
<fmt:formatNumber value="${detail.item_total}"/>원
</td>
</tr>
</c:forEach>
<tr>
<td colspan="3" class="align-right"><b>총구매금액</b></td>
<td class="align-center"><fmt:formatNumber value="${order.order_total}"/>원</td>
</tr>
</table>
<ul id="delivery_info">
<li>
<span>받는 사람</span> ${order.receive_name}
</li>
<li>
<span>우편번호</span> ${order.receive_post}
</li>
<li>
<span>주소</span> ${order.receive_address1} ${order.receive_address2}
</li>
<li>
<span>전화번호</span> ${order.receive_phone}
</li>
<li>
<span>남기실 말씀</span> ${order.notice}
</li>
<li>
<span>결제수단</span>
<c:if test="${order.payment == 1}">통장입금</c:if>
<c:if test="${order.payment == 2}">카드결제</c:if>
</li>
<li>
<span>배송상태</span>
<c:if test="${order.status == 1}">배송대기</c:if>
<c:if test="${order.status == 2}">배송준비중</c:if>
<c:if test="${order.status == 3}">배송중</c:if>
<c:if test="${order.status == 4}">배송완료</c:if>
<c:if test="${order.status == 5}">주문취소</c:if>
</li>
<li class="align-center">
<c:if test="${order.status == 1}">
<input type="button" value="배송지정보수정"
onclick="location.href='modifyForm.do?order_num=${order.order_num}'">
</c:if>
<c:if test="${order.status != 5}">
<input type="button" value="배송상태수정"
onclick="location.href='modifyStatusForm.do?order_num=${order.order_num}'">
</c:if>
<c:if test="${order.status == 4 or order.status == 5}">
<input type="button" value="삭제"
onclick="location.href='deleteOrder.do?order_num=${order.order_num}'">
</c:if>
<input type="button" value="주문목록"
onclick="location.href='adminList.do'">
</li>
</ul>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>배송상태 변경(관리자전용)</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" type="text/css">
</head>
<body>
<div class="page-main">
<jsp:include page="/WEB-INF/views/common/header.jsp"/>
<div class="content-main">
<h2>배송상태 변경(관리자전용)</h2>
<form action="modifyStatus.do" method="post"
id="status_modify">
<input type="hidden" name="order_num"
value="${order.order_num}">
<ul>
<li>
<label>배송상태</label>
<c:if test="${order.status != 5}">
<input type="radio" name="status" id="status1" value="1"
<c:if test="${order.status==1}">checked</c:if>>배송대기
<input type="radio" name="status" id="status2" value="2"
<c:if test="${order.status==2}">checked</c:if>>배송준비중
<input type="radio" name="status" id="status3" value="3"
<c:if test="${order.status==3}">checked</c:if>>배송중
<input type="radio" name="status" id="status4" value="4"
<c:if test="${order.status==4}">checked</c:if>>배송완료
</c:if>
<input type="radio" name="status" id="status5" value="5"
<c:if test="${order.status==5}">checked</c:if>>주문취소
</li>
</ul>
<div class="align-center">
<c:if test="${order.status != 5}">
<input type="submit" value="수정">
</c:if>
<input type="button" value="주문상세"
onclick="location.href='adminDetail.do?order_num=${order.order_num}'">
</div>
</form>
</div>
</div>
</body>
</html>
Properties
Shop
/order/adminDetail.do=kr.order.action.AdminDetailAction
/order/modifyStatusForm.do=kr.order.action.AdminModifyStatusFormAction
/order/modifyStatus.do=kr.order.action.AdminModifyStatusAction