본문 바로가기
Team project/대학학사관리 - Chelsea University

수강신청

by 개발자공부 2024. 10. 25.
JSP

 수강신청 기간은 3개로 설정했습니다.

예비수강신청 시작 → 본 수강신청 시작 → 수강신청 기간 완전 종료.

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/WEB-INF/views/home/staffHeader.jsp"%>
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/main.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/sidebar.css">

<style>
	main form button{
	padding: 10px;
	margin: 10px;
	}
	
	p {
	font-size: 22px;
	}
	
	
</style>
    <div class="d-flex justify-content-center align-items-start" style="display:flex; min-width: 100em;">
        <div class="sub--menu">
            <div class="sub--menu--top">
                <h2>학사관리</h2>
            </div>
            <div class="sub--menu--mid">
                <table class="sub--menu--table" border="1">
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/studentList">학생 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professorList">교수 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/student">학생 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professor">교수 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/tuition/bill">등록금 고지서 발송</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/break/list/staff">휴학 처리</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/sugang/period" class="selected--menu">수강신청 기간 설정</a></td>
                        </tr>
                </table>
            </div>
        </div>

         <main style="width: 100%; padding: 20px;">
            <h1 class="sub--title">수강 신청 기간 설정</h1>
            <div class="split--div"></div>
            <c:if test="${SUGANG_PERIOD == 0}">
                <p>현재 예비 수강 신청 기간입니다.</p>
                <br>
                <form action="${pageContext.request.contextPath}/sugang/updatePeriod1" method="post">
                    <button type="submit">수강신청 기간 시작하기</button>
                </form>
            </c:if>

            <!-- 수강신청 시작 버튼 눌렀을 때 -->
            <c:if test="${SUGANG_PERIOD == 1}">
                <p>현재 수강 신청 기간입니다.</p>
                 <br>
                <form action="${pageContext.request.contextPath}/sugang/updatePeriod2" method="post">
                    <button type="submit">수강신청 종료하기</button>
                </form>
            </c:if>

            <!-- 수강신청 종료 버튼 눌렀을 때 -->
            <c:if test="${SUGANG_PERIOD == 2}">
                <p>이번 학기 수강 신청 기간이 종료되었습니다. 예비 수강신청 기간을 시작하시겠습니까?</p>
                 <br>
                <form action="${pageContext.request.contextPath}/sugang/updatePeriod0" method="post">
                    <button type="submit">예비수강신청 기간 시작하기</button>
                </form>
            </c:if>
        </main>
    </div>
  <%@ include file="footer.jsp"%>

 

Controller

 본 수강신청이 시작했을 때 정원이 초과하면 인원을 0명으로 초기화하여 처음부터 신청받을 수 있는 상태로, 정원이 초과되지 않았다면 학생의 장바구니에 이동합니다. 수강신청 기간이 완전 종료되기 전에 장바구니에 담기 목록은 수강취소할 수 있습니다.

 최대이수학점을 초과하거나 수강 가능한 전공 영역이 아닐 경우도 처리해야 합니다.

더보기
package com.chelseaUniversity.ver1.controller;

@WebServlet("/sugang/*")
public class SugangController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	// TODO - 학과 코드 고정값 >> 변동값으로 변동 필
	private static final int FIRST_DEPT_ID = 101;
	private static final int LAST_DEPT_ID = 120;
	private static final int VIEW_SUBJECT = 20;

	private SubjectRepository subjectRepository;
	private PreStuSubRepository preStuSubRepository;
	private StuSubRepository stuSubRepository;
	private StuSubDetailRepository stuSubDetailRepository;
	private RegistrationRepository registrationRepository;
	private SugangStatus sugangStatus;
	private StuSub stuSub;

	@Override
	public void init() throws ServletException {
		subjectRepository = new SubjectRepositoryImpl();
		preStuSubRepository = new PreStuSubRepositoryImpl();
		stuSubRepository = new StuSubRepositoryImpl();
		stuSubDetailRepository = new StuSubDetailRepositoryImpl();
		registrationRepository = new RegistrationRepositoryImpl();
		sugangStatus = new SugangStatusImpl();
		stuSub = new StuSub();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		HttpSession session = request.getSession();
		StudentInfoDto principalStu = null;
		User userRole = (User) session.getAttribute("user");
		if ("student".equalsIgnoreCase(userRole.getUserRole())) {
			principalStu = (StudentInfoDto) session.getAttribute("principal");
		}

		int totalGrade;
		List<SubjectHistory> historyList;

		boolean preSeason = "진행".equals(registrationRepository.isPreSugangSeason()) ? true : false;
		boolean season = "진행".equals(registrationRepository.isSugangSeason()) ? true : false;

		if (principalStu != null) {
			if (preSeason) {
				List<Integer> subjectIdList = registrationRepository.selectPreSubjectRegistration(principalStu.getId());
				request.setAttribute("subjectIdList", subjectIdList);
			} else if (season) {
				List<Integer> subjectIdList = registrationRepository.selectSubjectRegistration(principalStu.getId());
				request.setAttribute("subjectIdList", subjectIdList);
			} else {

			}
		}

		switch (action) {
		case "/subjectList":
			showSubjectList(request, response, "/subjectList");
			break;

		case "/pre":
			if (preSeason) {
				showSubjectList(request, response, "/pre");
			} else {
				String message = "예비수강신청 기간이 아닙니다.";
				int page = 1;

				request.setAttribute("message", message);
				request.setAttribute("page", page);
				showSubjectList(request, response, "/subjectList");
			}
			break;

		case "/preAppList":
			if (preSeason) {
				totalGrade = registrationRepository.preTotalGrades(principalStu.getId());
				historyList = registrationRepository.resistrationHistory(principalStu.getId());

				request.setAttribute("totalGrade", totalGrade);
				request.setAttribute("historyList", historyList);
				request.getRequestDispatcher("/WEB-INF/views/student/preSugangHistory.jsp").forward(request, response);
			} else {
				String message = "예비 수강신청 기간이 아닙니다.";
				int page = 1;

				request.setAttribute("message", message);
				request.setAttribute("page", page);
				viewSubjectList(request, response, page, "/subjectList");
			}
			break;

		case "/appList":
			if (season) {
				totalGrade = registrationRepository.totalGrades(principalStu.getId());
				List<SubjectHistory> failSubList = new ArrayList<>();
				List<SubjectHistory> successSubList = new ArrayList<>();
				List<Integer> failList = registrationRepository.failResistration(principalStu.getId());
				List<Integer> successList = registrationRepository.successResistration(principalStu.getId());
				for (int failNum : failList) {
					failSubList.add(registrationRepository.resistrationHistory(principalStu.getId(), failNum,
							RegistrationRepositoryImpl.FAIL_SELECT_SUBJECT_HISTORY));
				}

				for (int successNum : successList) {
					successSubList.add(registrationRepository.resistrationHistory(principalStu.getId(), successNum,
							RegistrationRepositoryImpl.SUCCESS_SELECT_SUBJECT_HISTORY));
				}

				boolean failCheck = failSubList.isEmpty();
				boolean successCheck = successSubList.isEmpty();

				request.setAttribute("failCheck", failCheck);
				request.setAttribute("successCheck", successCheck);
				request.setAttribute("failSubList", failSubList);
				request.setAttribute("successSubList", successSubList);
				request.setAttribute("totalGrade", totalGrade);
				request.getRequestDispatcher("/WEB-INF/views/student/sugangList.jsp").forward(request, response);
			} else {
				String message = "수강신청 기간이 아닙니다.";
				int page = 1;

				request.setAttribute("message", message);
				request.setAttribute("page", page);
				viewSubjectList(request, response, page, "/subjectList");
			}
			break;

		case "/list":
			if (season) {
				totalGrade = registrationRepository.totalGrades(principalStu.getId());
				List<SubjectHistory> successSubList = new ArrayList<>();
				List<Integer> successList = registrationRepository.successResistration(principalStu.getId());

				for (int successNum : successList) {
					successSubList.add(registrationRepository.resistrationHistory(principalStu.getId(), successNum,
							RegistrationRepositoryImpl.SUCCESS_SELECT_SUBJECT_HISTORY));
				}

				boolean successCheck = successSubList.isEmpty();
				request.setAttribute("successCheck", successCheck);
				request.setAttribute("successSubList", successSubList);
				request.setAttribute("totalGrade", totalGrade);
				request.getRequestDispatcher("/WEB-INF/views/student/sugangHistory.jsp").forward(request, response);
			} else {
				String message = "수강신청 기간이 아닙니다.";
				int page = 1;

				request.setAttribute("message", message);
				request.setAttribute("page", page);
				showSubjectList(request, response, "/subjectList");
			}
			break;
		case "/period":
			int SUGANG_PERIOD = 2;
			String sugang = sugangStatus.selectSugangStatus();
			String preSugang = sugangStatus.selectPreSugangStatus();
			if(sugang != null && preSugang != null) {
				if(sugang.equals("진행")) {
					SUGANG_PERIOD = 1;
				} else if (preSugang.equals("진행")) {
					SUGANG_PERIOD = 0;
				}
			}
			request.setAttribute("SUGANG_PERIOD", SUGANG_PERIOD);
			request.getRequestDispatcher("/WEB-INF/views/staff/sugangPeriod.jsp").forward(request, response);
			break;

		case "/regist":
			registrationPreSubject(request, response, principalStu);
			response.sendRedirect(request.getContextPath() + "/sugang/pre?page=1");
			break;

		case "/delete":
			deletePreSubject(request, response, principalStu);
			response.sendRedirect(request.getContextPath() + "/sugang/pre?page=1");
			break;

		case "/application":
			showSubjectList(request, response, "/application");
			break;

		case "/deleteList":
			deletePreSubject(request, response, principalStu);
			response.sendRedirect(request.getContextPath() + "/sugang/preAppList");
			break;

		case "/deleteSugang":
			try {
				int subjectId = Integer.parseInt(request.getParameter("id"));
				registrationRepository.deleteSubjectRegistration(principalStu.getId(), subjectId);
				registrationRepository.deleteNumOfStudent(subjectId);
			} catch (Exception e) {
				response.sendRedirect(request.getContextPath() + "/sugang/appList?page=1");
			}
			response.sendRedirect(request.getContextPath() + "/sugang/appList?page=1");
			break;

		case "/registrationSugang":
			registrationSubject(request, response, principalStu);
			break;

		default:
			response.sendError(HttpServletResponse.SC_NOT_FOUND);
			break;
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		switch (action) {
		case "/updatePeriod0":
			updatePeriod0(request, response);
			break;
		case "/updatePeriod1":
			updatePeriod1(request, response);
			break;
		case "/updatePeriod2":
			updatePeriod2(request, response);
			break;
		case "/subjectList":
			break;
		default:
			response.sendError(HttpServletResponse.SC_NOT_FOUND);
			break;
		}

	}

	/**
	 * 교직원 -> 예비 수강신청 기간 시작
	 * 
	 * @param request
	 * @param response
	 * @throws IOException
	 * @throws ServletException
	 */
	private void updatePeriod0(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 예비 수강신청 기간 시작
		sugangStatus.updatePrePeriod("진행");
		final int SUGANG_PERIOD = 0;
		request.setAttribute("SUGANG_PERIOD", SUGANG_PERIOD);
		request.getRequestDispatcher("/WEB-INF/views/staff/sugangPeriod.jsp").forward(request, response);
	}

	/**
	 * 교직원 -> 수강신청기간 시작
	 * 
	 * @param request
	 * @param response
	 * @throws IOException
	 * @throws ServletException
	 */
	private void updatePeriod1(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		// 강의 정원 >= 예비 수강신청 인원 (정원 초과X)
		List<Integer> lessIdList = subjectRepository.selectIdByLessNumOfStudent();
		for (Integer subjectId : lessIdList) {
			// 예비 수강신청 과목id와 학생 id 받아오기
			List<PreStuSub> preAppList = preStuSubRepository.selectBySubjectId(subjectId);
			for (PreStuSub preSutSub : preAppList) {

				if (stuSubRepository.selectByStudentIdAndSubjectId(preSutSub.getStudentId(),
						preSutSub.getSubjectId()) == null) {
					// 수강확정
					stuSubRepository.insert(preSutSub.getStudentId(), preSutSub.getSubjectId());
					stuSub = stuSubRepository.selectByStudentIdAndSubjectId(preSutSub.getStudentId(),
							preSutSub.getSubjectId());
				}
			}
		}

		// 강의 정원 < 예비 수강신청 인원 (정원 초과O)
		List<Integer> moreIdList = subjectRepository.selectIdByMoreNumOfStudent();
		for (Integer subjectId : moreIdList) {
			subjectRepository.updateNumOfStudent(subjectId, "초기화");
			// 예비 수강신청 과목id와 학생 id 받아오기
			List<PreStuSub> preAppList = preStuSubRepository.selectBySubjectId(subjectId);
			for (PreStuSub preSutSub : preAppList) {
				// 수강실패 테이블에 입력
				stuSubRepository.insertFailSub(preSutSub.getStudentId(), preSutSub.getSubjectId());
			}
		}

		// 수강 신청기간 상태값 변경 (예비수강, 본수강 순서)
		sugangStatus.updateAllSugangPeriod("종료", "진행");
		final int SUGANG_PERIOD = 1;
		request.setAttribute("SUGANG_PERIOD", SUGANG_PERIOD);
		request.getRequestDispatcher("/WEB-INF/views/staff/sugangPeriod.jsp").forward(request, response);
	}

	/**
	 * 교직원 -> 수강신청 기간 종료
	 * 
	 * @param request
	 * @param response
	 * @throws IOException
	 * @throws ServletException
	 */
	private void updatePeriod2(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 본수강신청 기간 종료
		sugangStatus.updateSugangPeriod("종료");
		final int SUGANG_PERIOD = 2;
		int rscount2 = -1;
		// 수강 디테일에 입력
		List<SendSub> fixList = stuSubDetailRepository.selectFixSubject();
		for (SendSub sendSub : fixList) {
			stuSubDetailRepository.insert(sendSub.getStudentId(), sendSub.getSubjectId());	
		}
		
		request.setAttribute("SUGANG_PERIOD", SUGANG_PERIOD);
		request.getRequestDispatcher("/WEB-INF/views/staff/sugangPeriod.jsp").forward(request, response);
	}


	private void registrationPreSubject(HttpServletRequest request, HttpServletResponse response,
			StudentInfoDto principal) throws ServletException, IOException {

		List<CheckSubjectTime> checkTimeList = registrationRepository.registSubjectTime(principal.getId(),
				RegistrationRepositoryImpl.CHECK_PRE_SUBJECT_TIME);

		if (!checkTimeList.isEmpty()) {

			int totalGrades = registrationRepository.preTotalGrades(principal.getId());
			int subGrade = Integer.parseInt(request.getParameter("subGrade"));
			if ((totalGrades + subGrade) > 18) {

				String message = "최대 수강학점을 넘습니다.";

				// 메시지를 요청 속성으로 설정
				request.setAttribute("message", message);
				showSubjectList(request, response, "/pre");
				return;

			}

			String subDay = request.getParameter("subDay");
			String startTimeStr = request.getParameter("startTime");
			String endTimeStr = request.getParameter("endTime");

			for (CheckSubjectTime checkSubjectTime : checkTimeList) {

				if (checkSubjectTime.getSubDay().equals(subDay)) {

					int startTime = Integer.parseInt(startTimeStr);
					int endTime = Integer.parseInt(endTimeStr);
					int checkStartTime = Integer.parseInt(checkSubjectTime.getStartTime());
					int checkEndTime = Integer.parseInt(checkSubjectTime.getEndTime());

					if ((checkStartTime <= startTime && startTime <= checkEndTime)
							|| (checkStartTime <= endTime && endTime <= checkEndTime)) {

						String message = "중복된 수업시간이 있습니다.";

						// 메시지를 요청 속성으로 설정
						request.setAttribute("message", message);
						showSubjectList(request, response, "/pre");
						return;

					}

				}

			}
		}

		String registSubIdStr = request.getParameter("id");

		try {
			int subId = Integer.parseInt(registSubIdStr);

			if (!principal.getDeptId().equals(registrationRepository.checkDepartment(subId, principal.getId()))
					&& "전공".equals(request.getParameter("subType"))) {

				String message = "학과 내 전공만 신청이 가능합니다.";

				// 메시지를 요청 속성으로 설정
				request.setAttribute("message", message);
				showSubjectList(request, response, "/pre");
				return;
			}

			List<Integer> checkList = registrationRepository.selectPreSubjectRegistration(principal.getId());
			if (!checkList.contains(subId)) {
				registrationRepository.insertPreSubjectRegistration(principal.getId(), subId);
				registrationRepository.addNumOfStudent(subId);
//				showSubjectList(request, response, "/pre");
			}
		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
	}

	private void registrationSubject(HttpServletRequest request, HttpServletResponse response,
			StudentInfoDto principalStu) throws ServletException, IOException {
		List<CheckSubjectTime> checkTimeList = registrationRepository.registSubjectTime(principalStu.getId(),
				RegistrationRepositoryImpl.CHECK_SUBJECT_TIME);

		if (!checkTimeList.isEmpty()) {

			int totalGrades = registrationRepository.totalGrades(principalStu.getId());
			int subGrade = Integer.parseInt(request.getParameter("subGrade"));
			if ((totalGrades + subGrade) > 18) {

				String message = "최대 수강학점을 넘습니다.";

				// 메시지를 요청 속성으로 설정
				request.setAttribute("message", message);
				showSubjectList(request, response, "/application");
				return;

			}

			String subDay = request.getParameter("subDay");
			String startTimeStr = request.getParameter("startTime");
			String endTimeStr = request.getParameter("endTime");

			for (CheckSubjectTime checkSubjectTime : checkTimeList) {

				if (checkSubjectTime.getSubDay().equals(subDay)) {

					int startTime = Integer.parseInt(startTimeStr);
					int endTime = Integer.parseInt(endTimeStr);
					int checkStartTime = Integer.parseInt(checkSubjectTime.getStartTime());
					int checkEndTime = Integer.parseInt(checkSubjectTime.getEndTime());

					if ((checkStartTime <= startTime && startTime <= checkEndTime)
							|| (checkStartTime <= endTime && endTime <= checkEndTime)) {

						String message = "중복된 수업시간이 있습니다.";

						// 메시지를 요청 속성으로 설정
						request.setAttribute("message", message);
						showSubjectList(request, response, "/application");
						return;

					}

				}

			}

		}

		String registSubIdStr = request.getParameter("id");

		try {
			int subId = Integer.parseInt(registSubIdStr);

			if (!principalStu.getDeptId().equals(registrationRepository.checkDepartment(subId, principalStu.getId()))
					&& "전공".equals(request.getParameter("subType"))) {

				String message = "학과 내 전공만 신청이 가능합니다.";

				// 메시지를 요청 속성으로 설정
				request.setAttribute("message", message);
				showSubjectList(request, response, "/application");
				return;
			}

			try {
				int subjectId = Integer.parseInt(request.getParameter("id"));
				boolean check = registrationRepository.checkCapacity(subjectId);

				if (check) {
					registrationRepository.insertSubjectRegistration(principalStu.getId(), subjectId);
					registrationRepository.addNumOfStudent(subjectId);
					response.sendRedirect(request.getContextPath() + "/sugang/appList?page=1");
				} else {
					String message = "정원을 초과하였습니다.";
					request.setAttribute("message", message);
					request.getRequestDispatcher("/WEB-INF/views/student/sugangList.jsp").forward(request, response);
				}
			} catch (Exception e) {
				response.sendRedirect(request.getContextPath() + "/sugang/appList?page=1");
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
	}

	private void deletePreSubject(HttpServletRequest request, HttpServletResponse response, StudentInfoDto principal)
			throws ServletException, IOException {
		String deleteSubIdStr = request.getParameter("id");

		try {
			int subId = Integer.parseInt(deleteSubIdStr);
			List<Integer> checkList = registrationRepository.selectPreSubjectRegistration(principal.getId());
			if (checkList.contains(subId)) {
				registrationRepository.deletePreSubjectRegistration(principal.getId(), subId);
				registrationRepository.deleteNumOfStudent(subId);
			}
		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
	}

}

 

repository > interfaces

본 수강신청 기간이 시작하면 학생이 예비수강신청 탭에 접속을 하면 안되기 때문에 DB에 0또는 1로 상태값을 주어 처리했습니다.

더보기
package com.chelseaUniversity.ver1.repository;

public class SugangStatusImpl implements SugangStatus{

	public final String SELECT_SUGANG_STATUS = " SELECT status FROM sugang WHERE name = 'sugang'";
	public final String SELECT_PRE_SUGANG_STATUS = " SELECT status FROM sugang WHERE name = 'pre_sugang'";
	public final String UPDATE_SUGANG_STATUS = " UPDATE sugang SET status = ? WHERE name = 'sugang' ";
	public final String UPDATE_PRE_SUGANG_STATUS = " UPDATE sugang SET status = ? WHERE name = 'pre_sugang' ";

	/**
	 * 예비수강기간, 본수강기간 모두 변경
	 */
	@Override
	public int updateAllSugangPeriod(String preSugangStatus, String sugangStatus) {
		int rsRowCount = 0;
		try (Connection conn = DBUtil.getConnection()) {
			conn.setAutoCommit(false);
			// 예비수강신청 기간 상태값 변경
			try (PreparedStatement pstmt = conn.prepareStatement(UPDATE_PRE_SUGANG_STATUS)) {
				pstmt.setString(1, preSugangStatus);
				rsRowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}
			// 본 수강신청 기간 상태값 변경
			try (PreparedStatement pstmt = conn.prepareStatement(UPDATE_SUGANG_STATUS)) {
				pstmt.setString(1, sugangStatus);
				rsRowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return rsRowCount;
	}

	/**
	 * 예비수강신청 기간 상태값 변경
	 */
	@Override
	public int updatePrePeriod(String preSugangStatus) {
		int rsRowCount = 0;
		try (Connection conn = DBUtil.getConnection()) {
			conn.setAutoCommit(false);
			try (PreparedStatement pstmt = conn.prepareStatement(UPDATE_PRE_SUGANG_STATUS)) {
				pstmt.setString(1, preSugangStatus);
				rsRowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return rsRowCount;
	}

	/**
	 * 수강신청 기간 상태값 변경
	 */
	@Override
	public int updateSugangPeriod(String sugangStatus) {
		int rsRowCount = 0;
		try (Connection conn = DBUtil.getConnection()) {
			conn.setAutoCommit(false);
			try (PreparedStatement pstmt = conn.prepareStatement(UPDATE_SUGANG_STATUS)) {
				pstmt.setString(1, sugangStatus);
				rsRowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return rsRowCount;
	}

	@Override
	public String selectSugangStatus() {
		String status = null;
		try (Connection conn = DBUtil.getConnection();
			PreparedStatement pstmt = conn.prepareStatement(SELECT_SUGANG_STATUS)){
			ResultSet rs = pstmt.executeQuery();
			if(rs.next()) {
				status = rs.getString("status");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return status;
	}

	@Override
	public String selectPreSugangStatus() {
		String status = null;
		try (Connection conn = DBUtil.getConnection();
				PreparedStatement pstmt = conn.prepareStatement(SELECT_PRE_SUGANG_STATUS)){
				ResultSet rs = pstmt.executeQuery();
				if(rs.next()) {
					status = rs.getString("status");
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		return status;
	}

}