Showing
4 changed files
with
1991 additions
and
0 deletions
source/forensic_tool/assets/css/menu1.css
0 → 100644
1 | +ul{ | ||
2 | + list-style: none; | ||
3 | +} | ||
4 | +.title{ | ||
5 | + font-family:"Born Ready Slanted"; | ||
6 | +} | ||
7 | +#grid{ | ||
8 | + display:grid; | ||
9 | + grid-template-columns: 175px 900px; | ||
10 | +} | ||
11 | +#content{ | ||
12 | + padding-left:40px; | ||
13 | + padding-right:40px; | ||
14 | + padding-top:20px; | ||
15 | +} | ||
16 | +#choiceul{ | ||
17 | + padding-right:200px; | ||
18 | + padding-left:200px; | ||
19 | + padding-bottom:10px; | ||
20 | + display:grid; | ||
21 | + grid-template-columns: repeat(4, 1fr); | ||
22 | +} | ||
23 | +#menu_bar{ | ||
24 | + padding-top:15px; | ||
25 | + padding-right:10px; | ||
26 | +} | ||
27 | +#menu{ | ||
28 | + padding-left:25px; | ||
29 | +} | ||
30 | +.menu1{ | ||
31 | + margin-top:14px; | ||
32 | + font:15px, bold; | ||
33 | +} | ||
34 | +.menu2{ | ||
35 | + margin-top:7px; | ||
36 | + margin-left:6px; | ||
37 | + font-size:12px; | ||
38 | +} | ||
39 | +.cr{ | ||
40 | + font-size:12px; | ||
41 | +} | ||
42 | +#dateForm{ | ||
43 | + display:grid; | ||
44 | + grid-template-columns: 130px 23px; | ||
45 | + margin-left:6px; | ||
46 | +} | ||
47 | +#between_date_start, #between_date_end,#between_list_date_start, #between_list_date_end, #between_rank_date_start, #between_rank_date_end, #between_timeline_date_start, #between_timeline_date_end{ | ||
48 | + font-size:10px; | ||
49 | + margin-top:2px; | ||
50 | + margin-right:3px; | ||
51 | +} | ||
52 | +#between_date_submit, #between_date_submit, #between_rank_submit, #between_timeline_submit{ | ||
53 | + font-size:8px; | ||
54 | +} | ||
55 | + | ||
56 | +#numberForm{ | ||
57 | + display:grid; | ||
58 | + grid-template-columns: 100px 1fr 1fr 1fr; | ||
59 | + margin-left:6px; | ||
60 | +} | ||
61 | +#number, #list_number, #timeline_number, #restime_number{ | ||
62 | + font-size:10px; | ||
63 | + margin-top:2px; | ||
64 | + margin-right:3px; | ||
65 | +} | ||
66 | +#number_push, #number_pop, #number_submit{ | ||
67 | + font-size:8px; | ||
68 | +} | ||
69 | +#analysis4_list, #list6_list, #more5_list, #more7_list{ | ||
70 | + font-size:10px; | ||
71 | +} | ||
72 | +.sort, .filterlabel{ | ||
73 | + font-size:12px; | ||
74 | + list-style: none; | ||
75 | +} | ||
76 | +#myList{ | ||
77 | + padding-right:160px; | ||
78 | + padding-left:160px; | ||
79 | + padding-bottom:10px; | ||
80 | + display:grid; | ||
81 | + grid-template-columns: 1fr; | ||
82 | +} | ||
83 | +#myList_in{ | ||
84 | + display:grid; | ||
85 | + grid-template-columns: repeat(5,1fr); | ||
86 | +} | ||
87 | +.search{ | ||
88 | + margin-right:20px; | ||
89 | + margin-bottom:10px; | ||
90 | +} | ||
91 | +#m2{ | ||
92 | + display:grid; | ||
93 | + grid-template-columns: 1fr 1fr; | ||
94 | +} | ||
95 | +#m3{ | ||
96 | + display:grid; | ||
97 | + grid-template-columns: 3fr 1fr; | ||
98 | +} | ||
99 | +ol li{ | ||
100 | + list-style: none; | ||
101 | + list-style-position:inside; | ||
102 | + border-top:1px solid gray; | ||
103 | + padding:10px; | ||
104 | + margin:5px; | ||
105 | +} | ||
106 | +#listrow_type, #listrow_number, #listrow_date, #listrow_body,#listrow_get_body, #listrow_get_date, #listrow_send_body, #listrow_send_date, #listrow_timediff{ | ||
107 | + margin:5px; | ||
108 | + font-size:14px; | ||
109 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -3,9 +3,219 @@ | ... | @@ -3,9 +3,219 @@ |
3 | <head> | 3 | <head> |
4 | <meta charset="UTF-8"> | 4 | <meta charset="UTF-8"> |
5 | <meta name="viewport" content="width=<sc>, initial-scale=1.0"> | 5 | <meta name="viewport" content="width=<sc>, initial-scale=1.0"> |
6 | + <link rel="stylesheet" href="../assets/css/menu1.css"> | ||
7 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script> | ||
8 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script> | ||
6 | <title>Document</title> | 9 | <title>Document</title> |
7 | </head> | 10 | </head> |
8 | <body> | 11 | <body> |
12 | + <div class="title"> | ||
13 | + <h1 id="cc" onclick="location.href='menu.html'">CallLog Analysis</h1> | ||
14 | + </div> | ||
15 | + <div id="grid"> | ||
16 | + <div id="menu_bar"> | ||
17 | + <ul id="menu"> | ||
18 | + <li class="menu1">통계 분석</li> | ||
19 | + <li class="menu2" id="analysis1">최근 통계</li> | ||
20 | + <li class="menu2" id="analysis2">전체 통계</li> | ||
21 | + <li class="menu2" id="analysis3">특정 기간 통계</li> | ||
22 | + <form name="dateForm" method="post" id="dateForm"> | ||
23 | + <input type="date" id="between_date_start" /> | ||
24 | + ~ | ||
25 | + <input type="date" id="between_date_end" /> | ||
26 | + <input type="button" id="between_date_submit" value="》" onclick="get_date_analysis();" /> | ||
27 | + </form> | ||
28 | + <li class="menu2" id="analysis4">특정 연락처 통계</li> | ||
29 | + <form name="numberForm" method="post" id="numberForm"> | ||
30 | + <input type="text" id="number" /> | ||
31 | + <input type="button" id="number_push" value="+" onclick="get_number_push();" /> | ||
32 | + <input type="button" id="number_pop" value="-" onclick="get_number_pop();" /> | ||
33 | + <input type="button" id="number_submit" value="》" onclick="get_number_analysis();" /> | ||
34 | + </form> | ||
35 | + <li class="menu2" id="analysis4_list"></li> | ||
36 | + <li class="menu1">목록 분석</li> | ||
37 | + <li class="menu2" id="list1">최근 목록</li> | ||
38 | + <li class="menu2" id="list2">전체 목록</li> | ||
39 | + <li class="menu2" id="list4">특정 기간 목록</li> | ||
40 | + <form name="dateForm" method="post" id="dateForm"> | ||
41 | + <input type="date" id="between_list_date_start" /> | ||
42 | + ~ | ||
43 | + <input type="date" id="between_list_date_end" /> | ||
44 | + <input type="button" id="between_date_submit" value="》" onclick="get_date_list();" /> | ||
45 | + </form> | ||
46 | + <li class="menu1">상세 분석</li> | ||
47 | + <li class="menu2" id="more1">전체 연락 순위</li> | ||
48 | + <li class="menu2" id="more2">특정 기간 연락 순위</li> | ||
49 | + <form name="dateForm" method="post" id="dateForm"> | ||
50 | + <input type="date" id="between_rank_date_start" /> | ||
51 | + ~ | ||
52 | + <input type="date" id="between_rank_date_end" /> | ||
53 | + <input type="button" id="between_rank_submit" value="》" onclick="get_date_rank();" /> | ||
54 | + </form> | ||
55 | + <li class="menu2" id="more3">전체 연락 시간대</li> | ||
56 | + <li class="menu2" id="more4">특정 기간 연락 시간대</li> | ||
57 | + <form name="dateForm" method="post" id="dateForm"> | ||
58 | + <input type="date" id="between_timeline_date_start" /> | ||
59 | + ~ | ||
60 | + <input type="date" id="between_timeline_date_end" /> | ||
61 | + <input type="button" id="between_timeline_submit" value="》" onclick="get_date_timeline();" /> | ||
62 | + </form> | ||
63 | + <li class="menu2" id="more5">특정 연락처 연락 시간대</li> | ||
64 | + <form name="numberForm" method="post" id="numberForm"> | ||
65 | + <input type="text" id="timeline_number" /> | ||
66 | + <input type="button" id="number_push" value="+" onclick="get_number_timeline_push();" /> | ||
67 | + <input type="button" id="number_pop" value="-" onclick="get_number_timeline_pop();" /> | ||
68 | + <input type="button" id="number_submit" value="》" onclick="get_number_timeline();" /> | ||
69 | + </form> | ||
70 | + <li class="menu2" id="more5_list"></li> | ||
71 | + <li class="menu2" id="more6">전체 답장 시간</li> | ||
72 | + <li class="menu2" id="more7">특정 연락처 답장 시간</li> | ||
73 | + <form name="numberForm" method="post" id="numberForm"> | ||
74 | + <input type="text" id="restime_number" /> | ||
75 | + <input type="button" id="number_push" value="+" onclick="get_number_restime_push();" /> | ||
76 | + <input type="button" id="number_pop" value="-" onclick="get_number_restime_pop();" /> | ||
77 | + <input type="button" id="number_submit" value="》" onclick="get_number_restime();" /> | ||
78 | + <li class="menu2" id="more7_list"></li> | ||
79 | + </form> | ||
80 | + </ul> | ||
81 | + </div> | ||
82 | + <div id="content"> | ||
83 | + <div id="choice"> | ||
84 | + <ul id="choiceul"> | ||
85 | + <li class="cr" id="type1"></li> | ||
86 | + <li class="cr" id="type2"></li> | ||
87 | + <li class="cr" id="type3"></li> | ||
88 | + <li class="cr" id="type4"></li> | ||
89 | + <li class="cr" id="type5"></li> | ||
90 | + <li class="cr" id="type6"></li> | ||
91 | + <li class="cr" id="type7"></li> | ||
92 | + <li class="cr" id="type8"></li> | ||
93 | + </ul> | ||
94 | + </div> | ||
95 | + <div id="chart" style="display:none"> | ||
96 | + <div> | ||
97 | + <canvas id="myChart"></canvas> | ||
98 | + </div> | ||
99 | + </div> | ||
100 | + <div id="listspace" style="display:none"> | ||
101 | + <div id="myList"> | ||
102 | + <input class="search" placeholder="Search" /> | ||
103 | + <div id="myList_in"> | ||
104 | + <li class="sort" data-sort="date"># 시간순</li> | ||
105 | + <li class="filterlabel"># 통화 | ||
106 | + <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="call" /> | ||
107 | + </li> | ||
108 | + <li class="filterlabel"># 문자 | ||
109 | + <input type="checkbox" class="filter1" id="filter1" data_filter="type_cs" data_value="sms" /> | ||
110 | + </li> | ||
111 | + <li class="filterlabel"># 수신 | ||
112 | + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="get" /> | ||
113 | + </li> | ||
114 | + <li class="filterlabel"># 발신 | ||
115 | + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="send" /> | ||
116 | + </li> | ||
117 | + <li class="filterlabel"># 부재중 | ||
118 | + <input type="checkbox" class="filter1" id="filter1" data_filter="type_gs" data_value="missed" /> | ||
119 | + </li> | ||
120 | + <li class="filterlabel"># 10분 이하 | ||
121 | + <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="less10" /> | ||
122 | + </li> | ||
123 | + <li class="filterlabel"># 1시간 이상 | ||
124 | + <input type="checkbox" class="filter1" id="filter1" data_filter="duration" data_value="more60" /> | ||
125 | + </li> | ||
126 | + <li class="filterlabel"># 삭제된 문자 | ||
127 | + <input type="checkbox" class="filter1" id="filter1" data_filter="delete" data_value="true" /> | ||
128 | + </li> | ||
129 | + </div> | ||
130 | + </div> | ||
131 | + <ol class="list"></ol> | ||
132 | + </div> | ||
133 | + <div id="listspace2" style="display:none"> | ||
134 | + <div id="myList"> | ||
135 | + <input class="search" placeholder="Search" /> | ||
136 | + <div id="myList_in"> | ||
137 | + <li class="sort" data-sort="date"># 시간순</li> | ||
138 | + <li class="filterlabel"># 통화 | ||
139 | + <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="call"/> | ||
140 | + </li> | ||
141 | + <li class="filterlabel"># 문자 | ||
142 | + <input type="checkbox" class="filter2" id="filter2" data_filter="type_cs" data_value="sms"/> | ||
143 | + </li> | ||
144 | + <li class="filterlabel"># 수신 | ||
145 | + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="get"/> | ||
146 | + </li> | ||
147 | + <li class="filterlabel"># 발신 | ||
148 | + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="send"/> | ||
149 | + </li> | ||
150 | + <li class="filterlabel"># 부재중 | ||
151 | + <input type="checkbox" class="filter2" id="filter2" data_filter="type_gs" data_value="missed"/> | ||
152 | + </li> | ||
153 | + <li class="filterlabel"># 10분 이하 | ||
154 | + <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="less10"/> | ||
155 | + </li> | ||
156 | + <li class="filterlabel"># 1시간 이상 | ||
157 | + <input type="checkbox" class="filter2" id="filter2" data_filter="duration" data_value="more60"/> | ||
158 | + </li> | ||
159 | + <li class="filterlabel"># 삭제된 문자 | ||
160 | + <input type="checkbox" class="filter2" id="filter2" data_filter="delete" data_value="true"/> | ||
161 | + </li> | ||
162 | + </div> | ||
163 | + </div> | ||
164 | + <ol class="list"></ol> | ||
165 | + </div> | ||
166 | + <div id="listspace3" style="display:none"> | ||
167 | + <div id="myList"> | ||
168 | + <input class="search" placeholder="Search" /> | ||
169 | + <div id="myList_in"> | ||
170 | + <li class="sort" data-sort="date"># 시간순</li> | ||
171 | + <li class="filterlabel"># 통화 | ||
172 | + <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="call"/> | ||
173 | + </li> | ||
174 | + <li class="filterlabel"># 문자 | ||
175 | + <input type="checkbox" class="filter3" id="filter3" data_filter="type_cs" data_value="sms"/> | ||
176 | + </li> | ||
177 | + <li class="filterlabel"># 수신 | ||
178 | + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="get"/> | ||
179 | + </li> | ||
180 | + <li class="filterlabel"># 발신 | ||
181 | + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="send"/> | ||
182 | + </li> | ||
183 | + <li class="filterlabel"># 부재중 | ||
184 | + <input type="checkbox" class="filter3" id="filter3" data_filter="type_gs" data_value="missed"/> | ||
185 | + </li> | ||
186 | + <li class="filterlabel"># 10분 이하 | ||
187 | + <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="less10"/> | ||
188 | + </li> | ||
189 | + <li class="filterlabel"># 1시간 이상 | ||
190 | + <input type="checkbox" class="filter3" id="filter3" data_filter="duration" data_value="more60"/> | ||
191 | + </li> | ||
192 | + <li class="filterlabel"># 삭제된 문자 | ||
193 | + <input type="checkbox" class="filter3" id="filter3" data_filter="delete" data_value="true"/> | ||
194 | + </li> | ||
195 | + </div> | ||
196 | + </div> | ||
197 | + <ol class="list"></ol> | ||
198 | + </div> | ||
199 | + <div id="listspace4" style="display:none"> | ||
200 | + <div id="myList"> | ||
201 | + <input class="search" placeholder="Search" /> | ||
202 | + <li class="sort" data-sort="get_date"># 시간순</li> | ||
203 | + </div> | ||
204 | + <ol class="list"></ol> | ||
205 | + </div> | ||
206 | + <div id="listspace5" style="display:none"> | ||
207 | + <div id="myList"> | ||
208 | + <input class="search" placeholder="Search" /> | ||
209 | + <li class="sort" data-sort="get_date"># 시간순</li> | ||
210 | + </div> | ||
211 | + <ol class="list"></ol> | ||
212 | + </div> | ||
213 | + </div> | ||
214 | + </div> | ||
9 | <script src="menu1.js"></script> | 215 | <script src="menu1.js"></script> |
216 | + <script> | ||
217 | + var myChart = new Chart(ctx, options_main_stacked); | ||
218 | + window.myChart.destroy(); | ||
219 | + </script> | ||
10 | </body> | 220 | </body> |
11 | </html> | 221 | </html> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | +var choosed_menu="analysis1"; | ||
2 | + | ||
3 | +var title_text="통계"; | ||
4 | +var label_text=[]; | ||
5 | +var label_data1_text="수"; | ||
6 | +var label_data1=[]; | ||
7 | +var label_data2_text="수"; | ||
8 | +var label_data2=[]; | ||
9 | +var label_data3_text="수"; | ||
10 | +var label_data3=[]; | ||
11 | +var label_data4_text="수"; | ||
12 | +var label_data4=[]; | ||
13 | +var label_text_nu=[]; | ||
14 | +var label_data1_text_nu="수"; | ||
15 | +var label_data1_nu=[]; | ||
16 | +var label_data2_text_nu="수"; | ||
17 | +var label_data2_nu=[]; | ||
18 | +var label_data3_text_nu="수"; | ||
19 | +var label_data3_nu=[]; | ||
20 | +var label_data4_text_nu="수"; | ||
21 | +var label_data4_nu=[]; | ||
22 | + | ||
23 | +var date_start=""; | ||
24 | +var date_end=""; | ||
25 | +var number=[]; | ||
26 | +var list_date_start=""; | ||
27 | +var list_date_end=""; | ||
28 | +var list_number=[]; | ||
29 | +var rank_date_start=""; | ||
30 | +var rank_date_end=""; | ||
31 | +var timeline_date_start=""; | ||
32 | +var timeline_date_end=""; | ||
33 | +var timeline_number=[]; | ||
34 | +var restime_number=[]; | ||
35 | + | ||
36 | +var month_6=[]; | ||
37 | +var logcount_6=[]; | ||
38 | +var callcount_6=[]; | ||
39 | +var smscount_6=[]; | ||
40 | +var durationsum_6=[]; | ||
41 | +var logcount_6nu=[]; | ||
42 | +var callcount_6nu=[]; | ||
43 | +var smscount_6nu=[]; | ||
44 | +var durationsum_6nu=[]; | ||
45 | + | ||
46 | +var month=[]; | ||
47 | +var logcount=[]; | ||
48 | +var callcount=[]; | ||
49 | +var smscount=[]; | ||
50 | +var durationsum=[]; | ||
51 | +var logcount_nu=[]; | ||
52 | +var callcount_nu=[]; | ||
53 | +var smscount_nu=[]; | ||
54 | +var durationsum_nu=[]; | ||
55 | + | ||
56 | +var month_b=[]; | ||
57 | +var logcount_b=[]; | ||
58 | +var callcount_b=[]; | ||
59 | +var smscount_b=[]; | ||
60 | +var durationsum_b=[]; | ||
61 | +var logcount_bnu=[]; | ||
62 | +var callcount_bnu=[]; | ||
63 | +var smscount_bnu=[]; | ||
64 | +var durationsum_bnu=[]; | ||
65 | + | ||
66 | +var month_w=[]; | ||
67 | +var logcount_w=[]; | ||
68 | +var callcount_w=[]; | ||
69 | +var smscount_w=[]; | ||
70 | +var durationsum_w=[]; | ||
71 | +var logcount_wnu=[]; | ||
72 | +var callcount_wnu=[]; | ||
73 | +var smscount_wnu=[]; | ||
74 | +var durationsum_wnu=[]; | ||
75 | + | ||
76 | +var ranking_rnu=[]; | ||
77 | +var logcount_rnu=[]; | ||
78 | +var callcount_rnu=[]; | ||
79 | +var smscount_rnu=[]; | ||
80 | +var ranking_rnuc=[]; | ||
81 | +var callcount_rnuc=[]; | ||
82 | +var ranking_rnus=[]; | ||
83 | +var smscount_rnus=[]; | ||
84 | +var ranking_rnud=[]; | ||
85 | +var durationsum_rnud=[]; | ||
86 | + | ||
87 | +var ranking_brnu=[]; | ||
88 | +var logcount_brnu=[]; | ||
89 | +var callcount_brnu=[]; | ||
90 | +var smscount_brnu=[]; | ||
91 | +var ranking_brnuc=[]; | ||
92 | +var callcount_brnuc=[]; | ||
93 | +var ranking_brnus=[]; | ||
94 | +var smscount_brnus=[]; | ||
95 | +var ranking_brnud=[]; | ||
96 | +var durationsum_brnud=[]; | ||
97 | + | ||
98 | +var timeline=[]; | ||
99 | +var logcount_t=[]; | ||
100 | +var callcount_t=[]; | ||
101 | +var smscount_t=[]; | ||
102 | +var logcount_tb=[]; | ||
103 | +var callcount_tb=[]; | ||
104 | +var smscount_tb=[]; | ||
105 | +var logcount_tw=[]; | ||
106 | +var callcount_tw=[]; | ||
107 | +var smscount_tw=[]; | ||
108 | + | ||
109 | +var mysql = require('mysql'); | ||
110 | +var connection = mysql.createConnection({ | ||
111 | + host:'localhost', | ||
112 | + user:'root', | ||
113 | + password:'1234', | ||
114 | + database:'dataextraction', | ||
115 | + multipleStatements: true | ||
116 | +}); | ||
117 | + | ||
118 | +connection.connect(); | ||
119 | + | ||
120 | +connection.query('select MIN(date) "min", MAX(date) "max" from calllog;', function(err, rows,fields){ | ||
121 | + if(!err){ | ||
122 | + document.getElementById('between_date_start').min=(rows[0].min.toISOString().split("T")[0]); | ||
123 | + document.getElementById('between_date_start').max=(rows[0].max.toISOString().split("T")[0]); | ||
124 | + document.getElementById('between_date_end').min=(rows[0].min.toISOString().split("T")[0]); | ||
125 | + document.getElementById('between_date_end').max=(rows[0].max.toISOString().split("T")[0]); | ||
126 | + document.getElementById('between_list_date_start').min=(rows[0].min.toISOString().split("T")[0]); | ||
127 | + document.getElementById('between_list_date_start').max=(rows[0].max.toISOString().split("T")[0]); | ||
128 | + document.getElementById('between_list_date_end').min=(rows[0].min.toISOString().split("T")[0]); | ||
129 | + document.getElementById('between_list_date_end').max=(rows[0].max.toISOString().split("T")[0]); | ||
130 | + document.getElementById('between_rank_date_start').min=(rows[0].min.toISOString().split("T")[0]); | ||
131 | + document.getElementById('between_rank_date_start').max=(rows[0].max.toISOString().split("T")[0]); | ||
132 | + document.getElementById('between_rank_date_end').min=(rows[0].min.toISOString().split("T")[0]); | ||
133 | + document.getElementById('between_rank_date_end').max=(rows[0].max.toISOString().split("T")[0]); | ||
134 | + document.getElementById('between_timeline_date_start').min=(rows[0].min.toISOString().split("T")[0]); | ||
135 | + document.getElementById('between_timeline_date_start').max=(rows[0].max.toISOString().split("T")[0]); | ||
136 | + document.getElementById('between_timeline_date_end').min=(rows[0].min.toISOString().split("T")[0]); | ||
137 | + document.getElementById('between_timeline_date_end').max=(rows[0].max.toISOString().split("T")[0]); | ||
138 | + | ||
139 | + } | ||
140 | + else | ||
141 | + cc.innerHTML='Error-#0/minmax'; | ||
142 | +}) | ||
143 | + | ||
144 | +connection.query('drop table if exists calllog_month; create table calllog_month(date datetime not null, logcount int, callcount int, smscount int, durationsum int, primary key(date)); insert into calllog_month(date, callcount, durationsum) (select date_format(date, "%Y-%m-02 00:00:00"), count(*), sum(duration) from calllog where type in (1,2,3) group by date_format(date, "%Y-%m-02 00:00:00")); update calllog_month cm left join (select date_format(date, "%Y-%m-02 00:00:00") "date", count(*) "count" from calllog group by date_format(date, "%Y-%m-02 00:00:00")) temp on cm.date=temp.date set cm.logcount=temp.count, cm.smscount=cm.logcount-cm.callcount;', function(err, rows, fields){ | ||
145 | + if(err) | ||
146 | + cc.innerHTML='Error-#1'; | ||
147 | +}); | ||
148 | + | ||
149 | +connection.query('select * from calllog_month order by date DESC limit 6;', function(err, rows, fields){ | ||
150 | + if(!err){ | ||
151 | + for(var i=0;i<rows.length;i++){ | ||
152 | + month_6.unshift(rows[i].date.toISOString().slice(0,7)); | ||
153 | + logcount_6.unshift(rows[i].logcount); | ||
154 | + callcount_6.unshift(rows[i].callcount); | ||
155 | + smscount_6.unshift(rows[i].smscount); | ||
156 | + durationsum_6.unshift(rows[i].durationsum); | ||
157 | + } | ||
158 | + } | ||
159 | + else | ||
160 | + cc.innerHTML='Error-#2'; | ||
161 | +}); | ||
162 | + | ||
163 | +connection.query('select a.date, sum(b.logcount) "logcount", sum(b.callcount) "callcount", sum(b.smscount) "smscount", sum(b.durationsum) "durationsum" from (select * from calllog_month order by date DESC limit 6) a, (select * from calllog_month order by date DESC limit 6) b where a.date>=b.date group by date order by a.date;', function(err, rows, fields){ | ||
164 | + if(!err){ | ||
165 | + for(var i=0;i<rows.length;i++){ | ||
166 | + logcount_6nu.push(rows[i].logcount); | ||
167 | + callcount_6nu.push(rows[i].callcount); | ||
168 | + smscount_6nu.push(rows[i].smscount); | ||
169 | + durationsum_6nu.push(rows[i].durationsum); | ||
170 | + } | ||
171 | + } | ||
172 | + else | ||
173 | + cc.innerHTML='Error-#3'; | ||
174 | +}); | ||
175 | + | ||
176 | +connection.query('select * from calllog_month order by date;', function(err, rows, fields){ | ||
177 | + if(!err){ | ||
178 | + for(var i=0;i<rows.length;i++){ | ||
179 | + month.push(rows[i].date.toISOString().slice(0,7)); | ||
180 | + logcount.push(rows[i].logcount); | ||
181 | + callcount.push(rows[i].callcount); | ||
182 | + smscount.push(rows[i].smscount); | ||
183 | + durationsum.push(rows[i].durationsum); | ||
184 | + } | ||
185 | + } | ||
186 | + else | ||
187 | + cc.innerHTML='Error-#4'; | ||
188 | +}); | ||
189 | + | ||
190 | +connection.query('select a.date, sum(b.logcount) "logcount", sum(b.callcount) "callcount", sum(b.smscount) "smscount", sum(b.durationsum) "durationsum" from calllog_month a, calllog_month b where a.date>=b.date group by date order by a.date;', function(err, rows, fields){ | ||
191 | + if(!err){ | ||
192 | + for(var i=0;i<rows.length;i++){ | ||
193 | + logcount_nu.push(rows[i].logcount); | ||
194 | + callcount_nu.push(rows[i].callcount); | ||
195 | + smscount_nu.push(rows[i].smscount); | ||
196 | + durationsum_nu.push(rows[i].durationsum); | ||
197 | + } | ||
198 | + } | ||
199 | + else | ||
200 | + cc.innerHTML='Error-#5'; | ||
201 | +}); | ||
202 | + | ||
203 | +connection.query('drop table calllog_user; create table calllog_user(name varchar(255), number varchar(20) not null, callcount int, smscount int, durationsum int, primary key(number)); insert into calllog_user(name, number, callcount, durationsum) (select name, number, count(*), sum(duration) from calllog where type in (1,2,3) group by number); update calllog_user cu left join (select number, count(*) "count" from calllog where type not in (1,2,3) group by number) calllog on cu.number=calllog.number set cu.smscount=ifnull(calllog.count,0);', function(err, rows, fields){ | ||
204 | + if(err) | ||
205 | + cc.innerHTML='Error-#8'; | ||
206 | +}) | ||
207 | + | ||
208 | +connection.query('select name, number, callcount, smscount from calllog_user order by callcount+smscount desc', function(err, rows, fields){ | ||
209 | + if(!err){ | ||
210 | + for(var i=0;i<rows.length;i++){ | ||
211 | + var name=rows[i].name; | ||
212 | + if(!name) | ||
213 | + ranking_rnu.push(rows[i].number+" ( - )"); | ||
214 | + else | ||
215 | + ranking_rnu.push(rows[i].number+" ("+name+")"); | ||
216 | + logcount_rnu.push(rows[i].callcount+rows[i].smscount); | ||
217 | + callcount_rnu.push(rows[i].callcount); | ||
218 | + smscount_rnu.push(rows[i].smscount); | ||
219 | + } | ||
220 | + } | ||
221 | + else | ||
222 | + cc.innerHTML='Error-#8-1'; | ||
223 | +}); | ||
224 | + | ||
225 | +connection.query('select name, number, callcount from calllog_user order by callcount desc', function(err, rows, fields){ | ||
226 | + if(!err){ | ||
227 | + for(var i=0;i<rows.length;i++){ | ||
228 | + var name=rows[i].name; | ||
229 | + if(!name) | ||
230 | + ranking_rnuc.push(rows[i].number); | ||
231 | + else | ||
232 | + ranking_rnuc.push(rows[i].number+" ("+name+")"); | ||
233 | + callcount_rnuc.push(rows[i].callcount); | ||
234 | + } | ||
235 | + } | ||
236 | + else | ||
237 | + cc.innerHTML='Error-#8-2'; | ||
238 | +}); | ||
239 | + | ||
240 | +connection.query('select name, number, smscount from calllog_user order by smscount desc', function(err, rows, fields){ | ||
241 | + if(!err){ | ||
242 | + for(var i=0;i<rows.length;i++){ | ||
243 | + var name=rows[i].name; | ||
244 | + if(!name) | ||
245 | + ranking_rnus.push(rows[i].number); | ||
246 | + else | ||
247 | + ranking_rnus.push(rows[i].number+" ("+name+")"); | ||
248 | + smscount_rnus.push(rows[i].smscount); | ||
249 | + } | ||
250 | + } | ||
251 | + else | ||
252 | + cc.innerHTML='Error-#8-3'; | ||
253 | +}); | ||
254 | + | ||
255 | +connection.query('select name, number, durationsum from calllog_user order by durationsum desc', function(err, rows, fields){ | ||
256 | + if(!err){ | ||
257 | + for(var i=0;i<rows.length;i++){ | ||
258 | + var name=rows[i].name; | ||
259 | + if(!name) | ||
260 | + ranking_rnud.push(rows[i].number); | ||
261 | + else | ||
262 | + ranking_rnud.push(rows[i].number+" ("+name+")"); | ||
263 | + durationsum_rnud.push(rows[i].durationsum); | ||
264 | + } | ||
265 | + } | ||
266 | + else | ||
267 | + cc.innerHTML='Error-#8-4'; | ||
268 | +}); | ||
269 | + | ||
270 | +connection.query('drop table calllog_hour; create table calllog_hour(hour int not null, callcount int, smscount int, primary key(hour)); set @hour:=-1; insert into calllog_hour(hour, callcount) (select (@hour:=@hour+1) "hour", (select count(*) from calllog where type in (1,2,3) and hour(date)=@hour) "count" from calllog where @hour<23); update calllog_hour ch left join (select hour(date) "hour", count(*) "count" from calllog where type not in (1,2,3) group by hour(date)) calllog on ch.hour=calllog.hour set ch.smscount=ifnull(calllog.count,0);', function(err, rows, fields){ | ||
271 | + if(err) | ||
272 | + cc.innerHTML='Error-#8'; | ||
273 | +}) | ||
274 | + | ||
275 | +connection.query('select * from calllog_hour order by hour;', function(err, rows, fields){ | ||
276 | + if(!err){ | ||
277 | + for(var i=0;i<rows.length;i++){ | ||
278 | + timeline.push(rows[i].hour); | ||
279 | + callcount_t.push(rows[i].callcount); | ||
280 | + smscount_t.push(rows[i].smscount); | ||
281 | + logcount_t.push(rows[i].callcount+rows[i].smscount); | ||
282 | + } | ||
283 | + } | ||
284 | + else | ||
285 | + cc.innerHTML='Error-#10'+err; | ||
286 | +}); | ||
287 | + | ||
288 | +var options = { | ||
289 | + title:{ | ||
290 | + display:true, | ||
291 | + text:title_text | ||
292 | + }, | ||
293 | + maintainAspectRatio: true, | ||
294 | + scales: { | ||
295 | + yAxes: [{ | ||
296 | + ticks: { | ||
297 | + beginAtZero:true | ||
298 | + } | ||
299 | + }] | ||
300 | + } | ||
301 | +}; | ||
302 | + | ||
303 | +var options_stacked = { | ||
304 | + title:{ | ||
305 | + display:true, | ||
306 | + text:title_text | ||
307 | + }, | ||
308 | + Legend:{display:false}, | ||
309 | + scales: { | ||
310 | + xAxes: [{ | ||
311 | + stacked:true, | ||
312 | + ticks: { | ||
313 | + beginAtZero:true | ||
314 | + } | ||
315 | + }], | ||
316 | + yAxes: [{ | ||
317 | + stacked:true, | ||
318 | + ticks: { | ||
319 | + beginAtZero:true | ||
320 | + } | ||
321 | + }] | ||
322 | + } | ||
323 | +}; | ||
324 | + | ||
325 | +var options_main_2={ | ||
326 | + type: 'bar', | ||
327 | + data: { | ||
328 | + labels: label_text, | ||
329 | + datasets:[{ | ||
330 | + label:label_data2_text, | ||
331 | + data:label_data2, | ||
332 | + backgroundColor:'rgba(255, 206, 86, 0.2)', | ||
333 | + borderColor:'rgba(255, 206, 86, 1)', | ||
334 | + borderWidth: 1 | ||
335 | + }] | ||
336 | + }, | ||
337 | + options: options | ||
338 | +}; | ||
339 | + | ||
340 | +var options_main_3={ | ||
341 | + type: 'bar', | ||
342 | + data: { | ||
343 | + labels: label_text, | ||
344 | + datasets:[{ | ||
345 | + label:label_data3_text, | ||
346 | + data:label_data3, | ||
347 | + backgroundColor:'rgba(75, 192, 192, 0.2)', | ||
348 | + borderColor:'rgba(75, 192, 192, 1)', | ||
349 | + borderWidth: 1 | ||
350 | + }] | ||
351 | + }, | ||
352 | + options: options | ||
353 | +}; | ||
354 | + | ||
355 | +var options_main_4={ | ||
356 | + type: 'bar', | ||
357 | + data: { | ||
358 | + labels: label_text, | ||
359 | + datasets:[{ | ||
360 | + label:label_data4_text, | ||
361 | + data:label_data4, | ||
362 | + backgroundColor:'rgba(255, 206, 86, 0.2)', | ||
363 | + borderColor:'rgba(255, 206, 86, 1)', | ||
364 | + borderWidth: 1 | ||
365 | + }] | ||
366 | + }, | ||
367 | + options: options | ||
368 | +}; | ||
369 | + | ||
370 | +var options_main_stacked={ | ||
371 | + type: 'bar', | ||
372 | + data: { | ||
373 | + labels: label_text, | ||
374 | + datasets:[{ | ||
375 | + label:label_data1_text, | ||
376 | + data:label_data1, | ||
377 | + backgroundColor:'rgba(255, 127, 80, 1)', | ||
378 | + borderColor:'rgba(255, 127, 80, 1)', | ||
379 | + type:"line", | ||
380 | + fill: false | ||
381 | + }, | ||
382 | + { | ||
383 | + label:label_data2_text, | ||
384 | + data:label_data2, | ||
385 | + backgroundColor:'rgba(255, 206, 86, 0.2)' | ||
386 | + }, | ||
387 | + { | ||
388 | + label:label_data3_text, | ||
389 | + data:label_data3, | ||
390 | + backgroundColor:'rgba(75, 192, 192, 0.2)' | ||
391 | + }] | ||
392 | + }, | ||
393 | + options: options_stacked | ||
394 | +}; | ||
395 | + | ||
396 | + | ||
397 | +var options_main_nu_2={ | ||
398 | + type: 'bar', | ||
399 | + data: { | ||
400 | + labels: label_text_nu, | ||
401 | + datasets:[{ | ||
402 | + label:label_data2_text_nu, | ||
403 | + data:label_data2_nu, | ||
404 | + backgroundColor:'rgba(255, 206, 86, 0.2)', | ||
405 | + borderColor:'rgba(255, 206, 86, 1)', | ||
406 | + borderWidth: 1 | ||
407 | + }] | ||
408 | + }, | ||
409 | + options: options | ||
410 | +}; | ||
411 | + | ||
412 | +var options_main_nu_3={ | ||
413 | + type: 'bar', | ||
414 | + data: { | ||
415 | + labels: label_text_nu, | ||
416 | + datasets:[{ | ||
417 | + label:label_data3_text_nu, | ||
418 | + data:label_data3_nu, | ||
419 | + backgroundColor:'rgba(75, 192, 192, 0.2)', | ||
420 | + borderColor:'rgba(75, 192, 192, 1)', | ||
421 | + borderWidth: 1 | ||
422 | + }] | ||
423 | + }, | ||
424 | + options: options | ||
425 | +}; | ||
426 | + | ||
427 | +var options_main_nu_4={ | ||
428 | + type: 'bar', | ||
429 | + data: { | ||
430 | + labels: label_text_nu, | ||
431 | + datasets:[{ | ||
432 | + label:label_data4_text_nu, | ||
433 | + data:label_data4_nu, | ||
434 | + backgroundColor:'rgba(255, 206, 86, 0.2)', | ||
435 | + borderColor:'rgba(255, 206, 86, 1)', | ||
436 | + borderWidth: 1 | ||
437 | + }] | ||
438 | + }, | ||
439 | + options: options | ||
440 | +}; | ||
441 | + | ||
442 | +var options_main_nu_stacked={ | ||
443 | + type: 'bar', | ||
444 | + data: { | ||
445 | + labels: label_text_nu, | ||
446 | + datasets:[{ | ||
447 | + label:label_data1_text_nu, | ||
448 | + data:label_data1_nu, | ||
449 | + backgroundColor:'rgba(255, 127, 80, 1)', | ||
450 | + borderColor:'rgba(255, 127, 80, 1)', | ||
451 | + type:"line", | ||
452 | + fill: false | ||
453 | + }, | ||
454 | + { | ||
455 | + label:label_data2_text_nu, | ||
456 | + data:label_data2_nu, | ||
457 | + backgroundColor:'rgba(255, 206, 86, 0.2)' | ||
458 | + }, | ||
459 | + { | ||
460 | + label:label_data3_text_nu, | ||
461 | + data:label_data3_nu, | ||
462 | + backgroundColor:'rgba(75, 192, 192, 0.2)' | ||
463 | + }] | ||
464 | + }, | ||
465 | + options: options_stacked | ||
466 | +}; | ||
467 | + | ||
468 | +function change_type_title(type_number){ | ||
469 | + switch(type_number){ | ||
470 | + case 1: | ||
471 | + type1.innerHTML="# 연락 수"; | ||
472 | + type2.innerHTML="# 통화 수"; | ||
473 | + type3.innerHTML="# 문자 수"; | ||
474 | + type4.innerHTML="# 통화 시간"; | ||
475 | + type5.innerHTML="# 누적 연락 수"; | ||
476 | + type6.innerHTML="# 누적 통화 수"; | ||
477 | + type7.innerHTML="# 누적 문자 수"; | ||
478 | + type8.innerHTML="# 누적 통화 시간"; | ||
479 | + break; | ||
480 | + case 4: | ||
481 | + type1.innerHTML="# 연락 수"; | ||
482 | + type2.innerHTML="# 통화 수"; | ||
483 | + type3.innerHTML="# 문자 수"; | ||
484 | + type4.innerHTML="# 통화 시간"; | ||
485 | + type5.innerHTML=""; | ||
486 | + type6.innerHTML=""; | ||
487 | + type7.innerHTML=""; | ||
488 | + type8.innerHTML=""; | ||
489 | + break; | ||
490 | + case 5: | ||
491 | + type1.innerHTML="# 연락 수"; | ||
492 | + type2.innerHTML="# 통화 수"; | ||
493 | + type3.innerHTML="# 문자 수"; | ||
494 | + type4.innerHTML=""; | ||
495 | + type5.innerHTML=""; | ||
496 | + type6.innerHTML=""; | ||
497 | + type7.innerHTML=""; | ||
498 | + type8.innerHTML=""; | ||
499 | + break; | ||
500 | + } | ||
501 | +} | ||
502 | + | ||
503 | +function changeLabelText(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){ | ||
504 | + options_main_stacked.data.labels=a; | ||
505 | + options_main_stacked.data.datasets[0].label=b; | ||
506 | + options_main_stacked.data.datasets[0].data=c; | ||
507 | + options_main_stacked.data.datasets[1].label=d; | ||
508 | + options_main_stacked.data.datasets[1].data=e; | ||
509 | + options_main_stacked.data.datasets[2].label=f; | ||
510 | + options_main_stacked.data.datasets[2].data=g; | ||
511 | + | ||
512 | + options_main_2.data.labels=a; | ||
513 | + options_main_2.data.datasets[0].label=d; | ||
514 | + options_main_2.data.datasets[0].data=e | ||
515 | + options_main_3.data.labels=a; | ||
516 | + options_main_3.data.datasets[0].label=f; | ||
517 | + options_main_3.data.datasets[0].data=g; | ||
518 | + options_main_4.data.labels=a; | ||
519 | + options_main_4.data.datasets[0].label=h; | ||
520 | + options_main_4.data.datasets[0].data=i; | ||
521 | + | ||
522 | + options_main_nu_stacked.data.labels=a; | ||
523 | + options_main_nu_stacked.data.datasets[0].label=j; | ||
524 | + options_main_nu_stacked.data.datasets[0].data=k; | ||
525 | + options_main_nu_stacked.data.datasets[1].label=l; | ||
526 | + options_main_nu_stacked.data.datasets[1].data=m; | ||
527 | + options_main_nu_stacked.data.datasets[2].label=n; | ||
528 | + options_main_nu_stacked.data.datasets[2].data=o; | ||
529 | + | ||
530 | + options_main_nu_2.data.labels=a; | ||
531 | + options_main_nu_2.data.datasets[0].label=l; | ||
532 | + options_main_nu_2.data.datasets[0].data=m; | ||
533 | + options_main_nu_3.data.labels=a; | ||
534 | + options_main_nu_3.data.datasets[0].label=n; | ||
535 | + options_main_nu_3.data.datasets[0].data=o; | ||
536 | + options_main_nu_4.data.labels=a; | ||
537 | + options_main_nu_4.data.datasets[0].label=p; | ||
538 | + options_main_nu_4.data.datasets[0].data=q; | ||
539 | + | ||
540 | + options.title.text=r; | ||
541 | + options_stacked.title.text=r; | ||
542 | + options_main_2.options=options; | ||
543 | + options_main_3.options=options; | ||
544 | + options_main_4.options=options; | ||
545 | + options_main_stacked.options=options_stacked; | ||
546 | + options_main_nu_2.options=options; | ||
547 | + options_main_nu_3.options=options; | ||
548 | + options_main_nu_4.options=options; | ||
549 | + options_main_nu_stacked.options=options_stacked; | ||
550 | +} | ||
551 | + | ||
552 | +function changeLabelText2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){ | ||
553 | + options_main_stacked.data.labels=a; | ||
554 | + options_main_stacked.data.datasets[0].label=b; | ||
555 | + options_main_stacked.data.datasets[0].data=c; | ||
556 | + options_main_stacked.data.datasets[1].label=d; | ||
557 | + options_main_stacked.data.datasets[1].data=e; | ||
558 | + options_main_stacked.data.datasets[2].label=f; | ||
559 | + options_main_stacked.data.datasets[2].data=g; | ||
560 | + | ||
561 | + options_main_2.data.labels=h; | ||
562 | + options_main_2.data.datasets[0].label=i; | ||
563 | + options_main_2.data.datasets[0].data=j; | ||
564 | + options_main_3.data.labels=k; | ||
565 | + options_main_3.data.datasets[0].label=l; | ||
566 | + options_main_3.data.datasets[0].data=m; | ||
567 | + options_main_4.data.labels=n; | ||
568 | + options_main_4.data.datasets[0].label=o; | ||
569 | + options_main_4.data.datasets[0].data=p; | ||
570 | + | ||
571 | + options.title.text=r; | ||
572 | + options_stacked.title.text=r; | ||
573 | + options_main_2.options=options; | ||
574 | + options_main_3.options=options; | ||
575 | + options_main_4.options=options; | ||
576 | + options_main_stacked.options=options_stacked; | ||
577 | +} | ||
578 | + | ||
579 | +const ctx = document.getElementById("myChart").getContext('2d'); | ||
580 | +const listspace = document.getElementById("listspace"); | ||
581 | +const listspace2 = document.getElementById("listspace2"); | ||
582 | +const listspace3 = document.getElementById("listspace3"); | ||
583 | +const listspace4 = document.getElementById("listspace4"); | ||
584 | +const listspace5 = document.getElementById("listspace5"); | ||
585 | +const chartspace = document.getElementById("chart"); | ||
586 | +const choicespace = document.getElementById("choice"); | ||
587 | + | ||
588 | +function chartView(){ | ||
589 | + listspace.style="display:none"; | ||
590 | + listspace2.style="display:none"; | ||
591 | + listspace3.style="display:none"; | ||
592 | + listspace4.style="display:none"; | ||
593 | + listspace5.style="display:none"; | ||
594 | + chartspace.style="display:inline"; | ||
595 | + choicespace.style="display:inline"; | ||
596 | +} | ||
597 | +var analysis1 = document.getElementById('analysis1'); | ||
598 | +analysis1.addEventListener('click', function(){ | ||
599 | + chartView(); | ||
600 | + change_type_title(1); | ||
601 | + changeLabelText(month_6, "연락 수", logcount_6, "통화 수", callcount_6, "문자 수", smscount_6, "통화 시간", durationsum_6, "누적 연락 수", logcount_6nu, "누적 통화 수", callcount_6nu, "누적 문자 수",smscount_6nu, "누적 통화 시간", durationsum_6nu,"최근 6개월의 통계"); | ||
602 | + choosed_menu="analysis1"; | ||
603 | + window.myChart.destroy(); | ||
604 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
605 | +}); | ||
606 | + | ||
607 | +var analysis2 = document.getElementById('analysis2'); | ||
608 | +analysis2.addEventListener('click', function(){ | ||
609 | + chartView(); | ||
610 | + change_type_title(1); | ||
611 | + changeLabelText(month, "연락 수", logcount, "통화 수", callcount, "문자 수", smscount, "통화 시간", durationsum, "누적 연락 수", logcount_nu, "누적 통화 수", callcount_nu, "누적 문자 수",smscount_nu, "누적 통화 시간", durationsum_nu,"전체 기간의 통계"); | ||
612 | + choosed_menu="analysis2"; | ||
613 | + window.myChart.destroy(); | ||
614 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
615 | +}); | ||
616 | + | ||
617 | +var analysis3 = document.getElementById('analysis3'); | ||
618 | +analysis3.addEventListener('click', function(){ | ||
619 | + chartView(); | ||
620 | + change_type_title(1); | ||
621 | + changeLabelText(month_b, "연락 수", logcount_b, "통화 수", callcount_b, "문자 수", smscount_b, "통화 시간", durationsum_b, "누적 연락 수", logcount_bnu, "누적 통화 수", callcount_bnu, "누적 문자 수",smscount_bnu, "누적 통화 시간", durationsum_bnu,"특정 기간의 통계"); | ||
622 | + choosed_menu="analysis3"; | ||
623 | + window.myChart.destroy(); | ||
624 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
625 | +}); | ||
626 | + | ||
627 | +var analysis4 = document.getElementById('analysis4'); | ||
628 | +analysis4.addEventListener('click', function(){ | ||
629 | + chartView(); | ||
630 | + change_type_title(1); | ||
631 | + changeLabelText(month_w, "연락 수", logcount_w, "통화 수", callcount_w, "문자 수", smscount_w, "통화 시간", durationsum_w, "누적 연락 수", logcount_wnu, "누적 통화 수", callcount_wnu, "누적 문자 수",smscount_wnu, "누적 통화 시간", durationsum_wnu,"특정 연락처와의 통계"); | ||
632 | + choosed_menu="analysis4"; | ||
633 | + window.myChart.destroy(); | ||
634 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
635 | +}); | ||
636 | + | ||
637 | +var list1 = document.getElementById('list1'); | ||
638 | +list1.addEventListener('click', function(){ | ||
639 | + listspace.style="display:inline"; | ||
640 | + listspace2.style="display:none"; | ||
641 | + listspace3.style="display:none"; | ||
642 | + listspace4.style="display:none"; | ||
643 | + listspace5.style="display:none"; | ||
644 | + chartspace.style="display:none"; | ||
645 | + choicespace.style="display:none"; | ||
646 | + choosed_menu="list1"; | ||
647 | + window.myChart.destroy(); | ||
648 | +}); | ||
649 | + | ||
650 | +var list2 = document.getElementById('list2'); | ||
651 | +list2.addEventListener('click', function(){ | ||
652 | + listspace.style="display:none"; | ||
653 | + listspace2.style="display:inline"; | ||
654 | + listspace3.style="display:none"; | ||
655 | + listspace4.style="display:none"; | ||
656 | + listspace5.style="display:none"; | ||
657 | + chartspace.style="display:none"; | ||
658 | + choicespace.style="display:none"; | ||
659 | + choosed_menu="list2"; | ||
660 | + window.myChart.destroy(); | ||
661 | +}); | ||
662 | + | ||
663 | +var list4 = document.getElementById('list4'); | ||
664 | +list4.addEventListener('click', function(){ | ||
665 | + listspace.style="display:none"; | ||
666 | + listspace2.style="display:none"; | ||
667 | + listspace3.style="display:inline"; | ||
668 | + listspace4.style="display:none"; | ||
669 | + listspace5.style="display:none"; | ||
670 | + chartspace.style="display:none"; | ||
671 | + choicespace.style="display:none"; | ||
672 | + choosed_menu="list4"; | ||
673 | + window.myChart.destroy(); | ||
674 | +}); | ||
675 | + | ||
676 | +var more1 = document.getElementById('more1'); | ||
677 | +more1.addEventListener('click', function(){ | ||
678 | + chartView(); | ||
679 | + change_type_title(4); | ||
680 | + changeLabelText2(ranking_rnu, "누적 연락 수", logcount_rnu, "누적 통화 수", callcount_rnu, "누적 문자 수", smscount_rnu, ranking_rnuc, "누적 통화 수", callcount_rnuc, ranking_rnus, "누적 문자 수", smscount_rnus, ranking_rnud, "누적 통화 시간", durationsum_rnud, [],"전체 기간의 연락 순위"); | ||
681 | + choosed_menu="more1"; | ||
682 | + window.myChart.destroy(); | ||
683 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
684 | +}); | ||
685 | + | ||
686 | +var more2 = document.getElementById('more2'); | ||
687 | +more2.addEventListener('click', function(){ | ||
688 | + chartView(); | ||
689 | + change_type_title(4); | ||
690 | + changeLabelText2(ranking_brnu, "누적 연락 수", logcount_brnu, "누적 통화 수", callcount_brnu, "누적 문자 수", smscount_brnu, ranking_brnuc, "누적 통화 수", callcount_brnuc, ranking_brnus, "누적 문자 수", smscount_brnus, ranking_brnud, "누적 통화 시간", durationsum_brnud, [],"특정 기간의 연락 순위"); | ||
691 | + choosed_menu="more2"; | ||
692 | + window.myChart.destroy(); | ||
693 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
694 | +}); | ||
695 | + | ||
696 | +var more3 = document.getElementById('more3'); | ||
697 | +more3.addEventListener('click', function(){ | ||
698 | + chartView(); | ||
699 | + change_type_title(5); | ||
700 | + changeLabelText(timeline, "누적 연락 수", logcount_t, "누적 통화 수", callcount_t, "누적 문자 수", smscount_t, "수", [], "수", [], "수",[] , "수",[], "수", [],"전체 기간의 선호 연락 시간대"); | ||
701 | + choosed_menu="more3"; | ||
702 | + window.myChart.destroy(); | ||
703 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
704 | +}); | ||
705 | + | ||
706 | +var more4 = document.getElementById('more4'); | ||
707 | +more4.addEventListener('click', function(){ | ||
708 | + chartView(); | ||
709 | + change_type_title(5); | ||
710 | + changeLabelText(timeline, "누적 연락 수", logcount_tb, "누적 통화 수", callcount_tb, "누적 문자 수", smscount_tb, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 기간의 선호 연락 시간대"); | ||
711 | + choosed_menu="more4"; | ||
712 | + window.myChart.destroy(); | ||
713 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
714 | +}); | ||
715 | + | ||
716 | +var more5 = document.getElementById('more5'); | ||
717 | +more5.addEventListener('click', function(){ | ||
718 | + chartView(); | ||
719 | + change_type_title(5); | ||
720 | + changeLabelText(timeline, "누적 연락 수", logcount_tw, "누적 통화 수", callcount_tw, "누적 문자 수", smscount_tw, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 연락처와의 선호 연락 시간대"); | ||
721 | + choosed_menu="more5"; | ||
722 | + window.myChart.destroy(); | ||
723 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
724 | +}); | ||
725 | + | ||
726 | +var type1 = document.getElementById('type1'); | ||
727 | +type1.addEventListener('click', function(){ | ||
728 | + switch(choosed_menu){ | ||
729 | + case 'analysis1': | ||
730 | + case 'analysis2': | ||
731 | + case 'analysis3': | ||
732 | + case 'analysis4': | ||
733 | + case 'more1': | ||
734 | + case 'more2': | ||
735 | + case 'more3': | ||
736 | + case 'more4': | ||
737 | + case 'more5': | ||
738 | + window.myChart.destroy(); | ||
739 | + window.myChart = new Chart(ctx, options_main_stacked); | ||
740 | + break; | ||
741 | + }; | ||
742 | +}); | ||
743 | + | ||
744 | +var type2 = document.getElementById('type2'); | ||
745 | +type2.addEventListener('click', function(){ | ||
746 | + switch(choosed_menu){ | ||
747 | + case 'analysis1': | ||
748 | + case 'analysis2': | ||
749 | + case 'analysis3': | ||
750 | + case 'analysis4': | ||
751 | + case 'more1': | ||
752 | + case 'more2': | ||
753 | + case 'more3': | ||
754 | + case 'more4': | ||
755 | + case 'more5': | ||
756 | + window.myChart.destroy(); | ||
757 | + window.myChart = new Chart(ctx, options_main_2); | ||
758 | + break; | ||
759 | + }; | ||
760 | +}); | ||
761 | + | ||
762 | +var type3 = document.getElementById('type3'); | ||
763 | +type3.addEventListener('click', function(){ | ||
764 | + switch(choosed_menu){ | ||
765 | + case 'analysis1': | ||
766 | + case 'analysis2': | ||
767 | + case 'analysis3': | ||
768 | + case 'analysis4': | ||
769 | + case 'more1': | ||
770 | + case 'more2': | ||
771 | + case 'more3': | ||
772 | + case 'more4': | ||
773 | + case 'more5': | ||
774 | + window.myChart.destroy(); | ||
775 | + window.myChart = new Chart(ctx, options_main_3); | ||
776 | + break; | ||
777 | + }; | ||
778 | +}); | ||
779 | + | ||
780 | +var type4 = document.getElementById('type4'); | ||
781 | +type4.addEventListener('click', function(){ | ||
782 | + switch(choosed_menu){ | ||
783 | + case 'analysis1': | ||
784 | + case 'analysis2': | ||
785 | + case 'analysis3': | ||
786 | + case 'analysis4': | ||
787 | + case 'more1': | ||
788 | + case 'more2': | ||
789 | + window.myChart.destroy(); | ||
790 | + window.myChart = new Chart(ctx, options_main_4); | ||
791 | + break; | ||
792 | + }; | ||
793 | +}); | ||
794 | + | ||
795 | +var type5 = document.getElementById('type5'); | ||
796 | +type5.addEventListener('click', function(){ | ||
797 | + switch(choosed_menu){ | ||
798 | + case 'analysis1': | ||
799 | + case 'analysis2': | ||
800 | + case 'analysis3': | ||
801 | + case 'analysis4': | ||
802 | + window.myChart.destroy(); | ||
803 | + window.myChart = new Chart(ctx, options_main_nu_stacked); | ||
804 | + break; | ||
805 | + }; | ||
806 | +}); | ||
807 | + | ||
808 | +var type6 = document.getElementById('type6'); | ||
809 | +type6.addEventListener('click', function(){ | ||
810 | + switch(choosed_menu){ | ||
811 | + case 'analysis1': | ||
812 | + case 'analysis2': | ||
813 | + case 'analysis3': | ||
814 | + case 'analysis4': | ||
815 | + window.myChart.destroy(); | ||
816 | + window.myChart = new Chart(ctx, options_main_nu_2); | ||
817 | + break; | ||
818 | + }; | ||
819 | +}); | ||
820 | + | ||
821 | +var type7 = document.getElementById('type7'); | ||
822 | +type7.addEventListener('click', function(){ | ||
823 | + switch(choosed_menu){ | ||
824 | + case 'analysis1': | ||
825 | + case 'analysis2': | ||
826 | + case 'analysis3': | ||
827 | + case 'analysis4': | ||
828 | + window.myChart.destroy(); | ||
829 | + window.myChart = new Chart(ctx, options_main_nu_3); | ||
830 | + break; | ||
831 | + }; | ||
832 | +}); | ||
833 | + | ||
834 | +var type8 = document.getElementById('type8'); | ||
835 | +type8.addEventListener('click', function(){ | ||
836 | + switch(choosed_menu){ | ||
837 | + case 'analysis1': | ||
838 | + case 'analysis2': | ||
839 | + case 'analysis3': | ||
840 | + case 'analysis4': | ||
841 | + window.myChart.destroy(); | ||
842 | + window.myChart = new Chart(ctx, options_main_nu_4); | ||
843 | + break; | ||
844 | + }; | ||
845 | +}); | ||
846 | + | ||
847 | + | ||
848 | +function get_date_analysis(){ | ||
849 | + chartView(); | ||
850 | + change_type_title(1); | ||
851 | + choosed_menu="analysis3"; | ||
852 | + | ||
853 | + date_start=document.getElementById('between_date_start').value+' 00:00:00'; | ||
854 | + date_end=document.getElementById('between_date_end').value+' 23:59:59'; | ||
855 | + | ||
856 | + connection.query('drop table IF EXISTS calllog_between; create table calllog_between(date datetime not null, logcount int, callcount int, smscount int, durationsum int, primary key(date)); insert into calllog_between(date, callcount, durationsum) (select date_format(date, "%Y-%m-02 00:00:00"), count(*), sum(duration) from calllog where type in (1,2,3) and date between ? and ? group by date_format(date, "%Y-%m-02 00:00:00")); update calllog_between cb left join (select date_format(date, "%Y-%m-02 00:00:00") "date", count(*) "count" from calllog where date between ? and ? group by date_format(date, "%Y-%m-02 00:00:00")) temp on cb.date=temp.date set cb.logcount=temp.count, cb.smscount=cb.logcount-cb.callcount;',[date_start, date_end,date_start, date_end], function(err, rows){ | ||
857 | + if(!err){ | ||
858 | + connection.query('select * from calllog_between order by date;', function(err, rows, fields){ | ||
859 | + if(!err){ | ||
860 | + month_b.length = 0; | ||
861 | + logcount_b.length = 0; | ||
862 | + callcount_b.length = 0; | ||
863 | + smscount_b.length = 0; | ||
864 | + durationsum_b.length = 0; | ||
865 | + | ||
866 | + for(var i=0;i<rows.length;i++){ | ||
867 | + month_b.push(rows[i].date.toISOString().slice(0,7)); | ||
868 | + logcount_b.push(rows[i].logcount); | ||
869 | + callcount_b.push(rows[i].callcount); | ||
870 | + smscount_b.push(rows[i].smscount); | ||
871 | + durationsum_b.push(rows[i].durationsum); | ||
872 | + } | ||
873 | + } | ||
874 | + else | ||
875 | + cc.innerHTML='Error-#6-1'+err; | ||
876 | + }); | ||
877 | + connection.query('select a.date, sum(b.logcount) "logcount", sum(b.callcount) "callcount", sum(b.smscount) "smscount", sum(b.durationsum) "durationsum" from calllog_between a, calllog_between b where a.date>=b.date group by date order by a.date;', function(err, rows, fields){ | ||
878 | + if(!err){ | ||
879 | + logcount_bnu.length = 0; | ||
880 | + callcount_bnu.length = 0; | ||
881 | + smscount_bnu.length = 0; | ||
882 | + durationsum_bnu.length = 0; | ||
883 | + | ||
884 | + for(var i=0;i<rows.length;i++){ | ||
885 | + logcount_bnu.push(rows[i].logcount); | ||
886 | + callcount_bnu.push(rows[i].callcount); | ||
887 | + smscount_bnu.push(rows[i].smscount); | ||
888 | + durationsum_bnu.push(rows[i].durationsum); | ||
889 | + } | ||
890 | + } | ||
891 | + else | ||
892 | + cc.innerHTML='Error-#6-2'; | ||
893 | + }); | ||
894 | + } | ||
895 | + else | ||
896 | + cc.innerHTML='Error-#6'+err; | ||
897 | + }); | ||
898 | + | ||
899 | + changeLabelText(month_b, "연락 수", logcount_b, "통화 수", callcount_b, "문자 수", smscount_b, "통화 시간", durationsum_b, "누적 연락 수", logcount_bnu, "누적 통화 수", callcount_bnu, "누적 문자 수",smscount_bnu, "누적 통화 시간", durationsum_bnu,"특정 기간의 통계"); | ||
900 | + window.myChart.destroy(); | ||
901 | + | ||
902 | + //connection.end(); | ||
903 | +} | ||
904 | + | ||
905 | +function get_number_push(){ | ||
906 | + number.push(document.getElementById('number').value); | ||
907 | + analysis4_list.innerHTML=number; | ||
908 | +} | ||
909 | +function get_number_pop(){ | ||
910 | + number.splice(number.indexOf(document.getElementById('number').value),1); | ||
911 | + analysis4_list.innerHTML=number; | ||
912 | +} | ||
913 | +function get_number_analysis(){ | ||
914 | + chartView(); | ||
915 | + change_type_title(1); | ||
916 | + choosed_menu="analysis4"; | ||
917 | + | ||
918 | + connection.query('drop table IF EXISTS calllog_with; create table calllog_with(date datetime not null, logcount int, callcount int, smscount int, durationsum int, primary key(date)); insert into calllog_with(date, callcount, durationsum) (select date_format(date, "%Y-%m-02 00:00:00"), count(*), sum(duration) from calllog where type in (1,2,3) and number in (?) group by date_format(date, "%Y-%m-02 00:00:00")); update calllog_with cw left join (select date_format(date, "%Y-%m-02 00:00:00") "date", count(*) "count" from calllog where number in (?) group by date_format(date, "%Y-%m-02 00:00:00")) temp on cw.date=temp.date set cw.logcount=temp.count, cw.smscount=cw.logcount-cw.callcount;',[number, number], function(err, rows){ | ||
919 | + if(!err){ | ||
920 | + connection.query('select * from calllog_with order by date;', function(err, rows, fields){ | ||
921 | + if(!err){ | ||
922 | + month_w.length = 0; | ||
923 | + logcount_w.length = 0; | ||
924 | + callcount_w.length = 0; | ||
925 | + smscount_w.length = 0; | ||
926 | + durationsum_w.length = 0; | ||
927 | + | ||
928 | + for(var i=0;i<rows.length;i++){ | ||
929 | + month_w.push(rows[i].date.toISOString().slice(0,7)); | ||
930 | + logcount_w.push(rows[i].logcount); | ||
931 | + callcount_w.push(rows[i].callcount); | ||
932 | + smscount_w.push(rows[i].smscount); | ||
933 | + durationsum_w.push(rows[i].durationsum); | ||
934 | + } | ||
935 | + } | ||
936 | + else | ||
937 | + cc.innerHTML='Error-#7-1'+err; | ||
938 | + }); | ||
939 | + connection.query('select a.date, sum(b.logcount) "logcount", sum(b.callcount) "callcount", sum(b.smscount) "smscount", sum(b.durationsum) "durationsum" from calllog_with a, calllog_with b where a.date>=b.date group by date order by a.date;', function(err, rows, fields){ | ||
940 | + if(!err){ | ||
941 | + logcount_wnu.length = 0; | ||
942 | + callcount_wnu.length = 0; | ||
943 | + smscount_wnu.length = 0; | ||
944 | + durationsum_wnu.length = 0; | ||
945 | + | ||
946 | + for(var i=0;i<rows.length;i++){ | ||
947 | + logcount_wnu.push(rows[i].logcount); | ||
948 | + callcount_wnu.push(rows[i].callcount); | ||
949 | + smscount_wnu.push(rows[i].smscount); | ||
950 | + durationsum_wnu.push(rows[i].durationsum); | ||
951 | + } | ||
952 | + } | ||
953 | + else | ||
954 | + cc.innerHTML='Error-#7-2'; | ||
955 | + }); | ||
956 | + } | ||
957 | + else | ||
958 | + cc.innerHTML='Error-#7'+err; | ||
959 | + }); | ||
960 | + | ||
961 | + changeLabelText(month_w, "연락 수", logcount_w, "통화 수", callcount_w, "문자 수", smscount_w, "통화 시간", durationsum_w, "누적 연락 수", logcount_wnu, "누적 통화 수", callcount_wnu, "누적 문자 수",smscount_wnu, "누적 통화 시간", durationsum_wnu,"특정 연락처와의 통계"); | ||
962 | + window.myChart.destroy(); | ||
963 | + //connection.end(); | ||
964 | +} | ||
965 | + | ||
966 | +function get_date_rank(){ | ||
967 | + chartView(); | ||
968 | + change_type_title(4); | ||
969 | + choosed_menu="more2"; | ||
970 | + | ||
971 | + rank_date_start=document.getElementById('between_rank_date_start').value+' 00:00:00'; | ||
972 | + rank_date_end=document.getElementById('between_rank_date_end').value+' 23:59:59'; | ||
973 | + | ||
974 | + connection.query('drop table IF EXISTS calllog_user_between; create table calllog_user_between(name varchar(255), number varchar(20) not null, callcount int, smscount int, durationsum int, primary key(number)); insert into calllog_user_between(name, number, callcount, durationsum) (select name, number, count(*), sum(duration) from calllog where type in (1,2,3) and date between ? and ? group by number); update calllog_user_between cu left join (select number, count(*) "count" from calllog where type not in (1,2,3) and date between ? and ? group by number) calllog on cu.number=calllog.number set cu.smscount=ifnull(calllog.count,0);', [rank_date_start,rank_date_end,rank_date_start,rank_date_end], function(err, rows, fields){ | ||
975 | + if(err) | ||
976 | + cc.innerHTML='Error-#9'; | ||
977 | + }) | ||
978 | + | ||
979 | + connection.query('select name, number, callcount, smscount from calllog_user_between order by callcount+smscount desc', function(err, rows, fields){ | ||
980 | + if(!err){ | ||
981 | + ranking_brnu.length=0; | ||
982 | + logcount_brnu.length=0; | ||
983 | + callcount_brnu.length=0; | ||
984 | + smscount_brnu.length=0; | ||
985 | + | ||
986 | + for(var i=0;i<rows.length;i++){ | ||
987 | + var name=rows[i].name; | ||
988 | + if(!name) | ||
989 | + ranking_brnu.push(rows[i].number+" ( - )"); | ||
990 | + else | ||
991 | + ranking_brnu.push(rows[i].number+" ("+name+")"); | ||
992 | + logcount_brnu.push(rows[i].callcount+rows[i].smscount); | ||
993 | + callcount_brnu.push(rows[i].callcount); | ||
994 | + smscount_brnu.push(rows[i].smscount); | ||
995 | + } | ||
996 | + } | ||
997 | + else | ||
998 | + cc.innerHTML='Error-#9-1'; | ||
999 | + }); | ||
1000 | + | ||
1001 | + connection.query('select name, number, callcount from calllog_user_between order by callcount desc', function(err, rows, fields){ | ||
1002 | + if(!err){ | ||
1003 | + ranking_brnuc.length=0; | ||
1004 | + callcount_brnuc.length=0; | ||
1005 | + | ||
1006 | + for(var i=0;i<rows.length;i++){ | ||
1007 | + var name=rows[i].name; | ||
1008 | + if(!name) | ||
1009 | + ranking_brnuc.push(rows[i].number); | ||
1010 | + else | ||
1011 | + ranking_brnuc.push(rows[i].number+" ("+name+")"); | ||
1012 | + callcount_brnuc.push(rows[i].callcount); | ||
1013 | + } | ||
1014 | + } | ||
1015 | + else | ||
1016 | + cc.innerHTML='Error-#9-2'; | ||
1017 | + }); | ||
1018 | + | ||
1019 | + connection.query('select name, number, smscount from calllog_user_between order by smscount desc', function(err, rows, fields){ | ||
1020 | + if(!err){ | ||
1021 | + ranking_brnus.length=0; | ||
1022 | + smscount_brnus.length=0; | ||
1023 | + | ||
1024 | + for(var i=0;i<rows.length;i++){ | ||
1025 | + var name=rows[i].name; | ||
1026 | + if(!name) | ||
1027 | + ranking_brnus.push(rows[i].number); | ||
1028 | + else | ||
1029 | + ranking_brnus.push(rows[i].number+" ("+name+")"); | ||
1030 | + smscount_brnus.push(rows[i].smscount); | ||
1031 | + } | ||
1032 | + } | ||
1033 | + else | ||
1034 | + cc.innerHTML='Error-#9-3'; | ||
1035 | + }); | ||
1036 | + | ||
1037 | + connection.query('select name, number, durationsum from calllog_user_between order by durationsum desc', function(err, rows, fields){ | ||
1038 | + if(!err){ | ||
1039 | + ranking_brnud.length=0; | ||
1040 | + durationsum_brnud.length=0; | ||
1041 | + | ||
1042 | + for(var i=0;i<rows.length;i++){ | ||
1043 | + var name=rows[i].name; | ||
1044 | + if(!name) | ||
1045 | + ranking_brnud.push(rows[i].number); | ||
1046 | + else | ||
1047 | + ranking_brnud.push(rows[i].number+" ("+name+")"); | ||
1048 | + durationsum_brnud.push(rows[i].durationsum); | ||
1049 | + } | ||
1050 | + } | ||
1051 | + else | ||
1052 | + cc.innerHTML='Error-#9-4'; | ||
1053 | + }); | ||
1054 | + | ||
1055 | + changeLabelText2(ranking_brnu, "누적 연락 수", logcount_brnu, "누적 통화 수", callcount_brnu, "누적 문자 수", smscount_brnu, ranking_brnuc, "누적 통화 수", callcount_brnuc, ranking_brnus, "누적 문자 수", smscount_brnus, ranking_brnud, "누적 통화 시간", durationsum_brnud, [],"특정 기간의 연락 순위"); | ||
1056 | + window.myChart.destroy(); | ||
1057 | + //connection.end(); | ||
1058 | +} | ||
1059 | + | ||
1060 | +function get_date_timeline(){ | ||
1061 | + chartView(); | ||
1062 | + change_type_title(5); | ||
1063 | + choosed_menu="more4"; | ||
1064 | + | ||
1065 | + timeline_date_start=document.getElementById('between_timeline_date_start').value+' 00:00:00'; | ||
1066 | + timeline_date_end=document.getElementById('between_timeline_date_end').value+' 23:59:59'; | ||
1067 | + | ||
1068 | + connection.query('drop table if exists calllog_hour_between; create table calllog_hour_between(hour int not null, callcount int, smscount int, primary key(hour)); set @hour:=-1; insert into calllog_hour_between(hour, callcount) (select (@hour:=@hour+1) "hour", (select count(*) from calllog where type in (1,2,3) and date between ? and ? and hour(date)=@hour) "count" from calllog where @hour<23); update calllog_hour_between ch left join (select hour(date) "hour", count(*) "count" from calllog where type not in (1,2,3) and date between ? and ? group by hour(date)) calllog on ch.hour=calllog.hour set ch.smscount=ifnull(calllog.count,0);',[timeline_date_start, timeline_date_end,timeline_date_start, timeline_date_end], function(err, rows){ | ||
1069 | + if(!err){ | ||
1070 | + connection.query('select * from calllog_hour_between order by hour',function(err, rows){ | ||
1071 | + if(!err){ | ||
1072 | + logcount_tb.length=0; | ||
1073 | + callcount_tb.length=0; | ||
1074 | + smscount_tb.length=0; | ||
1075 | + | ||
1076 | + for(var i=0;i<rows.length;i++){ | ||
1077 | + callcount_tb.push(rows[i].callcount); | ||
1078 | + smscount_tb.push(rows[i].smscount); | ||
1079 | + logcount_tb.push(rows[i].callcount+rows[i].smscount); | ||
1080 | + } | ||
1081 | + } | ||
1082 | + else | ||
1083 | + cc.innerHTML='Error-#11-1'; | ||
1084 | + }); | ||
1085 | + } | ||
1086 | + else | ||
1087 | + cc.innerHTML='Error-#11'+err; | ||
1088 | + }); | ||
1089 | + | ||
1090 | + changeLabelText(timeline, "누적 연락 수", logcount_tb, "누적 통화 수", callcount_tb, "누적 문자 수", smscount_tb, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 기간의 선호 연락 시간대"); | ||
1091 | + window.myChart.destroy(); | ||
1092 | + //connection.end(); | ||
1093 | +} | ||
1094 | + | ||
1095 | +function get_number_timeline_push(){ | ||
1096 | + timeline_number.push(document.getElementById('timeline_number').value); | ||
1097 | + more5_list.innerHTML=timeline_number; | ||
1098 | +} | ||
1099 | +function get_number_timeline_pop(){ | ||
1100 | + timeline_number.splice(timeline_number.indexOf(document.getElementById('timeline_number').value),1); | ||
1101 | + more5_list.innerHTML=timeline_number; | ||
1102 | +} | ||
1103 | +function get_number_timeline(){ | ||
1104 | + chartView(); | ||
1105 | + change_type_title(5); | ||
1106 | + choosed_menu="more5"; | ||
1107 | + | ||
1108 | + connection.query('drop table if exists calllog_hour_with; create table calllog_hour_with(hour int not null, callcount int, smscount int, primary key(hour)); set @hour:=-1; insert into calllog_hour_with(hour, callcount) (select (@hour:=@hour+1) "hour", (select count(*) from calllog where type in (1,2,3) and number in (?) and hour(date)=@hour) "count" from calllog where @hour<23); update calllog_hour_with ch left join (select hour(date) "hour", count(*) "count" from calllog where type not in (1,2,3) and number in (?) group by hour(date)) calllog on ch.hour=calllog.hour set ch.smscount=ifnull(calllog.count,0);',[timeline_number,timeline_number], function(err, rows){ | ||
1109 | + if(!err){ | ||
1110 | + connection.query('select * from calllog_hour_with order by hour',function(err, rows){ | ||
1111 | + if(!err){ | ||
1112 | + logcount_tw.length=0; | ||
1113 | + callcount_tw.length=0; | ||
1114 | + smscount_tw.length=0; | ||
1115 | + | ||
1116 | + for(var i=0;i<rows.length;i++){ | ||
1117 | + callcount_tw.push(rows[i].callcount); | ||
1118 | + smscount_tw.push(rows[i].smscount); | ||
1119 | + logcount_tw.push(rows[i].callcount+rows[i].smscount); | ||
1120 | + } | ||
1121 | + } | ||
1122 | + else | ||
1123 | + cc.innerHTML='Error-#12-1'; | ||
1124 | + }); | ||
1125 | + } | ||
1126 | + else | ||
1127 | + cc.innerHTML='Error-#12'+err; | ||
1128 | + }); | ||
1129 | + | ||
1130 | + changeLabelText(timeline, "누적 연락 수", logcount_tw, "누적 통화 수", callcount_tw, "누적 문자 수", smscount_tw, "수", [], "수", [], "수",[] , "수",[], "수", [],"특정 연락처와의 선호 연락 시간대"); | ||
1131 | + window.myChart.destroy(); | ||
1132 | + //connection.end(); | ||
1133 | +} | ||
1134 | + | ||
1135 | +var options_list = { | ||
1136 | + valueNames: [ 'type','type_cs','type_gs', 'number', 'date','body', 'duration', 'delete' ], | ||
1137 | + item: '<li id="listrow"><h3 id="listrow_type" class="type"></h3><div id=m2><p id="listrow_number" class="number"></p><p id="listrow_date" class="date"></p></div><p id="listrow_body" class="body"></p></li>' | ||
1138 | +}; | ||
1139 | + | ||
1140 | +var options_list_res = { | ||
1141 | + valueNames: [ 'number','get_body','get_date', 'send_body', 'get_date','timediff' ], | ||
1142 | + item: '<li id="listrow"><h3 id="listrow_number" class="number"></h3><div id=m3><p id="listrow_get_body" class="get_body"></p><p id="listrow_get_date" class="get_date"></p></div><div id=m3><p id="listrow_send_body" class="send_body"></p><p id="listrow_send_date" class="send_date"></p></div><p id="listrow_timediff" class="timediff"></p></li>' | ||
1143 | +}; | ||
1144 | + | ||
1145 | +var values_list_6 = []; | ||
1146 | +var values_list_all = []; | ||
1147 | +var values_list_between=[]; | ||
1148 | +var values_list_res=[]; | ||
1149 | +var values_list_res_with=[]; | ||
1150 | +var myList; | ||
1151 | +var myList2; | ||
1152 | +var myList3=new List('listspace3', options_list, values_list_between); | ||
1153 | +var myList4; | ||
1154 | +var myList5=new List('listspace5', options_list_res, values_list_res_with); | ||
1155 | + | ||
1156 | +connection.query('select calllog.type, calllog.number, calllog.name, calllog.date, calllog.duration, sms.body, sms.read_c from calllog left join sms on calllog.number=sms.address and timestampdiff(second,calllog.date, sms.date) between -5 and 0 where timestampdiff(month,now(),calllog.date)>-1;',function(err, rows){ | ||
1157 | + if(!err){ | ||
1158 | + for(var i=0;i<rows.length;i++){ | ||
1159 | + var number_temp=""; | ||
1160 | + var duration_temp=""; | ||
1161 | + var body_temp=""; | ||
1162 | + var type_temp="" | ||
1163 | + var type_cs_temp=""; | ||
1164 | + var type_gs_temp=""; | ||
1165 | + var delete_temp="false"; | ||
1166 | + if(!rows[i].name) | ||
1167 | + number_temp=rows[i].number+" ( - )"; | ||
1168 | + else | ||
1169 | + number_temp=rows[i].number+" ("+rows[i].name+")"; | ||
1170 | + | ||
1171 | + var date_temp=rows[i].date.toISOString().split("T")[0]+" "+rows[i].date.toISOString().split("T")[1].slice(0,8); | ||
1172 | + switch(rows[i].type){ | ||
1173 | + case 1: | ||
1174 | + type_temp="수신 통화"; | ||
1175 | + type_cs_temp="call"; | ||
1176 | + type_gs_temp="get"; | ||
1177 | + var tttt=rows[i].duration; | ||
1178 | + if(tttt>=3600){ | ||
1179 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1180 | + duration_temp="more60"; | ||
1181 | + } | ||
1182 | + else if(tttt>=60){ | ||
1183 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1184 | + if(tttt<=600) | ||
1185 | + duration_temp="less10"; | ||
1186 | + } | ||
1187 | + else{ | ||
1188 | + body_temp=tttt+"초"; | ||
1189 | + duration_temp="less10"; | ||
1190 | + } | ||
1191 | + break; | ||
1192 | + case 2: | ||
1193 | + type_temp="발신 통화"; | ||
1194 | + type_cs_temp="call"; | ||
1195 | + type_gs_temp="send"; | ||
1196 | + var tttt=rows[i].duration; | ||
1197 | + if(tttt>=3600){ | ||
1198 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1199 | + duration_temp="more60"; | ||
1200 | + } | ||
1201 | + else if(tttt>=60){ | ||
1202 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1203 | + if(tttt<=600) | ||
1204 | + duration_temp="less10"; | ||
1205 | + } | ||
1206 | + else{ | ||
1207 | + body_temp=tttt+"초"; | ||
1208 | + duration_temp="less10"; | ||
1209 | + } | ||
1210 | + break; | ||
1211 | + case 3: | ||
1212 | + type_temp="부재중 통화"; | ||
1213 | + type_cs_temp="call"; | ||
1214 | + type_gs_temp="missed"; | ||
1215 | + body_temp="-"; | ||
1216 | + duration_temp=""; | ||
1217 | + break; | ||
1218 | + case 813: | ||
1219 | + body_temp=rows[i].body; | ||
1220 | + if(!body_temp) | ||
1221 | + delete_temp="true"; | ||
1222 | + type_temp="발신 문자"; | ||
1223 | + type_cs_temp="sms"; | ||
1224 | + type_gs_temp="send"; | ||
1225 | + break; | ||
1226 | + case 820: | ||
1227 | + body_temp="[mms]"; | ||
1228 | + type_temp="수신 문자"; | ||
1229 | + type_cs_temp="sms"; | ||
1230 | + type_gs_temp="get"; | ||
1231 | + break; | ||
1232 | + case 814: | ||
1233 | + body_temp=rows[i].body; | ||
1234 | + if(!body_temp) | ||
1235 | + delete_temp="true"; | ||
1236 | + type_temp="수신 문자"; | ||
1237 | + type_cs_temp="sms"; | ||
1238 | + type_gs_temp="get"; | ||
1239 | + break; | ||
1240 | + case 825: | ||
1241 | + body_temp="[안전안내문자]"; | ||
1242 | + type_temp="수신 문자"; | ||
1243 | + type_cs_temp="sms"; | ||
1244 | + type_gs_temp="get"; | ||
1245 | + break; | ||
1246 | + } | ||
1247 | + values_list_6.push({type:type_temp, type_cs:type_cs_temp ,type_gs:type_gs_temp,number:number_temp,date:date_temp, body:body_temp, duration:duration_temp, delete:delete_temp}); | ||
1248 | + } | ||
1249 | + myList = new List('listspace', options_list, values_list_6); | ||
1250 | + } | ||
1251 | + else | ||
1252 | + cc.innerHTML='Error-#list1'+err; | ||
1253 | +}); | ||
1254 | + | ||
1255 | +connection.query('select calllog.type, calllog.number, calllog.name, calllog.date, calllog.duration, sms.body, sms.read_c from calllog left join sms on calllog.number=sms.address and timestampdiff(second,calllog.date, sms.date) between -5 and 0 ;',function(err, rows){ | ||
1256 | + if(!err){ | ||
1257 | + for(var i=0;i<rows.length;i++){ | ||
1258 | + var number_temp=""; | ||
1259 | + var duration_temp=""; | ||
1260 | + var body_temp=""; | ||
1261 | + var type_temp=""; | ||
1262 | + var type_cs_temp=""; | ||
1263 | + var type_gs_temp=""; | ||
1264 | + var delete_temp="false"; | ||
1265 | + if(!rows[i].name) | ||
1266 | + number_temp=rows[i].number+" ( - )"; | ||
1267 | + else | ||
1268 | + number_temp=rows[i].number+" ("+rows[i].name+")"; | ||
1269 | + | ||
1270 | + var date_temp=rows[i].date.toISOString().split("T")[0]+" "+rows[i].date.toISOString().split("T")[1].slice(0,8); | ||
1271 | + switch(rows[i].type){ | ||
1272 | + case 1: | ||
1273 | + type_temp="수신 통화"; | ||
1274 | + type_cs_temp="call"; | ||
1275 | + type_gs_temp="get"; | ||
1276 | + var tttt=rows[i].duration; | ||
1277 | + if(tttt>=3600){ | ||
1278 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1279 | + duration_temp="more60"; | ||
1280 | + } | ||
1281 | + else if(tttt>=60){ | ||
1282 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1283 | + if(tttt<=600) | ||
1284 | + duration_temp="less10"; | ||
1285 | + } | ||
1286 | + else{ | ||
1287 | + body_temp=tttt+"초"; | ||
1288 | + duration_temp="less10"; | ||
1289 | + } | ||
1290 | + break; | ||
1291 | + case 2: | ||
1292 | + type_temp="발신 통화"; | ||
1293 | + type_cs_temp="call"; | ||
1294 | + type_gs_temp="send"; | ||
1295 | + var tttt=rows[i].duration; | ||
1296 | + if(tttt>=3600){ | ||
1297 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1298 | + duration_temp="more60"; | ||
1299 | + } | ||
1300 | + else if(tttt>=60){ | ||
1301 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1302 | + if(tttt<=600) | ||
1303 | + duration_temp="less10"; | ||
1304 | + } | ||
1305 | + else{ | ||
1306 | + body_temp=tttt+"초"; | ||
1307 | + duration_temp="less10"; | ||
1308 | + } | ||
1309 | + break; | ||
1310 | + case 3: | ||
1311 | + type_temp="부재중 통화"; | ||
1312 | + type_cs_temp="call"; | ||
1313 | + type_gs_temp="missed"; | ||
1314 | + body_temp="-"; | ||
1315 | + duration_temp=""; | ||
1316 | + break; | ||
1317 | + case 813: | ||
1318 | + body_temp=rows[i].body; | ||
1319 | + if(!body_temp) | ||
1320 | + delete_temp="true"; | ||
1321 | + type_temp="발신 문자"; | ||
1322 | + type_cs_temp="sms"; | ||
1323 | + type_gs_temp="send"; | ||
1324 | + break; | ||
1325 | + case 820: | ||
1326 | + body_temp="[mms]"; | ||
1327 | + type_temp="수신 문자"; | ||
1328 | + type_cs_temp="sms"; | ||
1329 | + type_gs_temp="get"; | ||
1330 | + break; | ||
1331 | + case 814: | ||
1332 | + body_temp=rows[i].body; | ||
1333 | + if(!body_temp) | ||
1334 | + delete_temp="true"; | ||
1335 | + type_temp="수신 문자"; | ||
1336 | + type_cs_temp="sms"; | ||
1337 | + type_gs_temp="get"; | ||
1338 | + break; | ||
1339 | + case 825: | ||
1340 | + body_temp="[안전안내문자]"; | ||
1341 | + type_temp="수신 문자"; | ||
1342 | + type_cs_temp="sms"; | ||
1343 | + type_gs_temp="get"; | ||
1344 | + break; | ||
1345 | + } | ||
1346 | + values_list_all.push({type:type_temp, type_cs:type_cs_temp ,type_gs:type_gs_temp,number:number_temp,date:date_temp, body:body_temp, duration:duration_temp, delete:delete_temp}); | ||
1347 | + } | ||
1348 | + myList2 = new List('listspace2', options_list, values_list_all); | ||
1349 | + } | ||
1350 | + else | ||
1351 | + cc.innerHTML='Error-#list2'+err; | ||
1352 | +}); | ||
1353 | + | ||
1354 | +function get_date_list(){ | ||
1355 | + listspace.style="display:none"; | ||
1356 | + listspace2.style="display:none"; | ||
1357 | + listspace3.style="display:inline"; | ||
1358 | + listspace4.style="display:none"; | ||
1359 | + listspace5.style="display:none"; | ||
1360 | + chartspace.style="display:none"; | ||
1361 | + choicespace.style="display:none"; | ||
1362 | + | ||
1363 | + list_date_start=document.getElementById('between_list_date_start').value+' 00:00:00'; | ||
1364 | + list_date_end=document.getElementById('between_list_date_end').value+' 23:59:59'; | ||
1365 | + | ||
1366 | + connection.query('select calllog.type, calllog.number, calllog.name, calllog.date, calllog.duration, sms.body, sms.read_c from calllog left join sms on calllog.number=sms.address and timestampdiff(second,calllog.date, sms.date) between -5 and 0 where calllog.date between ? and ?;',[list_date_start, list_date_end],function(err, rows){ | ||
1367 | + if(!err){ | ||
1368 | + myList3.clear(); | ||
1369 | + values_list_between.length=0; | ||
1370 | + for(var i=0;i<rows.length;i++){ | ||
1371 | + var number_temp=""; | ||
1372 | + var duration_temp=""; | ||
1373 | + var body_temp=""; | ||
1374 | + var type_temp=''; | ||
1375 | + var type_cs_temp=''; | ||
1376 | + var type_gs_temp=''; | ||
1377 | + var delete_temp="false"; | ||
1378 | + if(!rows[i].name) | ||
1379 | + number_temp=rows[i].number+" ( - )"; | ||
1380 | + else | ||
1381 | + number_temp=rows[i].number+" ("+rows[i].name+")"; | ||
1382 | + | ||
1383 | + var date_temp=rows[i].date.toISOString().split("T")[0]+" "+rows[i].date.toISOString().split("T")[1].slice(0,8); | ||
1384 | + switch(rows[i].type){ | ||
1385 | + case 1: | ||
1386 | + type_temp="수신 통화"; | ||
1387 | + type_cs_temp="call"; | ||
1388 | + type_gs_temp="get"; | ||
1389 | + var tttt=rows[i].duration; | ||
1390 | + if(tttt>=3600){ | ||
1391 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1392 | + duration_temp="more60"; | ||
1393 | + } | ||
1394 | + else if(tttt>=60){ | ||
1395 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1396 | + if(tttt<=600) | ||
1397 | + duration_temp="less10"; | ||
1398 | + } | ||
1399 | + else{ | ||
1400 | + body_temp=tttt+"초"; | ||
1401 | + duration_temp="less10"; | ||
1402 | + } | ||
1403 | + break; | ||
1404 | + case 2: | ||
1405 | + type_temp="발신 통화"; | ||
1406 | + type_cs_temp="call"; | ||
1407 | + type_gs_temp="send"; | ||
1408 | + var tttt=rows[i].duration; | ||
1409 | + if(tttt>=3600){ | ||
1410 | + body_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1411 | + duration_temp="more60"; | ||
1412 | + } | ||
1413 | + else if(tttt>=60){ | ||
1414 | + body_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1415 | + if(tttt<=600) | ||
1416 | + duration_temp="less10"; | ||
1417 | + } | ||
1418 | + else{ | ||
1419 | + body_temp=tttt+"초"; | ||
1420 | + duration_temp="less10"; | ||
1421 | + } | ||
1422 | + break; | ||
1423 | + case 3: | ||
1424 | + type_temp="부재중 통화"; | ||
1425 | + type_cs_temp="call"; | ||
1426 | + type_gs_temp="missed"; | ||
1427 | + body_temp="-"; | ||
1428 | + duration_temp=""; | ||
1429 | + break; | ||
1430 | + case 813: | ||
1431 | + body_temp=rows[i].body; | ||
1432 | + if(!body_temp) | ||
1433 | + delete_temp="true"; | ||
1434 | + type_temp="발신 문자"; | ||
1435 | + type_cs_temp="sms"; | ||
1436 | + type_gs_temp="send"; | ||
1437 | + break; | ||
1438 | + case 820: | ||
1439 | + body_temp="[mms]"; | ||
1440 | + type_temp="수신 문자"; | ||
1441 | + type_cs_temp="sms"; | ||
1442 | + type_gs_temp="get"; | ||
1443 | + break; | ||
1444 | + case 814: | ||
1445 | + body_temp=rows[i].body; | ||
1446 | + if(!body_temp) | ||
1447 | + delete_temp="true"; | ||
1448 | + type_temp="수신 문자"; | ||
1449 | + type_cs_temp="sms"; | ||
1450 | + type_gs_temp="get"; | ||
1451 | + break; | ||
1452 | + case 825: | ||
1453 | + body_temp="[안전안내문자]"; | ||
1454 | + type_temp="수신 문자"; | ||
1455 | + type_cs_temp="sms"; | ||
1456 | + type_gs_temp="get"; | ||
1457 | + break; | ||
1458 | + } | ||
1459 | + values_list_between.push({type:type_temp, type_cs:type_cs_temp ,type_gs:type_gs_temp,number:number_temp,date:date_temp, body:body_temp, duration:duration_temp, delete:delete_temp}); | ||
1460 | + } | ||
1461 | + myList3 = new List('listspace3', options_list, values_list_between); | ||
1462 | + } | ||
1463 | + else | ||
1464 | + cc.innerHTML='Error-#list1'+err; | ||
1465 | + }); | ||
1466 | + //connection.end(); | ||
1467 | +} | ||
1468 | + | ||
1469 | +var filter1List=[]; | ||
1470 | +var filter2List=[]; | ||
1471 | +var filter3List=[]; | ||
1472 | +var filter1_element=document.getElementsByClassName("filter1"); | ||
1473 | +var filter2_element=document.getElementsByClassName("filter2"); | ||
1474 | +var filter3_element=document.getElementsByClassName("filter3"); | ||
1475 | + | ||
1476 | +function filter_listener(event){ | ||
1477 | + var data_filter_temp=event.target.getAttribute('data_filter'); | ||
1478 | + var data_value_temp=event.target.getAttribute('data_value'); | ||
1479 | + var checked_temp=event.target.checked; | ||
1480 | + | ||
1481 | + switch(event.target.id){ | ||
1482 | + case "filter1": | ||
1483 | + filter_action(filter1List, checked_temp, data_filter_temp, data_value_temp, myList); | ||
1484 | + break; | ||
1485 | + case "filter2": | ||
1486 | + filter_action(filter2List, checked_temp, data_filter_temp, data_value_temp, myList2); | ||
1487 | + break; | ||
1488 | + case "filter3": | ||
1489 | + filter_action(filter3List, checked_temp, data_filter_temp, data_value_temp, myList3); | ||
1490 | + break; | ||
1491 | + } | ||
1492 | +} | ||
1493 | +function filter_action(paramlist, checked_temp, filter_temp, value_temp, myList_temp){ | ||
1494 | + if (checked_temp){ | ||
1495 | + paramlist.push(filter_temp); | ||
1496 | + paramlist.push(value_temp); | ||
1497 | + | ||
1498 | + myList_temp.filter(function (item) { | ||
1499 | + var check_all=true; | ||
1500 | + for(var i=0;i<paramlist.length;i=i+2){ | ||
1501 | + if(item.values()[paramlist[i]] !== paramlist[i+1]) | ||
1502 | + check_all=false; | ||
1503 | + } | ||
1504 | + if(check_all) | ||
1505 | + return true; | ||
1506 | + else | ||
1507 | + return false; | ||
1508 | + }); | ||
1509 | + } | ||
1510 | + else{ | ||
1511 | + paramlist.splice(paramlist.indexOf(value_temp)-1,2); | ||
1512 | + | ||
1513 | + myList_temp.filter(function (item) { | ||
1514 | + var check_all=true; | ||
1515 | + for(var i=0;i<paramlist.length;i=i+2){ | ||
1516 | + if(item.values()[paramlist[i]] !== paramlist[i+1]) | ||
1517 | + check_all=false; | ||
1518 | + } | ||
1519 | + if(check_all) | ||
1520 | + return true; | ||
1521 | + else | ||
1522 | + return false; | ||
1523 | + }); | ||
1524 | + } | ||
1525 | +}; | ||
1526 | +for (var i = 0; i < filter1_element.length; i++) { | ||
1527 | + filter1_element[i].addEventListener('click', filter_listener, false); | ||
1528 | +} | ||
1529 | +for (var i = 0; i < filter2_element.length; i++) { | ||
1530 | + filter2_element[i].addEventListener('click', filter_listener, false); | ||
1531 | +} | ||
1532 | +for (var i = 0; i < filter3_element.length; i++) { | ||
1533 | + filter3_element[i].addEventListener('click', filter_listener, false); | ||
1534 | +} | ||
1535 | + | ||
1536 | +var more6 = document.getElementById('more6'); | ||
1537 | +more6.addEventListener('click', function(){ | ||
1538 | + listspace.style="display:none"; | ||
1539 | + listspace2.style="display:none"; | ||
1540 | + listspace3.style="display:none"; | ||
1541 | + listspace4.style="display:inline"; | ||
1542 | + listspace5.style="display:none"; | ||
1543 | + chartspace.style="display:none"; | ||
1544 | + choicespace.style="display:none"; | ||
1545 | + choosed_menu="more6"; | ||
1546 | + window.myChart.destroy(); | ||
1547 | +}); | ||
1548 | + | ||
1549 | +var more7 = document.getElementById('more7'); | ||
1550 | +more7.addEventListener('click', function(){ | ||
1551 | + listspace.style="display:none"; | ||
1552 | + listspace2.style="display:none"; | ||
1553 | + listspace3.style="display:none"; | ||
1554 | + listspace4.style="display:none"; | ||
1555 | + listspace5.style="display:inline"; | ||
1556 | + chartspace.style="display:none"; | ||
1557 | + choicespace.style="display:none"; | ||
1558 | + choosed_menu="more7"; | ||
1559 | + window.myChart.destroy(); | ||
1560 | +}); | ||
1561 | + | ||
1562 | + | ||
1563 | +connection.query('drop table sms_response; create table sms_response (number text, got_date datetime, got_body text, send_date datetime, send_body text, time int); insert into sms_response SELECT sms1.address, sms1.date,sms1.body, sms2.date, sms2.body,timestampdiff(second, sms1.date, sms2.date) FROM sms sms1, sms sms2 where sms1.tid=sms2.tid and sms1.type=1 and sms2.type=2 and timestampdiff(second, sms1.date, sms2.date) >0 and timestampdiff(day,sms2.date, sms1.date)< 2; delete sms1 from sms_response sms1, sms_response sms2 where sms1.send_date=sms2.send_date and timestampdiff(second, sms2.got_date,sms1.got_date)<0; delete sms1 from sms_response sms1, sms_response sms2 where sms1.got_date=sms2.got_date and timestampdiff(second, sms2.send_date,sms1.send_date)>0;', function(err, rows, fields){ | ||
1564 | + if(err) | ||
1565 | + cc.innerHTML='Error-#13'; | ||
1566 | +}) | ||
1567 | + | ||
1568 | +connection.query('select avg(time) "avg" from sms_response;', function(err, rows, fields){ | ||
1569 | + if(!err){ | ||
1570 | + var tttt=rows[0].avg; | ||
1571 | + var avg_temp=""; | ||
1572 | + if(tttt>=3600) | ||
1573 | + avg_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+Math.floor(tttt%60)+"초"; | ||
1574 | + else if(tttt>=60) | ||
1575 | + avg_temp=Math.floor(tttt/60)+"분 "+Math.floor(tttt%60)+"초"; | ||
1576 | + else | ||
1577 | + avg_temp=tttt+"초"; | ||
1578 | + values_list_res.push({get_body:"해당 기간의 평균 답장 시간", send_body:avg_temp}); | ||
1579 | + } | ||
1580 | + else | ||
1581 | + cc.innerHTML='Error-#13-11'+err; | ||
1582 | +}); | ||
1583 | + | ||
1584 | +connection.query('select * from sms_response;', function(err, rows, fields){ | ||
1585 | + if(!err){ | ||
1586 | + for(var i=0;i<rows.length;i++){ | ||
1587 | + var number_temp=rows[i].number; | ||
1588 | + var get_body_temp=rows[i].got_body; | ||
1589 | + var get_date_temp=rows[i].got_date.toISOString().split("T")[0]+" "+rows[i].got_date.toISOString().split("T")[1].slice(0,8); | ||
1590 | + var send_body_temp=rows[i].send_body; | ||
1591 | + var send_date_temp=rows[i].send_date.toISOString().split("T")[0]+" "+rows[i].send_date.toISOString().split("T")[1].slice(0,8); | ||
1592 | + var tttt=rows[i].time; | ||
1593 | + var timediff_temp=""; | ||
1594 | + if(tttt>=3600) | ||
1595 | + timediff_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1596 | + else if(tttt>=60) | ||
1597 | + timediff_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1598 | + else | ||
1599 | + timediff_temp=tttt+"초"; | ||
1600 | + | ||
1601 | + values_list_res.push({number:number_temp, get_body:get_body_temp, get_date:get_date_temp, send_body:send_body_temp, send_date:send_date_temp, timediff:timediff_temp}); | ||
1602 | + } | ||
1603 | + myList4 = new List('listspace4', options_list_res, values_list_res); | ||
1604 | + } | ||
1605 | + else | ||
1606 | + cc.innerHTML='Error-#13-1'+err; | ||
1607 | +}); | ||
1608 | + | ||
1609 | + | ||
1610 | +function get_number_restime_push(){ | ||
1611 | + restime_number.push(document.getElementById('restime_number').value); | ||
1612 | + more7_list.innerHTML=restime_number; | ||
1613 | +} | ||
1614 | +function get_number_restime_pop(){ | ||
1615 | + restime_number.splice(restime_number.indexOf(document.getElementById('restime_number').value),1); | ||
1616 | + more7_list.innerHTML=restime_number; | ||
1617 | +} | ||
1618 | +function get_number_restime(){ | ||
1619 | + listspace.style="display:none"; | ||
1620 | + listspace2.style="display:none"; | ||
1621 | + listspace3.style="display:none"; | ||
1622 | + listspace4.style="display:none"; | ||
1623 | + listspace5.style="display:inline"; | ||
1624 | + chartspace.style="display:none"; | ||
1625 | + choicespace.style="display:none"; | ||
1626 | + | ||
1627 | + myList5.clear(); | ||
1628 | + values_list_res_with.length=0; | ||
1629 | + | ||
1630 | + connection.query('select avg(time) "avg" from sms_response where number in (?);',[restime_number], function(err, rows, fields){ | ||
1631 | + if(!err){ | ||
1632 | + var tttt=rows[0].avg; | ||
1633 | + var avg_temp=""; | ||
1634 | + if(tttt>=3600) | ||
1635 | + avg_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+Math.floor(tttt%60)+"초"; | ||
1636 | + else if(tttt>=60) | ||
1637 | + avg_temp=Math.floor(tttt/60)+"분 "+Math.floor(tttt%60)+"초"; | ||
1638 | + else | ||
1639 | + avg_temp=tttt+"초"; | ||
1640 | + values_list_res_with.push({get_body:"해당 기간의 평균 답장 시간", send_body:avg_temp}); | ||
1641 | + } | ||
1642 | + else | ||
1643 | + cc.innerHTML='Error-#13-21'+err; | ||
1644 | + }); | ||
1645 | + | ||
1646 | + connection.query('select * from sms_response where number in (?);',[restime_number], function(err, rows, fields){ | ||
1647 | + if(!err){ | ||
1648 | + for(var i=0;i<rows.length;i++){ | ||
1649 | + var number_temp=rows[i].number; | ||
1650 | + var get_body_temp=rows[i].got_body; | ||
1651 | + var get_date_temp=rows[i].got_date.toISOString().split("T")[0]+" "+rows[i].got_date.toISOString().split("T")[1].slice(0,8); | ||
1652 | + var send_body_temp=rows[i].send_body; | ||
1653 | + var send_date_temp=rows[i].send_date.toISOString().split("T")[0]+" "+rows[i].send_date.toISOString().split("T")[1].slice(0,8); | ||
1654 | + var tttt=rows[i].time; | ||
1655 | + var timediff_temp=""; | ||
1656 | + if(tttt>=3600) | ||
1657 | + timediff_temp=Math.floor(tttt/3600)+"시간 "+Math.floor((tttt%3600)/60)+"분 "+(tttt%60)+"초"; | ||
1658 | + else if(tttt>=60) | ||
1659 | + timediff_temp=Math.floor(tttt/60)+"분 "+(tttt%60)+"초"; | ||
1660 | + else | ||
1661 | + timediff_temp=tttt+"초"; | ||
1662 | + | ||
1663 | + values_list_res_with.push({number:number_temp, get_body:get_body_temp, get_date:get_date_temp, send_body:send_body_temp, send_date:send_date_temp, timediff:timediff_temp}); | ||
1664 | + } | ||
1665 | + myList5 = new List('listspace5', options_list_res, values_list_res_with); | ||
1666 | + } | ||
1667 | + else | ||
1668 | + cc.innerHTML='Error-#13-2'+err; | ||
1669 | + }); | ||
1670 | + //connection.end(); | ||
1671 | +} | ... | ... |
-
Please register or login to post a comment