package com.cn.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.cn.domain.Prep;
import com.cn.service.PrepService;
import com.cn.service.impl.PrepServiceImpl;

/**
 * 
 * @ClassName: UpdatePrepServlet
 * @Description: 会员判断是改签还是付款，如果是付款的话实现付款业务，改签的话跳转到ChangePrepServlet
 * @author: ljy
 * @date: 2019年11月10日 下午8:24:24
 */
public class UpdatePrepServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * HttpServlet的构造函数。
     */
    public UpdatePrepServlet() {
        super();
        // 构造函数中的代码，通常不需要自定义操作，因为父类已经处理
    }

    /**
     * 处理GET请求的方法。
     * 当客户端发送GET请求到此Servlet时，这个方法会被调用。
     * @param request HttpServletRequest对象，包含客户端请求信息。
     * @param response HttpServletResponse对象，用于发送响应到客户端。
     * @throws ServletException 可能抛出的Servlet异常。
     * @throws IOException 可能抛出的IO异常。
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 从请求中获取订单ID和临时变量temp参数，并转换为Integer类型
        Integer prepId = Integer.valueOf(request.getParameter("prepId"));
        Integer temp = Integer.valueOf(request.getParameter("temp"));
        
        // 创建PrepService的实现类对象，用于访问订单相关的业务逻辑
        PrepService prepService = new PrepServiceImpl();
        // 根据订单ID获取订单对象
        Prep prep = prepService.getById(prepId);
        
        // 如果temp参数为1，表示进行付款业务
        if(temp == 1) {
            // 设置订单的付款状态为已付款
            prep.setWay(true);
            // 更新订单对象到数据库
            int recordNumber = prepService.update(prep);
            // 根据更新结果设置消息，并转发到我的订单页面
            if(recordNumber == 1) {
                request.setAttribute("msg", "付款成功！");
            } else {
                request.setAttribute("msg", "付款失败！");
            }
            request.getRequestDispatcher("MyPrepServlet").forward(request, response);
        }
        
        // 如果temp参数为2，表示进行改签业务，先将prepId转发到ChangePrepServlet
        if(temp == 2) {
            request.setAttribute("prepId", prepId);
            request.getRequestDispatcher("ChangePrepServlet").forward(request, response);
        }
    }

    /**
     * 处理POST请求的方法。
     * 当客户端发送POST请求时，这个方法会被调用。
     * @param request HttpServletRequest对象，包含客户端请求信息。
     * @param response HttpServletResponse对象，用于发送响应到客户端。
     * @throws ServletException 可能抛出的Servlet异常。
     * @throws IOException 可能抛出的IO异常。
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        doGet(request, response);
    }

}