Add: count record list, search all
This commit is contained in:
@@ -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(
|
||||
'<span class="text-info">표시 : ' + count + '개 / 총 : ' + count + '개</span>'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
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('\
|
||||
<tr>\
|
||||
<th scope="row" colspan="5">데이터가 없습니다.</th>\
|
||||
<th scope="row" class="table-warning text-center" colspan="5">데이터가 없습니다.</th>\
|
||||
</tr>\
|
||||
');
|
||||
}
|
||||
@@ -356,9 +375,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
|
||||
|
||||
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickers1Week();">1W</button>
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickers1Month();">1M</button>
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickers1Year();">1Y</button>
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickersForWeeks(1);">1W</button>
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickersForMonths(1);">1M</button>
|
||||
<button type="button" class="btn btn-primary" onClick="setDatePickersForYears(1);">1Y</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -374,7 +393,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
|
||||
<span class="badge badge-pill badge-info" onClick='showModal("recordPopupModal", "recordPopupContent", "search_record_player_name");' style="cursor: pointer;">?</span>
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="player_name" class="form-control" placeholder="학생 이름을 입력하세요.">
|
||||
<input type="text" id="player_name_list" class="form-control" placeholder="학생 이름을 입력하세요.">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -412,7 +431,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
|
||||
<br/>
|
||||
|
||||
<button type="button" class="btn btn-primary" onClick="requestPlayerRecordList();">검색 (50개까지 보기)</button>
|
||||
<button type="button" class="btn btn-primary" disabled>검색 (모든 데이터 보기)</button>
|
||||
<button type="button" id="search_all" class="btn btn-primary disabled" onClick="requestPlayerRecordListAll();">검색 (모든 데이터 보기)</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -427,8 +446,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
|
||||
<button type="button" class="btn btn-primary" onClick="copyToClipboard();">표 내용을 클립보드에 복사</button>
|
||||
<span class="badge badge-pill badge-info" onClick='showModal("recordPopupModal", "recordPopupContent", "search_record_copy_result_to_clipboard");' style="cursor: pointer;">?</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" disabled>표 내용을 엑셀 파일로 다운로드</button>
|
||||
<div id="record_count" class="col-auto">
|
||||
<span>표시 : 0개 / 총 : 0개</span>
|
||||
<!-- <button type="button" class="btn btn-primary" disabled>표 내용을 엑셀 파일로 다운로드</button> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -56,26 +59,31 @@ function makeSubjectSentence($app_id) {
|
||||
switch($app_id) {
|
||||
case 1000: // korean practice
|
||||
$subject_statement = $subject_statement."A.AppID < 9";
|
||||
break;
|
||||
|
||||
case 1001: // english practice
|
||||
$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";
|
||||
break;
|
||||
|
||||
case 1003: // english test
|
||||
$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;
|
||||
|
||||
Reference in New Issue
Block a user