DAO
배송지 정보 수정
public void updateOrder(OrderVO order)throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try {
conn = DBUtil.getConnection();
sql = "UPDATE zorder SET receive_name=?,receive_post=?,"
+ "receive_address1=?,receive_address2=?,receive_phone=?,"
+ "notice=?,modify_date=SYSDATE WHERE order_num=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, order.getReceive_name());
pstmt.setString(2, order.getReceive_post());
pstmt.setString(3, order.getReceive_address1());
pstmt.setString(4, order.getReceive_address2());
pstmt.setString(5, order.getReceive_phone());
pstmt.setString(6, order.getNotice());
pstmt.setInt(7, order.getOrder_num());
pstmt.executeUpdate();
}catch(Exception e) {
throw new Exception(e);
}finally {
DBUtil.executeClose(null, pstmt, conn);
}
}
주문 취소 - 사용자
public void updateOrderCancel(int order_num)
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=5,modify_date=SYSDATE "
+ "WHERE order_num=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, order_num);
pstmt.executeUpdate();
List<OrderDetailVO> detailList =
getListOrderDetail(order_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, null);
DBUtil.executeClose(null, pstmt, conn);
}
}
}
Action
User Modify Action
package kr.order.action;
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.OrderVO;
public class UserModifyAction 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";
}
request.setCharacterEncoding("utf-8");
int order_num = Integer.parseInt(
request.getParameter("order_num"));
OrderDAO dao = OrderDAO.getInstance();
OrderVO db_order = dao.getOrder(order_num);
if(db_order.getMem_num() != user_num) {
return "/WEB-INF/views/common/notice.jsp";
}
if(db_order.getStatus()>1) {
request.setAttribute("notice_msg",
"배송상태가 변경되어 주문자가 주문정보 변경 불가");
request.setAttribute("notice_url",
request.getContextPath()+"/order/orderList.do");
return "/WEB-INF/views/common/alert_view.jsp";
}
OrderVO order = new OrderVO();
order.setOrder_num(order_num);
order.setReceive_name(request.getParameter("receive_name"));
order.setReceive_post(request.getParameter("receive_post"));
order.setReceive_address1(request.getParameter("receive_address1"));
order.setReceive_address2(request.getParameter("receive_address2"));
order.setReceive_phone(request.getParameter("receive_phone"));
order.setNotice(request.getParameter("notice"));
dao.updateOrder(order);
request.setAttribute("notice_msg",
"정상적으로 수정되었습니다.");
request.setAttribute("notice_url",
request.getContextPath()
+"/order/orderDetail.do?order_num="+order_num);
return "/WEB-INF/views/common/alert_view.jsp";
}
}
Properties
Shop
/order/orderModify.do=kr.order.action.UserModifyAction