Spring-Project-관리자

4 minute read

관리자 권한

관리자의 권한으로서 다른 기능에서 많이 적용시켰지만, 가장 큰 Main 기능 2가지는 비행기 생성과 매출확인이다.
관리자의 비행기 생성을 위한 DB의 구조는 아래와 같다.
노선을 위한 DB


항공 생성을위한 DB


관리자 권한 - 비행기 생성

항공기 생성시 고려해야 할 점은 고객이 예매를 했을경우 Ticket이 각각 다 달라야 한다.
이를 위하여 항공기의 이름, 출발시간, 도착지, 좌석번호등 여러가지 정보를 조합하여 유일한 Ticket 번호를 생성하게 되었다.
매출 확인 및 비행기의 정보가 필요한 경우 생성한 Ticket번호로서 구별하게 되었다.
노선생성시 각 비행기의 출발 년도, 월을 선택하고 노선정보를 입력하게 되면 임의로 1달치 비행기 노선 정보가 생성한다고 가정하고 실시하였다.
비행기 노선생성을 위한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="resources/css/mybook.css">
</head>
<body class="basicFont container">
<div class="logo"><a href="index.jsp"><img src="resources/images/bomair_logo.png"/></a></div>
<br><br><br>
* 도시 항공노선 정보 입력 * <p/>
<script type="text/javascript" src="http://code.jquery.com/jquery-3.2.0.min.js" ></script>
<script type="text/javascript">
$(document).ready(function(){
  $('#btn_go').click(function(){
		var aa = $('#month').val();
		var bb = $('#year').val();
		$('input[name=o_sdate]').attr('value', bb+'-'+aa+'-01');
		
		if($('#l_code').val() === ''){
			alert("도시를 입력해주세요");
		}else if(bb === ''){
			alert("년도를 입력해주세요");				
		}else if(aa === ''){
			alert("월을 입력해주세요");				
		}else{
			
		if($('#l_code').val() === 'CJU'){
		$('input[name=o_soyo]').attr('value','70');
		//var bb = $('#o_sdate').val();
		//alert(bb);
		}else if($('#l_code').val() === 'NPT'){
			$('input[name=o_soyo]').attr('value','135');			
		}else if($('#l_code').val() === 'KIX'){
			$('input[name=o_soyo]').attr('value','95');			
		}else if($('#l_code').val() === 'FUK'){
			$('input[name=o_soyo]').attr('value','80');			
		}else if($('#l_code').val() === 'HKG'){
			$('input[name=o_soyo]').attr('value','220');			
		}else if($('#l_code').val() === 'BKK'){
			$('input[name=o_soyo]').attr('value','350');			
		}else if($('#l_code').val() === 'BKI'){
			$('input[name=o_soyo]').attr('value','410');			
		}else if($('#l_code').val() === 'WO'){
			$('input[name=o_soyo]').attr('value','270');			
		}else if($('#l_code').val() === 'JFK'){
			$('input[name=o_soyo]').attr('value','995');			
		}	
		alert($('#l_code').val() + "공항 " +  bb + "" + aa + "월의 db추가가 완료 되었습니다");

  		$("form:first").submit();
		}
  });
  
});
</script>

<form action="insert" method="post">
<!-- 
노선코드 : <input type="text" name="l_code" id="l_code"><br>
 -->

도시선택 : <select name="l_code" id=l_code>
    <option value="">도시선택</option>
    <option value="CJU">제주도</option>
    <option value="NPT">도쿄</option>
    <option value="KIX">오사카</option>
    <option value="FUK">후쿠오카</option>
    <option value="HKG">홍콩</option>
    <option value="BKK">방콕</option>
    <option value="BKI">코타키나발루</option>
    <option value="WO">블라디보스토크</option>
    <option value="JFK">뉴욕</option>
</select><br>

년 : <input type="text" name="year" id="year" value="2019"><br>
월 : <input type="text" name="month" id="month"><br>
<input type="hidden" name="air_name">
<input type="hidden" name="o_sdate" id="o_sdate">
<input type="hidden" name="o_price"><br>
<input type="hidden" name="o_soyo" id="o_soyo">
<input type="hidden" name="o_stime">


<br>
<input type="button" value="추가" id="btn_go" >
<a href="list">리스트보기</a>
</form>

<br><br><br>
<hr class="hrCss">
<br>
------------------------ 노선 정보 ---------------------<br>
제주(CJU)<br>
도쿄(NPT)<br>
오사카(KIX)<br>
후쿠오카(FUK)<br>
홍콩(HKG)<br>
방콕(BKK)<br>
코타키나발루(BKI)<br>
블라디보스토크(WO)<br>
뉴욕(JFK)

</body>
</html>


추가한 노선은 확인할 수 있게 구성을 하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="resources/css/mybook.css">
</head>
<body class="basicFont container">
<div class="logo"><a href="index.jsp"><img src="resources/images/bomair_logo.png"/></a></div>
<br>
<Br>

** 노선정보 목록 ** <br>
<a href="insert">노선 추가</a><br>
<table border="1">
	<tr>
		<th>노선코드</th><th>항공편명</th><th>출발날짜</th><th>가격</th><th>소요시간</th><th>출발시각</th>
	</tr>

	<c:forEach var="m" items="${list }">
		<tr>
			<td>${m.l_code }</td>
			<td>${m.air_name }</td>
			<td>${m.o_sdate }</td>
			<td>${m.o_price }</td>
			<td>${m.o_soyo }</td>
			<td>${m.o_stime }</td>			
		</tr>
	</c:forEach>
</table>
</body>
</html>

비행기 노선을 생성 Page


비행기 노선 생성 확인 Page


관리자 권한 - 매출확인

매출확인의 경우 관리자가 보기 편하게 달력 UI를 통하여 하루마다 얼마의 매출이있는지를 표시하였다.
표시되는 가격은 하루 총 매출이고 달력 클릭시 상세한 매출 내역과 기간을 정하여 매출을 확인할 수 있게 구성하였다.
매출가격 확인은 Ticket안에 있는 정보를 활용하였다.
달력 UI는 JavaScript를 활용하여 적용하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />

<link href='resources/css/fullcalendar.min.css' rel='stylesheet' />
<link href='resources/css/fullcalendar.print.min.css' rel='stylesheet'
	media='print' />
<script src='resources/js/moment.min.js'></script>
<script src='resources/js/jquery.min.js'></script>
<script src='resources/js/fullcalendar.min1.js'></script>
<script src='resources/js/ko.js'></script>
<div style="text-align: center"><a href="index.jsp"><img src="resources/images/bomair_logo.png"/></a></div>
<br><br><br>
<script> 

//if(session.getAttribute("idkey") !== null){
$(document).ready(function() {
	$('#calendar').fullCalendar({
		editable: true,
		eventLimit: true,
		locale:"ko",
	header: { left: 'prev,next today', center: 'title', right: 'month,basicWeek,basicDay' }, 
	defaultDate: new Date(), 
	navLinks: true,  
	events: [  
		
		<%=(String) request.getAttribute("list")%>

		
		] 
		
	}); 
	}); 
//}else{
	//alert("로그인 후에 이용 하실수있습니다")
//}
	
	</script>
<style>  
body {
	margin: 40px 10px;
	padding: 0;
	font-family: "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
	font-size: 14px;
}

#calendar {
	max-width: 900px;
	margin: 0 auto;
}
</style>
</head>
<body>
	<div id='calendar'></div>
</body>
</html>



관리자 매출확인 - 달력 UI로 확인하기, 하루하루 매출 확인, 전체매출 확인하기



참조:원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.

Categories:

Updated:

Leave a comment