Add: menu_app_list.php

This commit is contained in:
2018-06-04 11:22:21 +09:00
parent 024145b609
commit ed03e57b34
5 changed files with 246 additions and 27 deletions
+13 -12
View File
@@ -1,9 +1,10 @@
class AppInfo {
constructor(name, nameKorean, howToPlay) {
this.name = name;
constructor(appID, appName, koreanName, howToPlay) {
this.appID = appID;
this.appName = appName;
this.nameKorean = nameKorean;
this.koreanName = koreanName;
this.isActivated = false;
this.howToPlay = howToPlay;
}
@@ -51,26 +52,26 @@ class AppInfoManager {
));
}
setHowToPlay(name, text) {
this.appInfoMap[name].howToPlay = text;
setHowToPlay(appName, text) {
this.appInfoMap[appName].howToPlay = text;
}
registerAppInfo(appInfo) {
return this.appInfoMap[appInfo.name] = appInfo;
return this.appInfoMap[appInfo.appName] = appInfo;
}
getAppNameKorean(name) {
if(name === null)
getAppkoreanName(appName) {
if(appName === null)
return "";
return this.appInfoMap[name].nameKorean;
return this.appInfoMap[appName].koreanName;
}
getHowToPlayText(name) {
if(name === null)
getHowToPlayText(appName) {
if(appName === null)
return "";
return this.appInfoMap[name].howToPlay;
return this.appInfoMap[appName].howToPlay;
}
}
+39 -4
View File
@@ -64,6 +64,24 @@ class DBConnectManager {
xhr.send("maestro_name=" + maestroName + "&name=" + userName + "&enter_code=" + enterCode);
}
/*
requestAppList(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/app_data.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null)
onSucceededListener(replyJSON);
else
onFailedListener(replyJSON);
}
};
xhr.send("maestro_id=" + maestroID);
}
requestActiveAppList(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/active_app.php", true);
@@ -72,7 +90,25 @@ class DBConnectManager {
if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON.length > 0)
if(replyJSON != null)
onSucceededListener(replyJSON);
else
onFailedListener(replyJSON);
}
};
xhr.send("maestro_id=" + maestroID);
}
*/
requestMenuAppList(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/menu_app_list.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null)
onSucceededListener(replyJSON);
else
onFailedListener(replyJSON);
@@ -89,7 +125,7 @@ class DBConnectManager {
if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON.length > 0)
if(replyJSON != null)
onSucceededListener(replyJSON);
else
onFailedListener(replyJSON);
@@ -121,9 +157,8 @@ class DBConnectManager {
if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) {
if(replyJSON != null)
listener(self.parseJSONtoHistoryRecord(replyJSON));
}
else
onFailedListener(replyJSON);
}
+28 -11
View File
@@ -24,28 +24,33 @@ class MenuApp {
let screenBottom = new ScreenBottom();
screenBottom.makeBottomLine();
// screenBottom.printBottomLeftText("게임 진행 정보");
let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName);
screenBottom.printBottomCenterText(playingAppName);
// let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName);
// screenBottom.printBottomCenterText(playingAppName);
screenBottom.printBottomCenterText("메뉴");
screenBottom.printBottomRightText(sessionStorageManager.playerName);
this.makeActiveAppButtons();
this.loadAppData();
}
makeActiveAppButtons() {
loadAppData() {
let dbConnectManager = new DBConnectManager();
dbConnectManager.requestActiveAppList(
dbConnectManager.requestMenuAppList(
sessionStorageManager.maestroID,
self.loginSucceeded,
self.loginFailed
self.loadSucceeded,
self.loadFailed
);
}
loginSucceeded(replyJSON) {
loadSucceeded(replyJSON) {
// console.log(replyJSON);
self.makeMouseAppButtons(replyJSON.MouseAppList);
self.makeTypingButtons(replyJSON.TypingPracticeAppCount, replyJSON.TypingAppList);
/*
let mouseAppCount = self.getAppCount(replyJSON, AppButton.TYPE_MOUSE);
let typingPracticeAppCount = self.getAppCount(replyJSON, AppButton.TYPE_TYPING);
@@ -74,6 +79,18 @@ class MenuApp {
}
);
}
*/
}
makeMouseAppButtons(mouseAppJSON) {
console.log(mouseAppJSON);
}
makeTypingButtons(typingPracticeAppCount, typingAppJSON) {
console.log(typingPracticeAppCount);
console.log(typingAppJSON);
}
isMouseApp(app) {
@@ -96,8 +113,8 @@ class MenuApp {
return appCount;
}
loginFailed(replyJSON) {
console.log('login failed, jsonData : ' + JSON.stringify(replyJSON));
loadFailed(replyJSON) {
// console.log('login failed, jsonData : ' + JSON.stringify(replyJSON));
}
}
+72
View File
@@ -0,0 +1,72 @@
<?php
header("Content-Type: application/json");
include "./../send_error_code.php";
$maestro_id = $_POST["maestro_id"];
include "./../setup/connect_db.php";
$replyJSON = array();
$replyJSON["AppList"] = get_app_list();
$replyJSON["ActiveAppList"] = get_active_app_list($maestro_id);
$db_conn->close();
if($replyJSON.length === 0) {
send_error_message($replyJSON, "앱 목록 가져오기 실패");
$db_conn->close();
exit;
}
echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE);
$db_conn->close();
function get_app_list() {
global $db_conn;
$query = "SELECT AppID, AppName, AppType FROM moty_app";
$result = mysqli_query($db_conn, $query);
$return_array = array();
if ($result) {
// echo "조회된 행의 수 : ".mysqli_num_rows($result)."<br />";
$rows = array();
while($row = mysqli_fetch_assoc($result)) {
$row_array["AppID"] = $row["AppID"];
$row_array["AppName"] = $row["AppName"];
$row_array["AppType"] = $row["AppType"];
array_push($return_array, $row_array);
}
}
return $return_array;
}
function get_active_app_list($maestro_id) {
global $db_conn;
$query = "
SELECT A.AppID, A.AppName, A.AppType
FROM moty_app AS A
INNER JOIN moty_active_app AS AA ON A.AppID = AA.AppID AND AA.MaestroID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestro_id);
$stmt->execute();
$stmt->bind_result($app_id, $app_name, $app_type);
$return_array = array();
while($stmt->fetch()) {
$row_array["AppID"] = $app_id;
$row_array["AppName"] = $app_name;
$row_array["AppType"] = $app_type;
array_push($return_array, $row_array);
}
$stmt->close();
return $return_array;
}
?>
+94
View File
@@ -0,0 +1,94 @@
<?php
header("Content-Type: application/json");
include "./../send_error_code.php";
$maestro_id = $_POST["maestro_id"];
include "./../setup/connect_db.php";
$replyJSON = array();
$replyJSON["MouseAppList"] = get_mouse_app_list($maestro_id);
$replyJSON["TypingPracticeAppCount"] = get_typing_practice_app_count($maestro_id);
$replyJSON["TypingAppList"] = get_typing_app_list($maestro_id);
$db_conn->close();
if($replyJSON.length === 0) {
send_error_message($replyJSON, "앱 목록 가져오기 실패");
$db_conn->close();
exit;
}
echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE);
$db_conn->close();
function get_mouse_app_list($maestro_id) {
global $db_conn;
$query = "
SELECT A.AppID, A.AppName, A.KoreanName, A.AppType
FROM moty_app AS A
INNER JOIN moty_active_app AS AA ON A.AppID = AA.AppID AND A.AppType = 100 AND AA.MaestroID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestro_id);
$stmt->execute();
$stmt->bind_result($app_id, $app_name, $korean_name, $app_type);
$return_array = array();
while($stmt->fetch()) {
$row_array["AppID"] = $app_id;
$row_array["AppName"] = $app_name;
$row_array["KoreanName"] = $korean_name;
$row_array["AppType"] = $app_type;
array_push($return_array, $row_array);
}
$stmt->close();
return $return_array;
}
function get_typing_practice_app_count($maestro_id) {
global $db_conn;
$query = "
SELECT COUNT(*)
FROM moty_app AS A
INNER JOIN moty_active_app AS AA ON A.AppID = AA.AppID AND A.AppType < 50 AND AA.MaestroID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestro_id);
$stmt->execute();
$stmt->bind_result($typing_practice_app_count);
$stmt->fetch();
$stmt->close();
return $typing_practice_app_count;
}
function get_typing_app_list($maestro_id) {
global $db_conn;
$query = "
SELECT A.AppID, A.AppName, A.KoreanName, A.AppType
FROM moty_app AS A
INNER JOIN moty_active_app AS AA ON A.AppID = AA.AppID AND A.AppType = 50 AND AA.MaestroID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestro_id);
$stmt->execute();
$stmt->bind_result($app_id, $app_name, $korean_name, $app_type);
$return_array = array();
while($stmt->fetch()) {
$row_array["AppID"] = $app_id;
$row_array["AppName"] = $app_name;
$row_array["KoreanName"] = $korean_name;
$row_array["AppType"] = $app_type;
array_push($return_array, $row_array);
}
$stmt->close();
return $return_array;
}
?>