Add: regist minus record for typing exam

This commit is contained in:
2019-09-26 17:44:11 +09:00
parent 6af26fb926
commit 76481a4caa
5 changed files with 212 additions and 14 deletions
+1
View File
@@ -149,6 +149,7 @@ DBService.prototype.requestWritingInfo = function(writingID, onSucceededListener
// typing exam // typing exam
DBService.prototype.addPrevHourTypingExamRecord = function(writingID, record, onSucceededListener, onFailedListener) { DBService.prototype.addPrevHourTypingExamRecord = function(writingID, record, onSucceededListener, onFailedListener) {
// addPrevHourTypingExamRecord is for only TDD
var xhr = this.makeXhr( var xhr = this.makeXhr(
"php/record/update_typing_exam_record.php", "php/record/update_typing_exam_record.php",
(function() { // onreadystatechange (function() { // onreadystatechange
+2
View File
@@ -365,6 +365,8 @@ TypingExamination.prototype.startGame = function() {
TypingExamination.prototype.timeOver = function() { TypingExamination.prototype.timeOver = function() {
var timeOverText = new TimeOverText(); var timeOverText = new TimeOverText();
sessionStorageManager.setRecord(-1 * this.typingRecordTotal); sessionStorageManager.setRecord(-1 * this.typingRecordTotal);
if(!isExperienceMaestroAccount())
this.updateResultRecord();
this.stopAndGoResult(); this.stopAndGoResult();
} }
+23 -10
View File
@@ -315,16 +315,29 @@ function showNoResultContent() {
'); ');
} }
function addRecordListItem($date, $time, $name, $subject, $record) { function addRecordListItem(date, time, name, subject, record) {
$("#record_table_content").append('\ if(record >= 0) {
<tr>\ $("#record_table_content").append('\
<th scope="row" class="text-center">' + $date + '</th>\ <tr>\
<td class="text-center">' + $time + '</td>\ <th scope="row" class="text-center">' + date + '</th>\
<td class="text-center">' + $name + '</td>\ <td class="text-center">' + time + '</td>\
<td class="text-center">' + $subject + '</td>\ <td class="text-center">' + name + '</td>\
<td class="text-right">' + $record + '</td>\ <td class="text-center">' + subject + '</td>\
</tr>\ <td class="text-right">' + record + '</td>\
'); </tr>\
');
} else {
var disqualificationRecord = -1 * record;
$("#record_table_content").append('\
<tr>\
<th scope="row" class="text-center">' + date + '</th>\
<td class="text-center">' + time + '</td>\
<td class="text-center">' + name + '</td>\
<td class="text-center">' + subject + '</td>\
<td class="text-right text-danger">(실격) ' + disqualificationRecord + '</td>\
</tr>\
');
}
} }
</script> </script>
@@ -6,6 +6,7 @@ $playerID = $_POST["playerID"];
$writingID = $_POST["writingID"]; $writingID = $_POST["writingID"];
$record = $_POST["record"]; $record = $_POST["record"];
$isPrevHourFlag = $_POST["isPrevHourFlag"]; $isPrevHourFlag = $_POST["isPrevHourFlag"];
// $isPrevHourFlag is for only TDD (addPrevHourTypingExamRecord)
include "./../lib/json_builder.php"; include "./../lib/json_builder.php";
include "./../lib/connect_db.php"; include "./../lib/connect_db.php";
@@ -28,13 +29,19 @@ $typingExam = new TypingExamCollection($dbConnector->getMysqli());
if (isset($isPrevHourFlag)) { if (isset($isPrevHourFlag)) {
addPrevHourRecord($maestroID, $playerID, $writingID, $record); addPrevHourRecord($maestroID, $playerID, $writingID, $record);
updateHighestRecord($maestroID, $playerID, $writingID, $record); if($record >= 0) {
updateHighestRecord($maestroID, $playerID, $writingID, $record);
}
$jsonBuilder->sendResultSuccess(); $jsonBuilder->sendResultSuccess();
exit; exit;
} }
updateRecord($maestroID, $playerID, $writingID, $record); if($record >= 0) {
updateHighestRecord($maestroID, $playerID, $writingID, $record); updateRecord($maestroID, $playerID, $writingID, $record);
updateHighestRecord($maestroID, $playerID, $writingID, $record);
} else {
updateMinusRecord($maestroID, $playerID, $writingID, $record);
}
$jsonBuilder->sendResultSuccess(); $jsonBuilder->sendResultSuccess();
@@ -82,4 +89,26 @@ function updateHighestRecord($maestroID, $playerID, $writingID, $record)
} }
} }
} }
function updateMinusRecord($maestroID, $playerID, $writingID, $minusRecord)
{
global $typingExam, $jsonBuilder;
$record = -1 * $minusRecord;
$thisHourRecordData = $typingExam->getThisHourRecord($maestroID, $playerID, $writingID);
// $jsonBuilder->setData("thisHourRecordData", $thisHourRecordData);
if ($thisHourRecordData["record"] === null) {
$typingExam->addRecord($maestroID, $playerID, $writingID, $minusRecord);
// $jsonBuilder->setData("record", "added : ".$record);
} else {
if($thisHourRecordData["record"] < 0) {
if ($minusRecord < $thisHourRecordData["record"]) { // ex : -300 < -100
$typingExam->updateRecord($thisHourRecordData["typingExamRecordID"], $minusRecord);
// $jsonBuilder->setData("record", "updated : ".$record);
}
}
// if $thisHourRecordData["record"] >= 0 then do nothing
}
}
?> ?>
+154 -1
View File
@@ -93,7 +93,7 @@ QUnit.test( "AppList", function( assert ) {
(function(jsonData) { (function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#0 appGroup : typing practice, English"); assert.equal(jsonData.appGroup, appGroup, "#0 appGroup : typing practice, English");
assert.equal(jsonData.appData.appList.length, 7, "appList"); assert.equal(jsonData.appData.appList.length, 7, "appList");
assert.equal(jsonData.appData.activeAppList.length, 5, "activeAppList"); assert.equal(jsonData.appData.activeAppList.length, 6, "activeAppList");
assert.equal(jsonData.appData.highestRecordList.length, 7, "highestRecordList"); assert.equal(jsonData.appData.highestRecordList.length, 7, "highestRecordList");
asyncTypingPracticeEnglish(); asyncTypingPracticeEnglish();
}).bind(this), }).bind(this),
@@ -462,6 +462,159 @@ QUnit.test( "TypingExamDB", function( assert ) {
}); });
//////////////////////////////////////////////////
// typing exam DB - minus record
QUnit.test( "TypingExamDB - minus record", function( assert ) {
var MAESTRO_ID = 3; // 삼화초
var PLAYER_ID = 35; // 박지상
var WRITING_ID = 1;
var RECORD = -117.89;
var dbService = new DBService();
dbService.setMaestroID(MAESTRO_ID);
dbService.setPlayerID(PLAYER_ID);
dbService.tddSetup(
"deleteWritingRecordAll",
(function(jsonData) { // onSucceeded
// console.log(jsonData);
addPrevHourTypingExamRecord();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
}).bind(this)
);
function addPrevHourTypingExamRecord()
{
console.log("record : " + RECORD);
dbService.addPrevHourTypingExamRecord(
WRITING_ID, //writingRecord
RECORD, // record : -117.89
(function(jsonData) { // onSucceeded
// console.log(jsonData);
updateTypingExamRecord();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
}).bind(this)
);
}
// add this hour record + 10
function updateTypingExamRecord()
{
console.log("record : " + (RECORD + 20));
dbService.updateTypingExamRecord(
WRITING_ID, //writingRecord
RECORD + 20, // record
(function(jsonData) { // onSucceeded
// console.log(jsonData);
updateTypingExamRecord2();
// getTypingExamRecord();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
}).bind(this)
);
}
// update this hour record
function updateTypingExamRecord2()
{
dbService.updateTypingExamRecord(
WRITING_ID, //writingRecord
RECORD, // record
(function(jsonData) { // onSucceeded
// console.log(jsonData);
getTypingExamHighestRecord();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
}).bind(this)
);
}
var done = assert.async();
function getTypingExamRecord() {
setTimeout(function() {
dbService.getTypingExamHighestRecord(
WRITING_ID,
(function(jsonData) { // onSucceeded
// console.log(jsonData);
var highestRecord = jsonData["highestRecordData"];
assert.equal(highestRecord["highestRecord"], 0, "highest record");
updateTypingExamRecord3();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
done();
}).bind(this)
);
});
}
function getTypingExamHighestRecord()
{
setTimeout(function() {
dbService.getTypingExamHighestRecord(
WRITING_ID,
(function(jsonData) { // onSucceeded
// console.log(jsonData);
var highestRecord = jsonData["highestRecordData"];
assert.equal(highestRecord["highestRecord"], null, "highest record");
updateTypingExamRecord3();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
done();
}).bind(this)
);
});
}
// update this hour record
function updateTypingExamRecord3()
{
console.log("record : " + (RECORD - 10));
dbService.updateTypingExamRecord(
WRITING_ID, //writingRecord
RECORD - 10, // record
(function(jsonData) { // onSucceeded
// console.log(jsonData);
getTypingExamHighestRecord2();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
done();
}).bind(this)
);
}
function getTypingExamHighestRecord2()
{
dbService.getTypingExamHighestRecord(
WRITING_ID,
(function(jsonData) { // onSucceeded
// console.log(jsonData);
var highestRecord = jsonData["highestRecordData"];
assert.equal(highestRecord["highestRecord"], null, "highest record");
done();
}).bind(this),
(function(jsonData) { // onFailed
// console.log(jsonData);
done();
}).bind(this)
);
}
});
////////////////////////////////////////////////// //////////////////////////////////////////////////
// DBConnector // DBConnector