Fix: get ranking with date, time

This commit is contained in:
2018-05-24 18:22:20 +09:00
parent 8e2cf7f38f
commit 82e290db86
10 changed files with 85 additions and 21 deletions
+13
View File
@@ -0,0 +1,13 @@
class DateUtil {
static getYYYYMMDD(date) {
return date.toISOString().slice(0,10);
}
static getHHMMSS(date) {
return StringUtil.getNumberStartWithZero(date.getHours(), 2) + ":"
+ StringUtil.getNumberStartWithZero(date.getMinutes(), 2) + ":"
+ StringUtil.getNumberStartWithZero(date.getSeconds(), 2);
}
}
+4 -2
View File
@@ -140,7 +140,7 @@ class DBConnectManager {
*/ */
} }
requestRanking(type, listener) { requestRanking(type, date, time, listener) {
let rankingRecordManager = new RankingRecordManager(); let rankingRecordManager = new RankingRecordManager();
/* /*
@@ -171,7 +171,9 @@ class DBConnectManager {
} }
}; };
let params = "UserID=" + sessionStorageManager.playerUserID let params = "UserID=" + sessionStorageManager.playerUserID
+ "&AppName=" + sessionStorageManager.playingAppName; + "&AppName=" + sessionStorageManager.playingAppName
+ "&Date=" + date
+ "&Time=" + time;
xhr.send(params); xhr.send(params);
} }
+5
View File
@@ -20,4 +20,9 @@ class StringUtil {
return numberWithCommas + " 점"; return numberWithCommas + " 점";
} }
static getNumberStartWithZero(number, digitCount) {
let n = number + '';
return n.length >= digitCount ? n : new Array(digitCount - n.length + 1).join('0') + n;
}
} }
+4 -1
View File
@@ -13,7 +13,10 @@ class RankingBoard {
requestRanking(type, rankingRecordManager) { requestRanking(type, rankingRecordManager) {
this.dbConnectManager.requestRanking(type, (type, rankingRecordManager) => { 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 beginIndex = this.getBeginIndex(rankingRecordManager);
let endIndex = this.getEndIndex(rankingRecordManager); let endIndex = this.getEndIndex(rankingRecordManager);
+1
View File
@@ -17,6 +17,7 @@
<!-- library source files --> <!-- library source files -->
<script src="../../game/lib/number_util.js"></script> <script src="../../game/lib/number_util.js"></script>
<script src="../../game/lib/string_util.js"></script> <script src="../../game/lib/string_util.js"></script>
<script src="../../game/lib/date_util.js"></script>
<script src="../../game/lib/history_record_manager.js"></script> <script src="../../game/lib/history_record_manager.js"></script>
<script src="../../game/lib/ranking_record_manager.js"></script> <script src="../../game/lib/ranking_record_manager.js"></script>
<script src="../../game/lib/db_connect_manager.js"></script> <script src="../../game/lib/db_connect_manager.js"></script>
+12 -1
View File
@@ -5,6 +5,8 @@ include "./../lib/send_error_code.php";
$user_id = $_POST["UserID"]; $user_id = $_POST["UserID"];
$app_name = $_POST["AppName"]; $app_name = $_POST["AppName"];
$date = $_POST["Date"];
$time = $_POST["Time"];
include "./../setup/connect_db.php"; include "./../setup/connect_db.php";
@@ -19,6 +21,7 @@ $query = "
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
*/ */
/*
$query = " $query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U FROM moty_record D, moty_user U
@@ -26,8 +29,16 @@ $query = "
GROUP BY D.userID GROUP BY D.userID
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
*/
$query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U
WHERE D.userID = U.userID AND DATE(D.DateTime) = DATE(?) AND AppName = ?
GROUP BY D.userID
ORDER BY max(D.Score) DESC;
";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param('s', $app_name); $stmt->bind_param('ss', $date, $app_name);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($userID, $name, $high_score); $stmt->bind_result($userID, $name, $high_score);
+13 -2
View File
@@ -5,6 +5,8 @@ include "./../lib/send_error_code.php";
$user_id = $_POST["UserID"]; $user_id = $_POST["UserID"];
$app_name = $_POST["AppName"]; $app_name = $_POST["AppName"];
$date = $_POST["Date"];
$time = $_POST["Time"];
include "./../setup/connect_db.php"; include "./../setup/connect_db.php";
@@ -19,15 +21,24 @@ $query = "
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
*/ */
/*
$query = " $query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U FROM moty_record D, moty_user U
WHERE D.userID = U.userID AND DATE(D.DateTime) = DATE('2018-05-16') AND HOUR(D.DateTime) = HOUR('13:05:05') AND AppName = 'korean_word' WHERE D.userID = U.userID AND DATE(D.DateTime) = DATE('?') AND HOUR(D.DateTime) = HOUR('?') AND AppName = '?'
GROUP BY D.userID
ORDER BY max(D.Score) DESC;
";
*/
$query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U
WHERE D.userID = U.userID AND DATE(D.DateTime) = DATE(?) AND HOUR(D.DateTime) = HOUR(?) AND AppName = ?
GROUP BY D.userID GROUP BY D.userID
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param('s', $app_name); $stmt->bind_param('sss', $date, $time, $app_name);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($userID, $name, $high_score); $stmt->bind_result($userID, $name, $high_score);
+12 -1
View File
@@ -5,6 +5,8 @@ include "./../lib/send_error_code.php";
$user_id = $_POST["UserID"]; $user_id = $_POST["UserID"];
$app_name = $_POST["AppName"]; $app_name = $_POST["AppName"];
$date = $_POST["Date"];
$time = $_POST["Time"];
include "./../setup/connect_db.php"; include "./../setup/connect_db.php";
@@ -19,6 +21,7 @@ $query = "
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
*/ */
/*
$query = " $query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U FROM moty_record D, moty_user U
@@ -26,8 +29,16 @@ $query = "
GROUP BY D.userID GROUP BY D.userID
ORDER BY max(D.Score) DESC; ORDER BY max(D.Score) DESC;
"; ";
*/
$query = "
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
FROM moty_record D, moty_user U
WHERE D.userID = U.userID AND MONTH(D.DateTime) = MONTH(?) AND AppName = ?
GROUP BY D.userID
ORDER BY max(D.Score) DESC;
";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param('s', $app_name); $stmt->bind_param('ss', $date, $app_name);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($userID, $name, $high_score); $stmt->bind_result($userID, $name, $high_score);
+2
View File
@@ -11,6 +11,8 @@
<div id="qunit-fixture"></div> <div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script> <script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script>
<script src="../src/game/lib/string_util.js"></script>
<script src="../src/game/lib/date_util.js"></script>
<script src="../src/game/lib/app_info_manager.js"></script> <script src="../src/game/lib/app_info_manager.js"></script>
<script src="../src/game/lib/session_storage_manager.js"></script> <script src="../src/game/lib/session_storage_manager.js"></script>
<script src="../src/game/global/global_variables.js"></script> <script src="../src/game/global/global_variables.js"></script>
+19 -14
View File
@@ -50,8 +50,7 @@ QUnit.test( "Player history", function( assert ) {
}); });
QUnit.test( "Player ranking", function( assert ) { QUnit.test( "Player ranking", function( assert ) {
sessionStorageManager.playerUserID = "8"; // 부현율 sessionStorageManager.playingAppName = "korean_word";
sessionStorageManager.playingAppName = "space_invaders";
let date = "2018-05-16"; let date = "2018-05-16";
let time = "14:50:00"; let time = "14:50:00";
@@ -60,18 +59,20 @@ QUnit.test( "Player ranking", function( assert ) {
setTimeout(function() { setTimeout(function() {
dbConnectManager.requestRanking( dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_HOUR, DBConnectManager.TYPE_MY_RANKING_HOUR,
date,
time,
(type, rankingRecordManager) => { (type, rankingRecordManager) => {
console.log(rankingRecordManager); console.log(rankingRecordManager);
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour"); assert.equal(rankingRecordManager.getRankAt(0), 1, "hour");
assert.equal(rankingRecordManager.getScoreAt(0), 245.547, "hour"); assert.equal(rankingRecordManager.getScoreAt(0), 302.921, "hour");
assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour"); assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour");
assert.equal(rankingRecordManager.getUserNameAt(0), "김지유", "hour"); assert.equal(rankingRecordManager.getUserNameAt(0), "김지유", "hour");
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour"); assert.equal(rankingRecordManager.getRankAt(5), 6, "hour");
assert.equal(rankingRecordManager.getScoreAt(5), 52.7276, "hour"); assert.equal(rankingRecordManager.getScoreAt(5), 128.436, "hour");
assert.equal(rankingRecordManager.getUserIDAt(5), 14, "hour"); assert.equal(rankingRecordManager.getUserIDAt(5), 22, "hour");
assert.equal(rankingRecordManager.getUserNameAt(5), "송가윤", "hour"); assert.equal(rankingRecordManager.getUserNameAt(5), "모윤건", "hour");
done(); done();
} }
@@ -81,6 +82,8 @@ QUnit.test( "Player ranking", function( assert ) {
setTimeout(function() { setTimeout(function() {
dbConnectManager.requestRanking( dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_DAY, DBConnectManager.TYPE_MY_RANKING_DAY,
date,
time,
(type, rankingRecordManager) => { (type, rankingRecordManager) => {
console.log(rankingRecordManager); console.log(rankingRecordManager);
@@ -102,18 +105,20 @@ QUnit.test( "Player ranking", function( assert ) {
setTimeout(function() { setTimeout(function() {
dbConnectManager.requestRanking( dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_MONTH, DBConnectManager.TYPE_MY_RANKING_MONTH,
date,
time,
(type, rankingRecordManager) => { (type, rankingRecordManager) => {
console.log(rankingRecordManager); console.log(rankingRecordManager);
assert.equal(rankingRecordManager.getRankAt(0), 1); assert.equal(rankingRecordManager.getRankAt(0), 1, "month");
assert.equal(rankingRecordManager.getScoreAt(0), 617.231); assert.equal(rankingRecordManager.getScoreAt(0), 617.231, "month");
assert.equal(rankingRecordManager.getUserIDAt(0), 50); assert.equal(rankingRecordManager.getUserIDAt(0), 50, "month");
assert.equal(rankingRecordManager.getUserNameAt(0), "강민준"); assert.equal(rankingRecordManager.getUserNameAt(0), "강민준", "month");
assert.equal(rankingRecordManager.getRankAt(17), 18); assert.equal(rankingRecordManager.getRankAt(17), 18, "month");
assert.equal(rankingRecordManager.getScoreAt(17), 216.279); assert.equal(rankingRecordManager.getScoreAt(17), 216.279, "month");
assert.equal(rankingRecordManager.getUserIDAt(17), 9); assert.equal(rankingRecordManager.getUserIDAt(17), 9, "month");
assert.equal(rankingRecordManager.getUserNameAt(17), "신예성"); assert.equal(rankingRecordManager.getUserNameAt(17), "신예성", "month");
done(); done();
} }