From 467eef9763241a9996d98dba14520133caa37598 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, 8 Aug 2019 11:07:31 +0900 Subject: [PATCH] Add: getTypingAppList, getTypingActiveAppList --- src/web/php/db/menu_collection.php | 97 +++++++++++++++++++++++------- src/web/php/menu/menu_list.php | 8 ++- test/tdd.js | 36 +++++++++-- 3 files changed, 112 insertions(+), 29 deletions(-) diff --git a/src/web/php/db/menu_collection.php b/src/web/php/db/menu_collection.php index e38a82f..b7d3f0d 100644 --- a/src/web/php/db/menu_collection.php +++ b/src/web/php/db/menu_collection.php @@ -56,7 +56,10 @@ class MenuCollection extends DBMethodContainer } } - public function getAppData($maestroID, $playerID, $appGroup, $language) + + + // app list + public function getAppList($maestroID, $playerID, $appGroup, $language) { switch($appGroup) { case 0: // typing finger position @@ -97,21 +100,19 @@ class MenuCollection extends DBMethodContainer */ $query = " - SELECT A.AppID, A.AppName, A.KoreanName, A.AppType + SELECT A.AppID, A.KoreanName FROM app AS A - WHERE A.AppType=?"; + WHERE A.AppType=? AND A.Status=1"; $stmt = $this->mysqli->prepare($query); $stmt->bind_param("i", $this->getTypingAppType($appGroup, $language)); $stmt->execute(); - $stmt->bind_result($app_id, $app_name, $korean_name, $app_type); + $stmt->bind_result($appID, $koreanName); $resultArray = array(); while($stmt->fetch()) { $rowArray = array(); - $rowArray["AppID"] = $app_id; - $rowArray["AppName"] = $app_name; - $rowArray["KoreanName"] = $korean_name; - $rowArray["AppType"] = $app_type; + $rowArray["appID"] = $appID; + $rowArray["koreanName"] = $koreanName; array_push($resultArray, $rowArray); } $stmt->close(); @@ -121,31 +122,47 @@ class MenuCollection extends DBMethodContainer public function getMouseAppList($maestroID, $playerID, $appGroup, $language) { - return null; } public function getTypingExamWritingList($maestroID, $playerID, $appGroup, $language) { - $writer = "system"; - $languageName = $this->getLanguageName($language); + } + + + // active app list + public function getActiveAppList($maestroID, $playerID, $appGroup, $language) + { + switch($appGroup) { + case 0: // typing finger position + case 1: // typing practice + case 3: // typing play + return $this->getTypingActiveAppList($maestroID, $playerID, $appGroup, $language); + + case 2: + // return $this->getTypingExamWritingList($maestroID, $playerID, $appGroup, $language); + break; + + case 4: // mouse play + // return $this->getMouseActiveAppList($maestroID, $playerID, $appGroup); + } + } + + public function getTypingActiveAppList($maestroID, $playerID, $appGroup, $language) + { $query = " - SELECT WritingID, Language, Name, Filename, LetterCount - FROM writing - WHERE Writer = ? AND Language = ?"; + SELECT A.AppID + FROM app AS A + INNER JOIN active_app AS AA ON A.AppID = AA.AppID AND A.AppType = ? AND AA.MaestroID=?"; $stmt = $this->mysqli->prepare($query); - $stmt->bind_param("ss", $writer, $languageName); + $stmt->bind_param("ii", $this->getTypingAppType($appGroup, $language), $maestroID); $stmt->execute(); - $stmt->bind_result($writingID, $language, $name, $filename, $letterCount); + $stmt->bind_result($appID); $resultArray = array(); while($stmt->fetch()) { $rowArray = array(); - $rowArray["writingID"] = $writingID; - $rowArray["language"] = $language; - $rowArray["name"] = $name; - $rowArray["filename"] = $filename; - $rowArray["letterCount"] = $letterCount; + $rowArray["appID"] = $appID; array_push($resultArray, $rowArray); } $stmt->close(); @@ -153,6 +170,44 @@ class MenuCollection extends DBMethodContainer return $resultArray; } + public function getMouseActiveAppList($maestroID, $playerID, $appGroup, $language) + { + return null; + } + + + + // highest record list + public function getHighestRecordList($maestroID, $playerID, $appGroup, $language) + { + switch($appGroup) { + case 0: // typing finger position + case 1: // typing practice + case 3: // typing play + return $this->getTypingHighestRecordList($maestroID, $playerID, $appGroup, $language); + + case 2: + // return $this->getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language); + + case 4: // mouse play + // return $this->getMouseHighestRecordList($maestroID, $playerID, $appGroup); + break; + } + } + + public function getTypingHighestRecordList($maestroID, $playerID, $appGroup, $language) + { + return null; + } + + public function getTypingExamHighestRecordWritingList($maestroID, $playerID, $appGroup, $language) + { + return null; + } + + + + /* public function getSystemWritingList() { diff --git a/src/web/php/menu/menu_list.php b/src/web/php/menu/menu_list.php index 13c1339..4b6522d 100644 --- a/src/web/php/menu/menu_list.php +++ b/src/web/php/menu/menu_list.php @@ -26,13 +26,17 @@ include "./../db/db_method_container.php"; include "./../db/menu_collection.php"; $menuCollection = new MenuCollection($dbConnector->getMysqli()); -$appData = $menuCollection->getAppData($maestroID, $playerID, $appGroup, $language); +$appList = $menuCollection->getAppList($maestroID, $playerID, $appGroup, $language); +$activeAppList = $menuCollection->getActiveAppList($maestroID, $playerID, $appGroup, $language); +$highestRecordList = $menuCollection->getHighestRecordList($maestroID, $playerID, $appGroup, $language); $jsonBuilder->setData("appGroupName", $menuCollection->getAppGroupName($appGroup)); $jsonBuilder->setData("languageName", $menuCollection->getLanguageName($language)); $jsonBuilder->setData("appGroup", $appGroup); -$jsonBuilder->setData("appData", $appData); +$jsonBuilder->setData("appList", $appList); +$jsonBuilder->setData("activeAppList", $activeAppList); +$jsonBuilder->setData("highestRecordList", $highestRecordList); $jsonBuilder->sendResultSuccess(); diff --git a/test/tdd.js b/test/tdd.js index 2a81fa4..c848a91 100644 --- a/test/tdd.js +++ b/test/tdd.js @@ -4,8 +4,6 @@ QUnit.test( "AppList", function( assert ) { var MAESTRO_ID = 3; // 삼화초 var PLAYER_ID = 35; // 박지상 - var APP_GROUP = 0; // finger position - var LANGUAGE = 0; // Korean var dbService = new DBService(); dbService.setMaestroID(MAESTRO_ID); @@ -13,12 +11,16 @@ QUnit.test( "AppList", function( assert ) { var done = assert.async(); setTimeout(function() { + var appGroup = 0; // finger position + var language = 1; // English dbService.requestMainMenuAppData( - APP_GROUP, - LANGUAGE, + appGroup, + language, (function(jsonData) { - assert.equal(jsonData.appGroup, 0, "appGroup"); - assert.equal(jsonData.appData, null, "appData"); + assert.equal(jsonData.appGroup, appGroup, "appGroup : finger position, English"); + assert.equal(jsonData.appList.length, 7, "appList"); + assert.equal(jsonData.activeAppList.length, 5, "activeAppList"); + assert.equal(jsonData.highestRecordList, null, "highestRecordList"); done(); }).bind(this), (function(jsonData) { @@ -27,6 +29,28 @@ QUnit.test( "AppList", function( assert ) { }).bind(this) ); }); + + var done2 = assert.async(); + setTimeout(function() { + var appGroup = 1; // typing practice + var language = 0; // Korean + dbService.requestMainMenuAppData( + appGroup, + language, + (function(jsonData) { + assert.equal(jsonData.appGroup, appGroup, "appGroup : typing practice, Korean"); + assert.equal(jsonData.appList.length, 10, "appList"); + assert.equal(jsonData.activeAppList.length, 10, "activeAppList"); + assert.equal(jsonData.highestRecordList, null, "highestRecordList"); + done2(); + }).bind(this), + (function(jsonData) { + console.log(replyJSON); + done2(); + }).bind(this) + ); + }); + }); //////////////////////////////////////////////////