Fix: menu app data list

This commit is contained in:
2019-08-10 17:44:29 +09:00
parent 467eef9763
commit 8e7fe46905
3 changed files with 213 additions and 17 deletions
+34 -6
View File
@@ -178,26 +178,54 @@ class MenuCollection extends DBMethodContainer
// highest record list // highest record list
public function getHighestRecordList($maestroID, $playerID, $appGroup, $language) public function getHighestRecordList($maestroID, $playerID, $appList)
{ {
switch($appGroup) { switch($appGroup) {
case 0: // typing finger position case 0: // typing finger position
case 1: // typing practice case 1: // typing practice
case 3: // typing play return $this->getTypingHighestRecordList($maestroID, $playerID, $appList);
return $this->getTypingHighestRecordList($maestroID, $playerID, $appGroup, $language);
case 2: case 2:
// return $this->getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language); // return $this->getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language);
case 3: // typing play
case 4: // mouse play case 4: // mouse play
// return $this->getMouseHighestRecordList($maestroID, $playerID, $appGroup); return null;
break; break;
} }
} }
public function getTypingHighestRecordList($maestroID, $playerID, $appGroup, $language) public function getTypingHighestRecordList($maestroID, $playerID, $appList)
{ {
return null; $highestRecordArray = array();
$count = count($appList);
for($i = 0; $i < $count; $i++) {
$appID = $appList[$i]["appID"];
$highestRecord["appID"] = $appID;
$highestRecord["HighestRecord"] = $this->getTypingHighestRecord($maestroID, $playerID, $appID);
array_push($highestRecordArray, $highestRecord);
}
return $highestRecordArray;
}
public function getTypingHighestRecord($maestroID, $playerID, $appID)
{
$query = "
SELECT HighestRecord
FROM app_highest_record
WHERE MaestroID=? AND PlayerID=? AND AppID=?";
$stmt = $this->mysqli->prepare($query);
$stmt->bind_param("iii", $maestroID, $playerID, $appID);
$stmt->execute();
$stmt->bind_result($highestRecord);
$returnValue = $stmt->fetch();
$stmt->close();
if($returnValue === NULL || $returnValue === FALSE)
return 0;
return $highestRecord;
} }
public function getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language) public function getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language)
+1 -1
View File
@@ -28,7 +28,7 @@ include "./../db/menu_collection.php";
$menuCollection = new MenuCollection($dbConnector->getMysqli()); $menuCollection = new MenuCollection($dbConnector->getMysqli());
$appList = $menuCollection->getAppList($maestroID, $playerID, $appGroup, $language); $appList = $menuCollection->getAppList($maestroID, $playerID, $appGroup, $language);
$activeAppList = $menuCollection->getActiveAppList($maestroID, $playerID, $appGroup, $language); $activeAppList = $menuCollection->getActiveAppList($maestroID, $playerID, $appGroup, $language);
$highestRecordList = $menuCollection->getHighestRecordList($maestroID, $playerID, $appGroup, $language); $highestRecordList = $menuCollection->getHighestRecordList($maestroID, $playerID, $appList);
$jsonBuilder->setData("appGroupName", $menuCollection->getAppGroupName($appGroup)); $jsonBuilder->setData("appGroupName", $menuCollection->getAppGroupName($appGroup));
$jsonBuilder->setData("languageName", $menuCollection->getLanguageName($language)); $jsonBuilder->setData("languageName", $menuCollection->getLanguageName($language));
+178 -10
View File
@@ -9,7 +9,28 @@ QUnit.test( "AppList", function( assert ) {
dbService.setMaestroID(MAESTRO_ID); dbService.setMaestroID(MAESTRO_ID);
dbService.setPlayerID(PLAYER_ID); dbService.setPlayerID(PLAYER_ID);
var done = assert.async(); var asyncFingerPositionKorean = assert.async();
setTimeout(function() {
var appGroup = 0; // finger position
var language = 0; // Korean
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "appGroup : finger position, Korean");
assert.equal(jsonData.appList.length, 8, "appList");
assert.equal(jsonData.activeAppList.length, 8, "activeAppList");
assert.equal(jsonData.highestRecordList.length, 8, "highestRecordList");
asyncFingerPositionKorean();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncFingerPositionKorean();
}).bind(this)
);
});
var asyncFingerPositionEnglish = assert.async();
setTimeout(function() { setTimeout(function() {
var appGroup = 0; // finger position var appGroup = 0; // finger position
var language = 1; // English var language = 1; // English
@@ -17,20 +38,20 @@ QUnit.test( "AppList", function( assert ) {
appGroup, appGroup,
language, language,
(function(jsonData) { (function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "appGroup : finger position, English"); assert.equal(jsonData.appGroup, appGroup, "#1 appGroup : finger position, English");
assert.equal(jsonData.appList.length, 7, "appList"); assert.equal(jsonData.appList.length, 7, "appList");
assert.equal(jsonData.activeAppList.length, 5, "activeAppList"); assert.equal(jsonData.activeAppList.length, 5, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList"); assert.equal(jsonData.highestRecordList.length, 7, "highestRecordList");
done(); asyncFingerPositionEnglish();
}).bind(this), }).bind(this),
(function(jsonData) { (function(jsonData) {
console.log(replyJSON); console.log(replyJSON);
done(); asyncFingerPositionEnglish();
}).bind(this) }).bind(this)
); );
}); });
var done2 = assert.async(); var asyncPracticeKorean = assert.async();
setTimeout(function() { setTimeout(function() {
var appGroup = 1; // typing practice var appGroup = 1; // typing practice
var language = 0; // Korean var language = 0; // Korean
@@ -38,15 +59,162 @@ QUnit.test( "AppList", function( assert ) {
appGroup, appGroup,
language, language,
(function(jsonData) { (function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "appGroup : typing practice, Korean"); assert.equal(jsonData.appGroup, appGroup, "#2 appGroup : typing practice, Korean");
assert.equal(jsonData.appList.length, 10, "appList"); assert.equal(jsonData.appList.length, 10, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList"); assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList"); assert.equal(jsonData.highestRecordList.length, 10, "highestRecordList");
done2(); asyncPracticeKorean();
}).bind(this), }).bind(this),
(function(jsonData) { (function(jsonData) {
console.log(replyJSON); console.log(replyJSON);
done2(); asyncPracticeKorean();
}).bind(this)
);
});
var asyncPracticeEnglish = assert.async();
setTimeout(function() {
var appGroup = 1; // typing practice
var language = 1; // English
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#2 appGroup : typing practice, English");
assert.equal(jsonData.appList.length, 8, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList.length, 10, "highestRecordList");
asyncPracticeEnglish();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncPracticeEnglish();
}).bind(this)
);
});
var asyncTestKorean = assert.async();
setTimeout(function() {
var appGroup = 2; // typing test
var language = 0; // Korean
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#3 appGroup : typing test, Korean");
assert.equal(jsonData.appList.length, 10, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList.length, 10, "highestRecordList");
asyncTestKorean();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncTestKorean();
}).bind(this)
);
});
var asyncTestEnglish = assert.async();
setTimeout(function() {
var appGroup = 2; // typing test
var language = 1; // English
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#3 appGroup : typing test, English");
assert.equal(jsonData.appList, 10, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList.length, 10, "highestRecordList");
asyncTestEnglish();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncTestEnglish();
}).bind(this)
);
});
var asyncTypingPlayKorean = assert.async();
setTimeout(function() {
var appGroup = 3; // typing play
var language = 0; // Korean
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#4 appGroup : typing play, Korean");
assert.equal(jsonData.appList.length, 2, "appList");
assert.equal(jsonData.activeAppList.length, 2, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList");
asyncTypingPlayKorean();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncTypingPlayKorean();
}).bind(this)
);
});
var asyncTypingPlayEnglish = assert.async();
setTimeout(function() {
var appGroup = 3; // typing play
var language = 1; // English
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#4 appGroup : typing play, English");
assert.equal(jsonData.appList.length, 2, "appList");
assert.equal(jsonData.activeAppList.length, 2, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList");
asyncTypingPlayEnglish();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncTypingPlayEnglish();
}).bind(this)
);
});
var asyncMousePlayKorean = assert.async();
setTimeout(function() {
var appGroup = 4; // mouse play
var language = 0; // Korean
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#5 appGroup : mouse play, Korean");
assert.equal(jsonData.appList.length, 10, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList");
asyncMousePlayKorean();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncMousePlayKorean();
}).bind(this)
);
});
var asyncMousePlayEnglish = assert.async();
setTimeout(function() {
var appGroup = 4; // mouse play
var language = 1; // English
dbService.requestMainMenuAppData(
appGroup,
language,
(function(jsonData) {
assert.equal(jsonData.appGroup, appGroup, "#5 appGroup : mouse play, English");
assert.equal(jsonData.appList.length, 10, "appList");
assert.equal(jsonData.activeAppList.length, 10, "activeAppList");
assert.equal(jsonData.highestRecordList, null, "highestRecordList");
asyncMousePlayEnglish();
}).bind(this),
(function(jsonData) {
console.log(replyJSON);
asyncMousePlayEnglish();
}).bind(this) }).bind(this)
); );
}); });