관리 메뉴

거니의 velog

(5) 회원 삭제 페이지 본문

대덕인재개발원_2nd project

(5) 회원 삭제 페이지

Unlimited00 2023. 10. 20. 10:58

[empResign.jsp]

<%@page import="kr.or.ddit.vo.EmployeeVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	EmployeeVO loginSession = (EmployeeVO) session.getAttribute("loginSession");
	System.out.println("loginSession : " + loginSession.toString());
%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<meta charset="UTF-8" />
        <meta name="author" content="four guys" />
        <meta name="copyright" content="대덕인재개발원_306호" />
        <meta name="description" content="전사적 자원 관리 시스템, ERP 입니다." />
        <meta name="keywords"  content="StockERP, Stock, ERP, 전사적자원관리시스템" />
        <meta name="viewport" content="initial-scale=1.0, width=device-width" />
		<title>StockERP 사원 탈퇴 화면</title>
		<link href="<%= request.getContextPath() %>/css/common.css" rel="stylesheet" />
        <link href="<%= request.getContextPath() %>/images/favicon.ico" rel="shortcut icon" />
		<script src="<%= request.getContextPath() %>/js/jquery-3.7.1.min.js"></script>
        <script defer src="<%= request.getContextPath() %>/js/script.js"></script>
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
        <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" rel="stylesheet" />
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <script>
        	$(function(){
        		
        		// 사원 이미지 종횡비
    	        var mainEmpBox = $(".empWel>div:first-of-type");
    	        var mainEmpImg = $(".empWel img")
    	        $.ratioBoxH(mainEmpBox, mainEmpImg);
    	     	// 이미지가 변경될 때 실행
    		    $(mainEmpImg).on("load", function() {
    		        // 이미지가 로드될 때마다 함수 실행
    		        $.ratioBoxH(mainEmpBox, mainEmpImg);
    		    });
    	        
    	        // mainIcon 클릭 이벤트
    	        var slideMenuClickToken = 0; // 처음에는 서브 메뉴가 숨겨진 상태
    	        var slideMenuIdx = 0;
    	        $(".slideMenu").click(function(){
    	            
    	            var thisIs = $(this);
    	            slideMenuIdx = thisIs.index();
    	            var subNav = thisIs.parents("#mainPageContainerBox").find(".subNav");
    	            
    	            subNav.stop().animate({
    	                "left" : "-140px"
    	            }, 200);
    	            
    	            if(slideMenuClickToken == 0){ // 서브 메뉴가 숨겨진 상태
    	                subNav.eq(slideMenuIdx-3).stop().animate({
    	                    "left" : "60px"
    	                }, 200, function(){
    	                	slideMenuClickToken = 1; // 서브 메뉴가 보여진다고 표시
    	                });
    	            }else if(slideMenuClickToken == 1){ // 서브 메뉴가 보여진 상태
    	                subNav.eq(slideMenuIdx-3).stop().animate({
    	                    "left" : "-140px"
    	                }, 200, function(){
    	                	slideMenuClickToken = 0; // 서브 메뉴가 안보여진다고 표시
    	                });
    	            }
    	            
    	            console.log("slideMenuClickToken : " + slideMenuClickToken);
    	            console.log("slideMenuIdx : " + slideMenuIdx);
    	            
    	        });
    	        
    	        $(".mainIcon:first-of-type").click(function(){
    	            location.href = "<%= request.getContextPath() %>/main/mainPage.jsp";
    	        });
    	        
    	        $("#logoutBtn").click(function(){
    	        	location.href = "<%= request.getContextPath() %>/LogoutServlet.do";
    	        });
    	        
    	        $(".empAdd").click(function(){
    	        	location.href = "<%= request.getContextPath() %>/main/empRegister.jsp";
    	        });
    	        
    	     	// 회원 탈퇴 추가 스크립트
    	        $("#empExit").click(function(){
    	            var empExitChkVal = $("#empRemove").prop("checked");;
    	            if(empExitChkVal){
    	                alert("회원 탈퇴가 성공적으로 끝났습니다.");
    	                location.href = "<%= request.getContextPath() %>/empDelete.do?empno=<%= loginSession.getEmpno() %>&fileno=<%= loginSession.getEmpphoto() %>&completedel=true";
    	            }else {
    	                alert("회원 탈퇴에 동의해 주셔야 합니다.");
    	                return false;
    	            }
    	        });
    	     	
    	     	$("#goToHome").click(function(){
    	     		location.href = "<%= request.getContextPath() %>/main/mainPage.jsp";
    	     	});
    	     	
        	});
        </script>
	</head>
	<body>
		
		<div id="mainPageContainerBox">
            <!-- gnb -->
            <header>
                <a href="<%= request.getContextPath() %>/main/mainPage.jsp">
                    <img src="<%= request.getContextPath() %>/images/logo.png" alt="로고 이미지" />
                </a>
                <div>
                    <div class="empWel">
                        <div>
                            <%-- <img src="<%= request.getContextPath() %>/images/<%= loginSession.getEmpno() %>/emp_<%= loginSession.getEmpno() %>.jpg" alt="사원 이미지" /> --%>
                            <img src="<%= request.getContextPath() %>/images/imgView.do?fileno=<%= loginSession.getEmpphoto() %>" alt="사원 이미지" />
                        </div>
                        <p>
                            [<%= loginSession.getEmpname() %>] 님 환영합니다!
                        </p>
                    </div>
                    <div class="logoutCont">
                        <button id="logoutBtn" class="btn btn-info btn-sm" type="button">LOGOUT</button>
                    </div>
                </div>
            </header>

            <!-- lnb -->
            <nav class="mainNav">
                <ul class="mainIcon">
                    <li class="main">
                        <i class="fas fa-home"></i>
                        <span>HOME</span>
                    </li>
                </ul>
                <ul class="mainIcon empAdd">
                    <li class="main">
                        <i class="material-icons" style="font-size: 2.2em;">person_add</i>
                        <span>ADD</span>
                    </li>
                </ul>
                <ul class="mainIcon">
                    <li class="main">
                        <i class="fa fa-volume-up"></i>
                        <span>NOTI</span>
                    </li>
                </ul>
                <ul class="mainIcon slideMenu">
                    <li class="main">
                        <i class="fa fa-id-card"></i>
                        <span>INFO</span>
                    </li>
                </ul>
                <ul class="mainIcon slideMenu">
                    <li class="main">
                        <i class="fas fa-clipboard"></i>
                        <span>SIGN</span>
                    </li>
                </ul>
                <ul class="mainIcon slideMenu">
                    <li class="main">
                        <i class="fa fa-list-alt"></i>
                        <span>DOCU</span>
                    </li>
                </ul>
            </nav>
            
            <nav class="subNav">
                <ul>
                    <li>사원정보 확인</li>
                    <li><a href="<%= request.getContextPath() %>/empList.do">사원 리스트</a></li>
                    <li><a href="<%= request.getContextPath() %>/main/empUpdate.jsp">사원 정보 수정</a></li>
                    <li><a href="<%= request.getContextPath() %>/main/empResign.jsp">회원 탈퇴</a></li>
                </ul>
            </nav>
            <nav class="subNav">
                <ul>
                    <li>전자결재</li>
                    <li><a href="javascript:void(0)">소메뉴 1</a></li>
                    <li><a href="javascript:void(0)">소메뉴 2</a></li>
                    <li><a href="javascript:void(0)">소메뉴 3</a></li>
                    <li><a href="javascript:void(0)">소메뉴 4</a></li>
                </ul>
            </nav>
            <nav class="subNav">
                <ul>
                    <li>결재서류 확인</li>
                    <li><a href="javascript:void(0)">소메뉴 1</a></li>
                    <li><a href="javascript:void(0)">소메뉴 2</a></li>
                    <li><a href="javascript:void(0)">소메뉴 3</a></li>
                    <li><a href="javascript:void(0)">소메뉴 4</a></li>
                </ul>
            </nav>

            <!-- mainPage -->
            <section class="empResign">
                <div>
                    <div>
                        <h1>회원탈퇴</h1>
                    </div>
                    <div>
                        <h2>회원을 탈퇴하시겠습니까?</h2>
                        <p>
                                                    회원탈퇴 시 개인정보 및 StockERP에서 만들어진 모든 데이터는 삭제됩니다.
                            <br />
                            (단, 아래 항목은 표기된 법률에 따라 특정 기간 동안 보관됩니다.)
                        </p>
                        <article>
                            <ol>
                                <li>
                                    	계약 또는 청약철회 등에 관한 기록 보존 이유 : 전자상거래 등에서의 소비자보호에 관한 법률 / 보존 기간 : 5년
                                </li>
                                <li>
                                    	대금결제 및 재화 등의 공급에 관한 기록 보존 이유 : 전자상거래 등에서의 소비자보호에 관한 법률 / 보존 기간 : 5년
                                </li>
                                <li>
                                    	전자금융 거래에 관한 기록 보존 이유 : 전자금융거래법 보존 기간 / 보존 기간 : 5년
                                </li>
                                <li>
                                    	소비자의 불만 또는 분쟁처리에 관한 기록 보존 이유 : 전자상거래 등에서의 소비자보호에 관한 법률 보존 기간 / 보존 기간 : 3년
                                </li>
                                <li>
                                    	신용정보의 수집/처리 및 이용 등에 관한 기록 보존 이유 : 신용정보의 이용 및 보호에 관한 법률 보존 기간 / 보존 기간 : 3년
                                </li>
                                <li>
                                    	전자(세금)계산서 시스템 구축 운영하는 사업가가 지켜야 할 사항 고시(국세청 고시 제 2016-3호)(전자세금계산서 사용자에 한함) / 보존 기간 5년
                                    <br />
                                    (단, (세금)계산서 내 개인식별번호는 3년 경과 후 파기)
                                </li>
                            </ol>
                        </article>
                    </div>
                    <div>
                        <h2>유의사항</h2>
                        <article>
                            <ul>
                                <li>
                                    	회원탈퇴 처리 후에는 회원님의 개인정보를 복원할 수 없으며, 회원탈퇴 진행 시 해당 아이디는 영구적으로 삭제되어 재가입이 불가능합니다.
                                </li>
                                <li>
                                    	소속된 회사가 존재할 경우, "탈퇴" 회원으로 조회됩니다.
                                </li>
                                <li>
                                   	 회사가 StockERP 내에 존재하는 경우, 회사에 귀속된 데이터에 대해서는 보관됩니다.
                                </li>
                            </ul>
                        </article>
                        <div>
                            <input id="empRemove" name="empRemove" type="checkbox" />
                            <label for="empRemove">해당 내용을 모두 확인했으며, 회원 탈퇴에 동의합니다.</label>
                        </div>
                    </div>
                    <div>
                        <button id="goToHome" type="button">홈으로</button>
                        <button id="empExit" type="button">탈퇴하기</button>
                    </div>
                </div>
            </section>
        </div>
		
	</body>
</html>

[EmpDelete.java]

package kr.or.ddit.controller;

import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import kr.or.ddit.service.CommonServiceImpl;
import kr.or.ddit.service.ICommonService;
import kr.or.ddit.vo.FileInfoVO;


@WebServlet("/empDelete.do")
public class EmpDelete extends HttpServlet {
	
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		
		String empno = request.getParameter("empno");
		System.out.println("empno : " + empno);
		String strfileno = request.getParameter("fileno");
		System.out.println("strfileno : " + strfileno);
		String completedel = request.getParameter("completedel");
		System.out.println("completedel : " + completedel);
		
		if(!("null".equals(strfileno))) {
			//System.out.println("null이 스트링타입이에용");
			
			int fileNo = Integer.parseInt(strfileno);
			
			ICommonService fileService = CommonServiceImpl.getInstance();
			FileInfoVO fvo = fileService.getFileInfo(fileNo);
			int delFile = fileService.deleteFile(fileNo);
			if(delFile > 0) {
				System.out.println("파일이 삭제되었습니다.");
			}else {
				System.out.println("파일을 찾을 수 없어 삭제하지 못했습니다.");
			}
			
			String uploadPath = "c:/erpCommonImg/images/";
			String uploadimg = String.valueOf(fvo.getSavefilename());
			File f = new File(uploadPath + uploadimg);
			
			if(f.exists()) { // 파일 존재 여부 확인
				f.delete();
				System.out.println("진짜 물리적 파일도 삭제되었습니다.");
			}
		}
		
		ICommonService empService = CommonServiceImpl.getInstance();
		int delEmp = empService.deleteEmp(empno);
		
		if(delEmp > 0) {
			System.out.println("사원 정보가 삭제되었습니다.");
		}else {
			System.out.println("사원 정보를 삭제하지 못했습니다.");
		}
		
		if(completedel != null) { // 로그인한 사원을 확실하게 삭제
			//System.out.println("로그인한 사원을 삭제합니다.");
			HttpSession session = request.getSession();
			session.invalidate(); // 세션 삭제
			response.sendRedirect(request.getContextPath() + "/index.jsp");
		}else { // 회원 등록 페이지에서 처리하는 경우
			//System.out.println("회원등록 페이지에서 회원을 삭제합니다.");
			response.sendRedirect(request.getContextPath() + "/main/empRegister.jsp");
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

'대덕인재개발원_2nd project' 카테고리의 다른 글

(7) MyBatis 세팅  (0) 2023.10.20
(6) common.css  (0) 2023.10.20
(4) 회원 수정 페이지  (0) 2023.10.20
(3) 회원 조회 페이지  (0) 2023.10.20
(2) 회원 가입 페이지  (0) 2023.10.20