Add: get_typing_exam_ranking_records

This commit is contained in:
2019-07-18 11:55:49 +09:00
parent 1fe0b08e9f
commit 1f6d91f301
7 changed files with 346 additions and 33 deletions
+101 -2
View File
@@ -193,7 +193,7 @@ DBService.prototype.getTypingExamHighestRecord = function(writingID, onSucceeded
);
}
DBService.prototype.requestWritingPlayerHistory = function(writingID, date, onSucceededListener, onFailedListener) {
DBService.prototype.requestTypingExamPlayerHistory = function(writingID, date, onSucceededListener, onFailedListener) {
/*
var historyRecordManager = new HistoryRecordManager();
this.loadTempPlayerHistory(historyRecordManager);
@@ -224,7 +224,6 @@ DBService.prototype.requestWritingPlayerHistory = function(writingID, date, onSu
);
}
DBService.prototype.parseJSONtoHistoryRecord = function(jsonData) {
var historyRecordManager = new HistoryRecordManager();
@@ -276,3 +275,103 @@ DBService.prototype.loadTempRanking = function(rankingRecordManager) {
rankingRecordManager.push(new RankingRecord(15, 15, "우습지", 10));
rankingRecordManager.push(new RankingRecord(16, 16, "하하하", 4));
}
DBService.prototype.requestTypingExamRanking = function(type, writingID, date, time, onSucceededListener, onFailedListener) {
/*
var rankingRecordManager = new RankingRecordManager();
this.loadTempRanking(rankingRecordManager);
if(listener !== null)
listener(rankingRecordManager);
return;
}
*/
var xhr = this.makeXhr(
this.getRankingRecordUrl(type),
(function() { // onreadystatechange
if(xhr.readyState == 4 && xhr.status == 200) {
var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON.result == "success")
onSucceededListener(type, this.parseJSONtoRankingRecord(type, replyJSON));
else
onFailedListener(replyJSON);
}
}).bind(this)
);
xhr.send(
"maestroID=" + this.maestroID
+ "&writingID=" + writingID
+ "&date=" + date
+ "&time=" + time
);
}
DBService.prototype.getRankingRecordUrl = function(type) {
var rankingRecordURL = this.webPath + "web/php/record/";
switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR:
case DBConnectManager.TYPE_ALL_RANKING_HOUR:
rankingRecordURL += "get_typing_exam_ranking_record_hour.php";
break;
case DBConnectManager.TYPE_MY_RANKING_DAY:
case DBConnectManager.TYPE_ALL_RANKING_DAY:
rankingRecordURL += "get_typing_exam_ranking_record_day.php";
break;
case DBConnectManager.TYPE_MY_RANKING_MONTH:
case DBConnectManager.TYPE_ALL_RANKING_MONTH:
rankingRecordURL += "get_typing_exam_ranking_record_month.php";
break;
}
return rankingRecordURL;
}
DBService.prototype.parseJSONtoRankingRecord = function(type, jsonData) {
var rankingRecordManager = new RankingRecordManager();
if(typeof jsonData === "undefined")
return rankingRecordManager;
var replyJSON = null;
switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR:
case DBConnectManager.TYPE_ALL_RANKING_HOUR:
replyJSON = jsonData.rankingHour;
break;
case DBConnectManager.TYPE_MY_RANKING_DAY:
case DBConnectManager.TYPE_ALL_RANKING_DAY:
replyJSON = jsonData.rankingDay;
break;
case DBConnectManager.TYPE_MY_RANKING_MONTH:
case DBConnectManager.TYPE_ALL_RANKING_MONTH:
replyJSON = jsonData.rankingMonth;
break;
}
if(replyJSON === null)
return rankingRecordManager;
var count = replyJSON.length;
for(var i = 0; i < count; i++) {
var record = new RankingRecord(
i + 1,
replyJSON[i]["PlayerID"],
replyJSON[i]["Name"],
replyJSON[i]["HighScore"]
);
rankingRecordManager.push(record);
}
return rankingRecordManager;
}
+1 -1
View File
@@ -26,7 +26,7 @@ function HistoryBoard(dataType) {
this.date = DateUtil.getYYYYMMDD(today);
if(isTypingExamApp()) {
this.dbService.requestWritingPlayerHistory(
this.dbService.requestTypingExamPlayerHistory(
sessionStorageManager.getWritingID(),
this.date,
(function(historyRecordManager) {
+54 -30
View File
@@ -20,6 +20,11 @@ function RankingBoard(type) {
this.makeMedalSprites();
this.dbConnectManager = new DBConnectManager();
this.dbService = new DBService();
this.dbService.setMaestroID(sessionStorageManager.getMaestroID());
this.dbService.setPlayerID(sessionStorageManager.getPlayerID());
setTimeout(
(function() {
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_HOUR);
@@ -37,42 +42,61 @@ RankingBoard.prototype.requestRanking = function(type) {
var date = DateUtil.getYYYYMMDD(today);
var time = DateUtil.getHHMMSS(today);
this.dbConnectManager.requestRanking(
type,
sessionStorageManager.getMaestroID(),
date,
time,
(function(type, rankingRecordManager) {
if(rankingRecordManager.getCount() == 0) {
console.log("ranking board - no data");
return;
}
if(isTypingExamApp()) {
this.dbService.requestTypingExamRanking(
type,
sessionStorageManager.getWritingID(),
date,
time,
(function(type, rankingRecordManager) {
this.onReceiveRankingData(type, rankingRecordManager);
}).bind(this),
(function(jsonData) {
console.log(jsonData);
}).bind(this)
);
} else {
this.dbConnectManager.requestRanking(
type,
sessionStorageManager.getMaestroID(),
date,
time,
(function(type, rankingRecordManager) {
this.onReceiveRankingData(type, rankingRecordManager);
}).bind(this)
);
}
}
var beginIndex = this.getBeginIndex(rankingRecordManager);
var endIndex = this.getEndIndex(rankingRecordManager);
RankingBoard.prototype.onReceiveRankingData = function(type, rankingRecordManager) {
if(rankingRecordManager.getCount() == 0) {
console.log("ranking board - no data");
return;
}
for(var i = 0; i < endIndex - beginIndex; i++) {
var index = beginIndex + i;
var data = rankingRecordManager.getAt(index);
this.printRecord(type, i, data);
}
var beginIndex = this.getBeginIndex(rankingRecordManager);
var endIndex = this.getEndIndex(rankingRecordManager);
switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR:
this.showMedal(this.medalHour, this.getMyRank(rankingRecordManager));
break;
for(var i = 0; i < endIndex - beginIndex; i++) {
var index = beginIndex + i;
var data = rankingRecordManager.getAt(index);
this.printRecord(type, i, data);
}
case DBConnectManager.TYPE_MY_RANKING_DAY:
this.showMedal(this.medalDay, this.getMyRank(rankingRecordManager));
break;
switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR:
this.showMedal(this.medalHour, this.getMyRank(rankingRecordManager));
break;
case DBConnectManager.TYPE_MY_RANKING_MONTH:
this.showMedal(this.medalMonth, this.getMyRank(rankingRecordManager));
break;
case DBConnectManager.TYPE_MY_RANKING_DAY:
this.showMedal(this.medalDay, this.getMyRank(rankingRecordManager));
break;
}
}).bind(this)
);
case DBConnectManager.TYPE_MY_RANKING_MONTH:
this.showMedal(this.medalMonth, this.getMyRank(rankingRecordManager));
break;
}
}
RankingBoard.prototype.getMyRank = function(rankingRecordManager) {