From cefd3fc2186519af16453cbea01d74604facc894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=A2=E1=84=91=E1=85=B3=E1=86=AF=20=E1=84=82?= =?UTF-8?q?=E1=85=A9=E1=84=90=E1=85=B3=E1=84=87=E1=85=AE=E1=86=A8?= Date: Fri, 29 Mar 2019 11:23:25 +0900 Subject: [PATCH] Add: count record list, search all --- src/web/module/maestro_section_record.html | 82 +++++++++------ .../record/request_player_record_list.php | 99 +++++++++++++++---- 2 files changed, 133 insertions(+), 48 deletions(-) diff --git a/src/web/module/maestro_section_record.html b/src/web/module/maestro_section_record.html index ee7bad0..3dbf3f8 100644 --- a/src/web/module/maestro_section_record.html +++ b/src/web/module/maestro_section_record.html @@ -31,23 +31,25 @@ function initDatePicker() { language: 'kr' }); - var today = new Date(); - var yyyy = today.getFullYear(); - var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! - var dd = String(today.getDate()).padStart(2, '0'); + setDatePickersForMonths(3); - $('#start_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd); - $('#end_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd); + // var today = new Date(); + // var yyyy = today.getFullYear(); + // var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! + // var dd = String(today.getDate()).padStart(2, '0'); + + // $('#start_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd); + // $('#end_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd); } -function setDatePickers1Week() { +function setDatePickersForWeeks(weeks) { var today = new Date(); var tyyyy = today.getFullYear(); var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var tdd = String(today.getDate()).padStart(2, '0'); var startDay = new Date(); - startDay.setDate(startDay.getDate() - 7); + startDay.setDate(startDay.getDate() - 7 * weeks); var syyyy = startDay.getFullYear(); var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0! var sdd = String(startDay.getDate()).padStart(2, '0'); @@ -56,14 +58,14 @@ function setDatePickers1Week() { $('#end_datepicker').datepicker('update', tyyyy + "-" + tmm + "-" + tdd); } -function setDatePickers1Month() { +function setDatePickersForMonths(months) { var today = new Date(); var tyyyy = today.getFullYear(); var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var tdd = String(today.getDate()).padStart(2, '0'); var startDay = new Date(); - startDay.setMonth(startDay.getMonth() - 1); + startDay.setMonth(startDay.getMonth() - months); var syyyy = startDay.getFullYear(); var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0! var sdd = String(startDay.getDate()).padStart(2, '0'); @@ -72,14 +74,14 @@ function setDatePickers1Month() { $('#end_datepicker').datepicker('update', tyyyy + "-" + tmm + "-" + tdd); } -function setDatePickers1Year() { +function setDatePickersForYears(years) { var today = new Date(); var tyyyy = today.getFullYear(); var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var tdd = String(today.getDate()).padStart(2, '0'); var startDay = new Date(); - startDay.setFullYear(startDay.getFullYear() - 1); + startDay.setFullYear(startDay.getFullYear() - years); var syyyy = startDay.getFullYear(); var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0! var sdd = String(startDay.getDate()).padStart(2, '0'); @@ -233,12 +235,24 @@ function addSubjectBundleItem(subjectListID, appID, appName) { function requestPlayerRecordList() { + getPlayerRecordList(50); + + $("#search_all").removeClass("disabled"); +} + +function requestPlayerRecordListAll() { + getPlayerRecordList(0); +} + +function getPlayerRecordList(limitCount) { var startDate = $("#start_date").val(); var endDate = $("#end_date").val(); // console.log(startDate); // console.log(endDate); - var playerNameList = $("#player_name").val(); + var playerNameList = $("#player_name_list").val(); + // console.log("player name list"); + // console.log($("player_name_list")); // console.log(playerNameList); var appID = $(":radio[name='subject_group']:checked").val(); @@ -249,10 +263,11 @@ function requestPlayerRecordList() { sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); "./../server/record/request_player_record_list.php", "MaestroID=" + maestroID + "&StartDate=" + startDate + "&EndDate=" + endDate - + "&PlayerNameList=" + playerNameList + "&AppID=" + appID, + + "&PlayerNameList=" + playerNameList + "&AppID=" + appID + "&LimitCount=" + limitCount, (function(jsonData) { // console.log(jsonData); + showRecordCount(jsonData); makeRecordTableContent(jsonData["RecordList"]); }), @@ -264,6 +279,16 @@ function requestPlayerRecordList() { } +function showRecordCount(jsonData) { + $("#record_count").empty(); + + var count = jsonData["RecordList"].length; + $("#record_count").append( + '표시 : ' + count + '개 / 총 : ' + count + '개' + ); + +} + function makeRecordTableContent(recordList) { $("#record_table_content").empty(); @@ -272,23 +297,17 @@ function makeRecordTableContent(recordList) { return; } - console.log(recordList); + // console.log(recordList); for(var i = 0; i < recordList.length; i++) { - var recordData = recordList[i]; - addRecordListItem( - recordData.Date, - recordData.Time, - recordData.PlayerName, - recordData.Subject, - recordData.Record - ); + var record = recordList[i]; + addRecordListItem(record.Date, record.Time, record.PlayerName, record.Subject, record.Record); } } function showNoResultContent() { $("#record_table_content").append('\ \ - 데이터가 없습니다.\ + 데이터가 없습니다.\ \ '); } @@ -356,9 +375,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
- - - + + +
@@ -374,7 +393,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) { ?
- +
@@ -412,7 +431,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
- + @@ -427,8 +446,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) { ? -
- +
+ 표시 : 0개 / 총 : 0개 +
diff --git a/src/web/server/record/request_player_record_list.php b/src/web/server/record/request_player_record_list.php index abf6b81..9731f25 100644 --- a/src/web/server/record/request_player_record_list.php +++ b/src/web/server/record/request_player_record_list.php @@ -10,31 +10,34 @@ $start_date = $_POST["StartDate"]; $end_date = $_POST["EndDate"]; $player_name_list = $_POST["PlayerNameList"]; $app_id = $_POST["AppID"]; +$limit_count = $_POST["LimitCount"]; // echo "start_date : ".$start_date."\n"; // echo "end_date : ".$end_date."\n"; +// echo "player_name_list : ".$player_name_list."\n"; // echo "app_id : ".$app_id."\n"; +// echo "limit_count : ".$limit_count."\n"; // echo "\n"; -$replyJSON = null; - $date_statement = makeDateStatement($start_date, $end_date); $player_name_statement = makePlayerNameStatement($player_name_list); $subject_statement = makeSubjectSentence($app_id); - // echo "maestro : ".$maestro_id."\n"; // echo "date : ".$date_statement."\n"; // echo "player_name : ".$player_name_statement."\n"; // echo "subject : ".$subject_statement."\n"; +$where_statement = make_where_statement($date_statement, $player_name_statement, $subject_statement); - -$replyJSON = get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement); +$recordCount = get_player_record_count($maestro_id, $where_statement, $limit_count); +$recordTotalCount = get_player_record_total_count($maestro_id, $where_statement); +$replyJSON = get_player_record_list($maestro_id, $where_statement, $limit_count); if($replyJSON.length === 0) { send_error_message($replyJSON, "오늘의 랭킹 기록 없음"); $db_conn->close(); exit; } +set_data("RecordCount", $recordCount); set_data("RecordList", $replyJSON); send_result_success(); exit; @@ -55,27 +58,32 @@ function makeSubjectSentence($app_id) { if(is_subject_bundle_item($app_id)) { switch($app_id) { case 1000: // korean practice - $subject_statement = $subject_statement." A.AppID < 9"; + $subject_statement = $subject_statement."A.AppID < 9"; + break; case 1001: // english practice - $subject_statement = $subject_statement." 10 < A.AppID AND A.AppID < 19"; + $subject_statement = $subject_statement."10 < A.AppID AND A.AppID < 19"; + break; case 1002: // korean test - $subject_statement = $subject_statement." 20 < A.AppID AND A.AppID < 31"; + $subject_statement = $subject_statement."20 < A.AppID AND A.AppID < 31"; + break; case 1003: // english test - $subject_statement = $subject_statement." 30 < A.AppID AND A.AppID < 41"; + $subject_statement = $subject_statement."30 < A.AppID AND A.AppID < 41"; + break; } + } else { + $subject_statement = $subject_statement."A.AppID = ".$app_id; } - $subject_statement = $subject_statement." A.AppID = ".$app_id; return $subject_statement." AND BR.AppID = A.AppID"; } function makePlayerNameStatement($player_name_list) { $player_name_statement = "BR.PlayerID = P.PlayerID"; - if($player_name_list.length > 0) - $player_name_statement = $player_name_statement." AND P.Name LIKE %".$player_name_list."%"; + if(strlen($player_name_list) > 0) + $player_name_statement = $player_name_statement." AND P.Name LIKE '%".$player_name_list."%'"; return $player_name_statement; } @@ -88,28 +96,85 @@ function is_subject_bundle_item($app_id) { return false; } -function get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement) { - global $db_conn; - +function make_where_statement($date_statement, $player_name_statement, $subject_statement) { + // add date condition $where_statement = $date_statement; if(strlen($where_statement) > 0 and strlen($player_name_statement) > 0) $where_statement = $where_statement." AND "; + + // add player name condition $where_statement = $where_statement.$player_name_statement; + + // add subject condition if(strlen($where_statement) > 0 and strlen($subject_statement) > 0) $where_statement = $where_statement." AND "; $where_statement = $where_statement.$subject_statement; // echo $where_statement."\n\n"; + return $where_statement; +} +function get_player_record_count($maestro_id, $where_statement, $limit_count) { + global $db_conn; + + $query = " + SELECT COUNT(*) + FROM best_record BR, player P, App A + WHERE BR.MaestroID = ? AND ".$where_statement." + "; + + if($limit_count > 0) + $query = $query." LIMIT ".$limit_count; + + // echo $query; + // return; + + $stmt = $db_conn->prepare($query); + $stmt->bind_param("i", $maestro_id); + $stmt->execute(); + $stmt->bind_result($record_count); + $stmt->fetch(); + $stmt->close(); + + return $record_count; +} + +function get_player_record_total_count($maestro_id, $where_statement) { + global $db_conn; + + $query = " + SELECT COUNT(*) + FROM best_record BR, player P, App A + WHERE BR.MaestroID = ? AND ".$where_statement." + "; + + // echo $query; + // return; + + $stmt = $db_conn->prepare($query); + $stmt->bind_param("i", $maestro_id); + $stmt->execute(); + $stmt->bind_result($record_count); + $stmt->fetch(); + $stmt->close(); + + return $record_count; +} + +function get_player_record_list($maestro_id, $where_statement, $limit_count) { + global $db_conn; $query = " SELECT DATE(BR.RecordDateTime) AS Date, TIME(BR.RecordDateTime) AS Time, P.Name AS Name, A.KoreanName AS Subject, BR.BestRecord AS Record FROM best_record BR, player P, App A WHERE BR.MaestroID = ? AND ".$where_statement." - ORDER BY BR.RecordDateTime ASC; + ORDER BY BR.RecordDateTime ASC "; + if($limit_count > 0) + $query = $query." LIMIT ".$limit_count; + // echo $query; // return; @@ -127,7 +192,7 @@ function get_player_record_list($maestro_id, $date_statement, $player_name_state $record_date['Record'] = $record; array_push($record_array, $record_date); } - $return_array['RecordList'] = $record_array; + // $return_array['RecordList'] = $record_array; // return $return_array; return $record_array;