From 4863a8d3f132c5a5b9bcd67610f00425621fd62c 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: Thu, 24 May 2018 20:48:22 +0900 Subject: [PATCH] Fix: get db data with date, time --- src/game/lib/db_connect_manager.js | 7 +++-- src/game/result/history_board.js | 32 ++++++++++++++-------- src/game/result/ranking_board.js | 24 ++++++++++------ src/game/start/start.js | 35 +++++++++++++++--------- src/web/client/start.html | 1 + src/web/server/record/history_record.php | 5 ++-- test/test_db_connect_manager.js | 22 +++++---------- 7 files changed, 75 insertions(+), 51 deletions(-) diff --git a/src/game/lib/db_connect_manager.js b/src/game/lib/db_connect_manager.js index 92602fb..d0b0943 100644 --- a/src/game/lib/db_connect_manager.js +++ b/src/game/lib/db_connect_manager.js @@ -64,7 +64,7 @@ class DBConnectManager { xhr.send("name=" + userName + "&enter_code=" + enterCode); } - requestPlayerHistory(listener) { + requestPlayerHistory(date, listener) { let historyRecordManager = new HistoryRecordManager(); /* @@ -94,7 +94,10 @@ class DBConnectManager { onFailedListener(jsonData); } }; - xhr.send("UserID=" + sessionStorageManager.playerUserID + "&AppName=" + sessionStorageManager.playingAppName); + let params = "UserID=" + sessionStorageManager.playerUserID + + "&AppName=" + sessionStorageManager.playingAppName + + "&Date=" + date; + xhr.send(params); } parseJSONtoHistoryRecord(json) { diff --git a/src/game/result/history_board.js b/src/game/result/history_board.js index a9a2321..78b4de2 100644 --- a/src/game/result/history_board.js +++ b/src/game/result/history_board.js @@ -13,20 +13,30 @@ class HistoryBoard { this.textMyRanking = game.add.text(posX, posY + 100, '', arrayTabStyle) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); - this.dbConnectManager.requestPlayerHistory( historyRecordManager => { - let maxIndex = historyRecordManager.count - 1; - if(maxIndex > 6) - maxIndex = 6; + let today = new Date(); + let date = DateUtil.getYYYYMMDD(today); + this.dbConnectManager.requestPlayerHistory( + date, + historyRecordManager => { + if(historyRecordManager.count == 0) { + console.log("history board - no data"); + return; + } - for(let i = 0; i < historyRecordManager.count; i++) { - if(i > 6) - break; + let maxIndex = historyRecordManager.count - 1; + if(maxIndex > 6) + maxIndex = 6; - let data = historyRecordManager.getAt(maxIndex); - this.printRecord(i, data.date, data.score); - maxIndex--; + for(let i = 0; i < historyRecordManager.count; i++) { + if(i > 6) + break; + + let data = historyRecordManager.getAt(maxIndex); + this.printRecord(i, data.date, data.score); + maxIndex--; + } } - }); + ); } diff --git a/src/game/result/ranking_board.js b/src/game/result/ranking_board.js index b5758f3..1b57527 100644 --- a/src/game/result/ranking_board.js +++ b/src/game/result/ranking_board.js @@ -16,16 +16,24 @@ class RankingBoard { let today = new Date(); let date = DateUtil.getYYYYMMDD(today); let time = DateUtil.getHHMMSS(today); - this.dbConnectManager.requestRanking(type, date, time, (type, rankingRecordManager) => { - let beginIndex = this.getBeginIndex(rankingRecordManager); - let endIndex = this.getEndIndex(rankingRecordManager); + this.dbConnectManager.requestRanking( + type, date, time, + (type, rankingRecordManager) => { + if(rankingRecordManager.count == 0) { + console.log("ranking board - no data"); + return; + } - for(let i = 0; i < endIndex - beginIndex; i++) { - let index = beginIndex + i; - let data = rankingRecordManager.getAt(index); - this.printRecord(type, i, data); + let beginIndex = this.getBeginIndex(rankingRecordManager); + let endIndex = this.getEndIndex(rankingRecordManager); + + for(let i = 0; i < endIndex - beginIndex; i++) { + let index = beginIndex + i; + let data = rankingRecordManager.getAt(index); + this.printRecord(type, i, data); + } } - }); + ); } getMyRank(rankingRecordManager) { diff --git a/src/game/start/start.js b/src/game/start/start.js index 11a8f28..93cf3cc 100644 --- a/src/game/start/start.js +++ b/src/game/start/start.js @@ -25,23 +25,32 @@ class Start { // contents this.printHowToPlay(appInfoManager.getHowToPlayText(sessionStorageManager.playingAppName)); this.makeStartButton(); - this.dbConnectManager.requestPlayerHistory( historyRecordManager => { - this.printChartBaseLine(); + let today = new Date(); + let date = DateUtil.getYYYYMMDD(today); + this.dbConnectManager.requestPlayerHistory( + date, + historyRecordManager => { + this.printChartBaseLine(); - let underValue = historyRecordManager.underValueForGraph(); - let upperValue = historyRecordManager.upperValueForGraph(); + if(historyRecordManager.count == 0) { + console.log("start - history record : no data"); + return; + } - let minValue = underValue - (upperValue - underValue) / 10; - let maxValue = upperValue;// + (upperValue - underValue) / 10; - for(let i = 0; i < historyRecordManager.count; i++) { - if(i > 6) - break; + let underValue = historyRecordManager.underValueForGraph(); + let upperValue = historyRecordManager.upperValueForGraph(); - let data = historyRecordManager.getAt(i); - this.drawRecordGraph(i, data.date, data.score, minValue, maxValue); + let minValue = underValue - (upperValue - underValue) / 10; + let maxValue = upperValue;// + (upperValue - underValue) / 10; + for(let i = 0; i < historyRecordManager.count; i++) { + if(i > 6) + break; + + let data = historyRecordManager.getAt(i); + this.drawRecordGraph(i, data.date, data.score, minValue, maxValue); + } } - - }); + ); // bottom diff --git a/src/web/client/start.html b/src/web/client/start.html index 6685d7f..0b762ed 100644 --- a/src/web/client/start.html +++ b/src/web/client/start.html @@ -17,6 +17,7 @@ + diff --git a/src/web/server/record/history_record.php b/src/web/server/record/history_record.php index cacdb1d..bd3a988 100644 --- a/src/web/server/record/history_record.php +++ b/src/web/server/record/history_record.php @@ -5,6 +5,7 @@ include "./../lib/send_error_code.php"; $user_id = $_POST["UserID"]; $app_name = $_POST["AppName"]; +$date = $_POST["Date"]; include "./../setup/connect_db.php"; @@ -13,14 +14,14 @@ include "./../setup/connect_db.php"; $query = " SELECT DATE(DateTime) AS Date, MAX(Score) AS HighScore, AppName AS AppName FROM moty_record D - WHERE UserID = ? + WHERE UserID = ? AND DATE(D.DateTime) < DATE(?) AND AppName = ? GROUP BY DATE(DateTime) ORDER BY DateTime ASC LIMIT 7; "; $stmt = $db_conn->prepare($query); -$stmt->bind_param('s', $user_id); +$stmt->bind_param('sss', $user_id, $date, $app_name); $stmt->execute(); $stmt->bind_result($date, $score, $app_name); diff --git a/test/test_db_connect_manager.js b/test/test_db_connect_manager.js index dda5f52..e83a506 100644 --- a/test/test_db_connect_manager.js +++ b/test/test_db_connect_manager.js @@ -25,23 +25,21 @@ QUnit.test( "User login", function( assert ) { QUnit.test( "Player history", function( assert ) { sessionStorageManager.playerUserID = "8"; // 부현율 - sessionStorageManager.playingAppName = "space_invaders"; + sessionStorageManager.playingAppName = "korean_word"; let date = "2018-05-16"; - let time = "14:50:00"; let done = assert.async(); setTimeout(function() { dbConnectManager.requestPlayerHistory( + date, (historyRecordManager) => { - console.log(historyRecordManager); - - assert.equal(historyRecordManager.getAppNameAt(0), "korean_left_lower"); - assert.equal(historyRecordManager.getDateAt(0), "2018-04-02"); - assert.equal(historyRecordManager.getScoreAt(0), 22); + assert.equal(historyRecordManager.getAppNameAt(0), "korean_word"); + assert.equal(historyRecordManager.getDateAt(0), "2018-04-18"); + assert.equal(historyRecordManager.getScoreAt(0), 51.6102); assert.equal(historyRecordManager.getAppNameAt(4), "korean_word"); - assert.equal(historyRecordManager.getDateAt(4), "2018-05-09"); - assert.equal(historyRecordManager.getScoreAt(4), 85.1965); + assert.equal(historyRecordManager.getDateAt(4), "2018-05-14"); + assert.equal(historyRecordManager.getScoreAt(4), 101.78); done(); } @@ -62,8 +60,6 @@ QUnit.test( "Player ranking", function( assert ) { date, time, (type, rankingRecordManager) => { - console.log(rankingRecordManager); - assert.equal(rankingRecordManager.getRankAt(0), 1, "hour"); assert.equal(rankingRecordManager.getScoreAt(0), 302.921, "hour"); assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour"); @@ -85,8 +81,6 @@ QUnit.test( "Player ranking", function( assert ) { date, time, (type, rankingRecordManager) => { - console.log(rankingRecordManager); - assert.equal(rankingRecordManager.getRankAt(0), 1, "day"); assert.equal(rankingRecordManager.getScoreAt(0), 313.304, "day"); assert.equal(rankingRecordManager.getUserIDAt(0), 19, "day"); @@ -108,8 +102,6 @@ QUnit.test( "Player ranking", function( assert ) { date, time, (type, rankingRecordManager) => { - console.log(rankingRecordManager); - assert.equal(rankingRecordManager.getRankAt(0), 1, "month"); assert.equal(rankingRecordManager.getScoreAt(0), 617.231, "month"); assert.equal(rankingRecordManager.getUserIDAt(0), 50, "month");