package com.cn.servlet; // 定义Servlet所在的包名

import java.io.IOException; // 导入IOException，用于处理输入输出异常
import java.io.PrintWriter; // 导入PrintWriter，用于向客户端发送字符文本数据

import javax.servlet.ServletException; // 导入ServletException，用于处理Servlet运行时的异常
import javax.servlet.http.HttpServlet; // 导入HttpServlet，是所有HTTP servlet的父类
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest，代表客户端的请求信息
import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse，代表服务器对客户端的响应信息

import com.cn.domain.Pmember; // 导入Pmember类，该类定义了会员个人信息的数据结构
import com.cn.service.MemberService; // 导入MemberService接口，该接口定义了会员服务的方法
import com.cn.service.PmemberService; // 导入PmemberService接口，该接口定义了会员个人信息服务的方法
import com.cn.service.impl.MemberServiceImpl; // 导入MemberService接口的实现类，用于具体的会员业务操作
import com.cn.service.impl.PmemberServiceImpl; // 导入PmemberService接口的实现类，用于具体的会员个人信息业务操作

/**
 * DeleteMemberAdminServlet类，用于处理管理员删除会员的请求。
 * @ClassName: DeleteMemberAdminServlet 类名：DeleteMemberAdminServlet
 * @Description: 管理员删除会员
 * @author: ljy Servlet的作者
 * @date: 2019年9月28日 下午9:31:52 Servlet创建的日期和时间
 */
public class DeleteMemberAdminServlet extends HttpServlet {
	private static final long serialVersionUID = 1L; // 用于序列化

    /**
     * 默认构造函数。
     */
    public DeleteMemberAdminServlet() {
        super(); // 调用父类的构造函数
        // TODO Auto-generated constructor stub
    }

	/**
	 * 处理GET请求的方法，用于执行删除会员的操作。
	 * @param request HttpServletRequest对象，包含客户端的请求信息
	 * @param response HttpServletResponse对象，包含服务器对客户端的响应信息
	 * @throws ServletException 抛出Servlet异常
	 * @throws IOException 抛出输入输出异常
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// 从请求中获取会员ID，并转换为Integer类型
		Integer memberId = Integer.valueOf(request.getParameter("memberId"));
		
		// 创建会员个人信息服务对象
		PmemberService pmemberService = new PmemberServiceImpl();
		// 创建会员服务对象
		MemberService memberService = new MemberServiceImpl();
		// 先删除pmember表内的会员个人信息
		// 根据会员ID获取会员个人信息对象
		Pmember pmember = pmemberService.getPmemberByMemberId(memberId);
		// 删除会员个人信息，并返回影响的记录数
		int recordNumber = pmemberService.delete(pmember.getPmemberId());
		
		// 获取PrintWriter对象，用于向客户端发送响应
		PrintWriter out = response.getWriter();
		if(recordNumber == 1) {
			// 如果会员个人信息删除成功，再删除member表内的会员信息
			// 删除会员，并返回影响的记录数
			int recordNumber1 = memberService.deleteMember(memberId);
			
			if(recordNumber1 == 1) {
				// 如果会员删除成功，向客户端发送JavaScript代码，弹出提示并跳转到会员中心页面
				out.write("<script>alert('删除会员成功！');" + "window.location.href='MemberCenterServlet'</script>");
			}else {
				// 如果会员删除失败，向客户端发送JavaScript代码，弹出提示并跳转到会员中心页面
				out.write("<script>alert('很抱歉，删除会员失败！');" + "window.location.href='MemberCenterServlet'</script>");
			}
			
		}else {
			// 如果会员个人信息删除失败，向客户端发送JavaScript代码，弹出提示并跳转到会员中心页面
			out.write("<script>alert('很抱歉，删除会员失败！');" + "window.location.href='MemberCenterServlet'</script>");
		}
		
		// 关闭PrintWriter对象
		out.close();
		
	}

	/**
	 * 处理POST请求的方法，此实现中直接调用doGet方法。
	 * @param request HttpServletRequest对象，包含客户端的请求信息
	 * @param response HttpServletResponse对象，包含服务器对客户端的响应信息
	 * @throws ServletException 抛出Servlet异常
	 * @throws IOException 抛出输入输出异常
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response); // 直接调用doGet方法处理
	}

}