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 javax.servlet.http.HttpSession;

import com.cn.domain.Member;
import com.cn.domain.Pmember;
import com.cn.service.PmemberService;
import com.cn.service.impl.PmemberServiceImpl;

/**
 * 
 * @ClassName: GetPmemberByMemberIdServlet 
 * @Description: 根据MemberId获取会员个人信息，展示到myPmember.jsp界面
 * @author: ljy
 * @date: 2019年9月21日 上午2:44:30
 */
public class GetPmemberByMemberIdServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * HttpServlet的构造函数。
     */
    public GetPmemberByMemberIdServlet() {
        super();
        // 构造函数中的代码，通常不需要自定义操作，因为父类已经处理
    }

    /**
     * 处理GET请求的方法。
     * 当客户端发送GET请求时，这个方法会被调用。
     * @param request HttpServletRequest对象，包含客户端请求信息。
     * @param response HttpServletResponse对象，用于发送响应到客户端。
     * @throws ServletException 可能抛出的Servlet异常。
     * @throws IOException 可能抛出的IO异常。
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        // 获取请求参数temp，用于判断是否为管理员
        String temp = request.getParameter("temp");
        
        // 创建PmemberService的实现类对象，用于访问会员相关的业务逻辑
        PmemberService pmemberService = new PmemberServiceImpl();
        
        // 判断是否为管理员
        if(temp != null && !"".equals(temp) && "admin".equals(temp)) {
            // 管理员查询会员个人信息
            // 获取memberId参数，并转换为Integer类型
            Integer memberId = Integer.valueOf(request.getParameter("memberId"));
            // 根据memberId获取Pmember对象
            Pmember pmember = pmemberService.getPmemberByMemberId(memberId);
            // 将Pmember对象设置为request属性，以便在JSP页面中可以访问
            request.setAttribute("pmember", pmember);
            // 转发请求到管理员更新会员信息的JSP页面
            request.getRequestDispatcher("pages/admin/right/updatePmember.jsp").forward(request, response);
            
        } else {
            // 会员查询个人信息
            // 获取session对象
            HttpSession session = request.getSession();
            // 从session中获取member对象
            Member member = (Member) session.getAttribute("member");
            // 如果member对象不为空
            if(member != null) {
                // 根据member的memberId获取Pmember对象
                Pmember pmember = pmemberService.getPmemberByMemberId(member.getMemberId());
                // 将Pmember对象设置为request属性
                request.setAttribute("pmember", pmember);
                // 转发请求到会员个人信息的JSP页面
                request.getRequestDispatcher("pages/user/myCenter/right/myPmember.jsp").forward(request, response);
            } else {
                // 如果member对象为空，这里可以添加一些处理逻辑，例如重定向到登录页面或显示错误信息
            }
        }
    }

    /**
     * 处理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);
    }

}