Fix: trial maestro account

This commit is contained in:
2022-07-03 01:06:12 +09:00
parent 9eec33cc49
commit 3d474b266c
22 changed files with 637 additions and 101 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

+47 -18
View File
@@ -67,27 +67,45 @@
} }
for(var i = 0; i < jsonList.length; i++) { for(var i = 0; i < jsonList.length; i++) {
if(jsonList[i].status == 1) { if(jsonList[i].status == 1) { // 요청
$("#maestro_list_result_contents").append( var tableRowString =
"<div class='form-group player-list row mx-2 mb-1'>" "<div class='form-group player-list row mx-2 mb-1'>"
+ " <input type='text' class='maestro_upgrade_id d-none' disabled value='" + jsonList[i].maestroUpgradeID + "'>" + " <input type='text' class='maestro_upgrade_id d-none' disabled value='" + jsonList[i].maestroUpgradeID + "'>"
+ " <input type='text' class='maestro_id d-none' disabled value='" + jsonList[i].maestroID + "'>" + " <input type='text' class='maestro_id d-none' disabled value='" + jsonList[i].maestroID + "'>"
+ " <input type='text' class='col-sm' disabled value='" + jsonList[i].maestroName + "'>" + " <input type='text' class='col-sm' disabled value='" + jsonList[i].maestroName + "'>"
+ " <input type='text' class='registered_account_type col-sm text-right' disabled value='" + accountType(jsonList[i].registeredAccountType) + "'>" + " <input type='text' class='registered_activate_status col-sm text-right' disabled value='" + activateStatus(jsonList[i].registeredActivateStatus) + "'>";
+ " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].availableActivateDateTime.substring(0, 10) + "'>" if(jsonList[i].registeredActivateStatus == 1) { // 체험
+ " <input type='text' class='new_account_type col-sm text-right' disabled value='" + accountType(jsonList[i].requestedAccountType) + "'>" tableRowString +=
+ " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].requestedDateTime.substring(0, 10) + "'>" " <input type='text' class='registered_account_type col-sm text-right' disabled value='" + trialAccountType(jsonList[i].registeredAccountType) + "'>";
+ " <input type='text' class='col-sm text-right' disabled value='" + NumberUtil.numberWithCommas(price(jsonList[i].requestedAccountType, jsonList[i].registeredAccountType)) + "'>" } else { // 0: 미승인, 2: 활성화, 100: 환불
+ " <input type='text' class='col-sm' disabled value='" + status(jsonList[i].status) + "'>" tableRowString +=
+ " <input type='button' class='col-sm-1' value='↑' onClick='upgrade(this)'>" " <input type='text' class='registered_account_type col-sm text-right' disabled value='" + accountType(jsonList[i].registeredAccountType) + "'>"
+ "</div>" }
); tableRowString +=
} else { " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].availableActivateDateTime.substring(0, 10) + "'>"
+ " <input type='text' class='new_account_type col-sm text-right' disabled value='" + accountType(jsonList[i].requestedAccountType) + "'>"
+ " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].requestedDateTime.substring(0, 10) + "'>";
if(jsonList[i].registeredActivateStatus == 1) { // 체험
tableRowString +=
" <input type='text' class='col-sm text-right' disabled value='" + NumberUtil.numberWithCommas(accountTypePrice(jsonList[i].requestedAccountType)) + "'>";
} else { // 0: 미승인, 2: 활성화, 100: 환불
tableRowString +=
" <input type='text' class='col-sm text-right' disabled value='" + NumberUtil.numberWithCommas(price(jsonList[i].requestedAccountType, jsonList[i].registeredAccountType)) + "'>";
}
tableRowString +=
" <input type='text' class='col-sm' disabled value='" + status(jsonList[i].status) + "'>"
+ " <input type='button' class='col-sm-1' value='↑' onClick='upgrade(this)'>"
+ "</div>";
$("#maestro_list_result_contents").append(tableRowString);
}
/*
else { // status == 2: 취소, 3: 업그레이드 적용
$("#maestro_list_result_contents").append( $("#maestro_list_result_contents").append(
"<div class='form-group player-list row mx-2 mb-1'>" "<div class='form-group player-list row mx-2 mb-1'>"
+ " <input type='text' class='maestro_upgrade_id d-none' disabled value='" + jsonList[i].maestroUpgradeID + "'>" + " <input type='text' class='maestro_upgrade_id d-none' disabled value='" + jsonList[i].maestroUpgradeID + "'>"
+ " <input type='text' class='maestro_id d-none' disabled value='" + jsonList[i].maestroID + "'>" + " <input type='text' class='maestro_id d-none' disabled value='" + jsonList[i].maestroID + "'>"
+ " <input type='text' class='col-sm text-success' disabled value='" + jsonList[i].maestroName + "'>" + " <input type='text' class='col-sm text-success' disabled value='" + jsonList[i].maestroName + "'>"
+ " <input type='text' class='registered_account_type col-sm text-right text-success' disabled value='" + activateStatus(jsonList[i].registeredActivateStatus) + "'>"
+ " <input type='text' class='registered_account_type col-sm text-right text-success' disabled value='" + accountType(jsonList[i].registeredAccountType) + "'>" + " <input type='text' class='registered_account_type col-sm text-right text-success' disabled value='" + accountType(jsonList[i].registeredAccountType) + "'>"
+ " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].availableActivateDateTime.substring(0, 10) + "'>" + " <input type='text' class='col-sm text-right' disabled value='" + jsonList[i].availableActivateDateTime.substring(0, 10) + "'>"
+ " <input type='text' class='new_account_type col-sm text-right text-success' disabled value='" + accountType(jsonList[i].requestedAccountType) + "'>" + " <input type='text' class='new_account_type col-sm text-right text-success' disabled value='" + accountType(jsonList[i].requestedAccountType) + "'>"
@@ -98,6 +116,7 @@
+ "</div>" + "</div>"
); );
} }
*/
} }
} }
@@ -123,6 +142,7 @@
var children = inputButton.parentElement.childNodes; var children = inputButton.parentElement.childNodes;
var maestroUpgradeID; var maestroUpgradeID;
var maestroID; var maestroID;
var registeredActiveStatus;
var registeredAccountType; var registeredAccountType;
var upgradeAccountType; var upgradeAccountType;
for (var i=0; i < children.length; i++) { for (var i=0; i < children.length; i++) {
@@ -133,6 +153,10 @@
} else if (children[i].className == "maestro_id d-none") { } else if (children[i].className == "maestro_id d-none") {
maestroID = children[i].value; maestroID = children[i].value;
continue; continue;
} else if (children[i].className == "registered_activate_status col-sm text-right") {
// upgradeAccountType = children[i].value;
registeredActiveStatus = activateStatusValue(children[i].value);
continue;
} else if (children[i].className == "registered_account_type col-sm text-right") { } else if (children[i].className == "registered_account_type col-sm text-right") {
// upgradeAccountType = children[i].value; // upgradeAccountType = children[i].value;
registeredAccountType = accountTypeValue(children[i].value); registeredAccountType = accountTypeValue(children[i].value);
@@ -151,11 +175,15 @@
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/admin/upgrade_maestro.php", "./../server/admin/upgrade_maestro.php",
"maestro_upgrade_id=" + maestroUpgradeID + "&maestro_id=" + maestroID + "&registered_account_type=" + registeredAccountType+ "&upgrade_account_type=" + upgradeAccountType, "maestro_upgrade_id=" + maestroUpgradeID
+ "&maestro_id=" + maestroID
+ "&registered_activate_status=" + registeredActiveStatus
+ "&registered_account_type=" + registeredAccountType
+ "&upgrade_account_type=" + upgradeAccountType,
function(jsonData) { function(jsonData) {
loadMaestroUpgradeList(""); loadMaestroUpgradeList("");
$("#error_message").text("마에스트로 계정이 정상적으로 등록되었습니다."); $("#error_message").text("마에스트로 계정이 정상적으로 업그레이드되었습니다.");
}, },
function(errorMessage, errorCode) { function(errorMessage, errorCode) {
@@ -206,6 +234,7 @@
<div class="form-group row mx-2 mb-0 font-weight-bold"> <div class="form-group row mx-2 mb-0 font-weight-bold">
<label class="col-form-label d-none">Upgrade ID</label> <label class="col-form-label d-none">Upgrade ID</label>
<label class="col-form-label col-sm text-left">아이디</label> <label class="col-form-label col-sm text-left">아이디</label>
<label class="col-form-label col-sm text-right">현 활성화 상태</label>
<label class="col-form-label col-sm text-right">현 요금제</label> <label class="col-form-label col-sm text-right">현 요금제</label>
<label class="col-form-label col-sm text-right">유효기간</label> <label class="col-form-label col-sm text-right">유효기간</label>
<label class="col-form-label col-sm text-right">Upg 요금제</label> <label class="col-form-label col-sm text-right">Upg 요금제</label>
+71
View File
@@ -19,6 +19,44 @@
return 0; return 0;
} }
function activateStatus(activateStatus) {
switch(activateStatus) {
case 0:
return "미승인";
case 1:
return "체험";
case 2:
return "활성화";
case 100:
return "등록 취소";
default:
return activateStatus + "? (N/A)";
}
}
function activateStatusValue(activateStatus) {
switch(activateStatus) {
case "미승인":
return 0;
case "체험":
return 1;
case "활성화":
return 2;
case "등록 취소":
return 100;
default:
return -1;
}
}
function accountType(accountType) { function accountType(accountType) {
switch(accountType) { switch(accountType) {
case 1: case 1:
@@ -44,12 +82,40 @@ function accountType(accountType) {
return accountType + "? (N/A)"; return accountType + "? (N/A)";
} }
function trialAccountType(accountType) {
switch(accountType) {
case 1:
return "20명 (0원)";
case 2:
return "50명 (0원)";
case 3:
return "100명 (0원)";
case 4:
return "500명 (0원)";
case 5:
return "1,000명 (0원)";
case 100:
case 101:
return "해당없음";
}
return accountType + "? (N/A)";
}
function accountStatus(accountType, activateStatus) { function accountStatus(accountType, activateStatus) {
if(activateStatus == 0) if(activateStatus == 0)
return "입금대기"; return "입금대기";
else if(activateStatus == 1)
return "체험";
else if(activateStatus == 100) else if(activateStatus == 100)
return "환불"; return "환불";
// activateStatus == 2 : "활성화"
switch(accountType) { switch(accountType) {
case 1: case 1:
return "20명"; return "20명";
@@ -121,18 +187,23 @@ function accountTypePrice(accountType) {
function accountTypeValue(accountType) { function accountTypeValue(accountType) {
switch(accountType) { switch(accountType) {
case "20명 (1만원)": case "20명 (1만원)":
case "20명 (0원)":
return 1; return 1;
case "50명 (2만원)": case "50명 (2만원)":
case "50명 (0원)":
return 2; return 2;
case "100명 (3만원)": case "100명 (3만원)":
case "100명 (0원)":
return 3; return 3;
case "500명 (4만원)": case "500명 (4만원)":
case "500명 (0원)":
return 4; return 4;
case "1,000명 (5만원)": case "1,000명 (5만원)":
case "1,000명 (0원)":
return 5; return 5;
} }
+2
View File
@@ -1,6 +1,7 @@
function MaestroInfo() { function MaestroInfo() {
this.maestroID = sessionStorage.getItem("maestroID"); this.maestroID = sessionStorage.getItem("maestroID");
this.maestroName = ""; this.maestroName = "";
this.activateStatus = 0;
this.accountType = 0; this.accountType = 0;
this.availableActivateDateTime = ""; this.availableActivateDateTime = "";
this.playerCount = 0; this.playerCount = 0;
@@ -15,6 +16,7 @@ MaestroInfo.prototype.loadMaestroInfo = function(onSuccess, onFail) {
function(jsonData) { function(jsonData) {
self.maestroName = jsonData["name"]; self.maestroName = jsonData["name"];
self.activatedStatus = jsonData["activatedStatus"];
self.accountType = jsonData["accountType"]; self.accountType = jsonData["accountType"];
self.availableActivateDateTime = jsonData["availableActivateDateTime"]; self.availableActivateDateTime = jsonData["availableActivateDateTime"];
self.playerCount = jsonData["playerCount"]; self.playerCount = jsonData["playerCount"];
+5 -4
View File
@@ -4,12 +4,13 @@ $(document).ready(function() {
// showServiceCloseMessage(); // showServiceCloseMessage();
showErrorMessage( showErrorMessage(
'(07월 02일) 알림<br/>\ '(07월 02일) 알림<br/>\
* 초코마에 유료 정식 서비스 시작<br/>\ * 초코마에 8월 유료 정식 서비스 예고<br/>\
* 계정 유효기간 연장 or 업그레이드 메뉴가 활성화되었습니다.<br/>\ * 7월 31일까지 계속해서 무료 사용 가능<br/>\
* 7월 31일 전에도 유료 결제 가능 - 유효기간 연장 / 업그레이드 기능 활성화<br/>\
<br/>\ <br/>\
<a class="btn btn-outline-success" roll="button" href="../main/reopen_service.html">\ <a class="btn btn-outline-success" roll="button" href="../main/reopen_service.html">\
<span class="oi oi-bullhorn" title="icon bullhorn" aria-hidden="true"></span>\ <span class="oi oi-bullhorn" title="icon bullhorn" aria-hidden="true"></span>\
정식 유료 서비스 - 자세한 내용 보기</a>' 8월 유료 서비스 안내 - 자세한 내용 보기</a>'
, 'info' , 'info'
); );
}); });
@@ -183,7 +184,7 @@ function experienceMaestro() {
</a> </a>
</div> </div>
<div class="col-8"> <div class="col-8">
<a class="btn btn-primary btn-block btn-lg" role="button" href="./../main/register.html">마에스트로 가입</a> <a class="btn btn-primary btn-block btn-lg" role="button" href="./../main/register.html">마에스트로 체험 계정 가입 <span class="font-weight-light">(2022년 07월 31일까지 무료)</span></a>
</div> </div>
</div> </div>
+97 -29
View File
@@ -11,14 +11,92 @@
<p class="card-text"> <p class="card-text">
<ul> <ul>
<li>5월부터 6월까지 약 2개월간 개인 서버에서 시험적으로 운영해 보았습니다.</li> <li>5월부터 6월까지 약 2개월간 개인 서버에서 시험적으로 운영해 보았습니다.</li>
<li>큰 문제 없이 서비스가 진행되어서 8월 1일부터 유료 서비스로 전환니다.</li> <li>큰 문제 없이 서비스가 진행되어서 8월 1일부터 정식 유료 서비스로 전환할 예정입니다.</li>
<li>
8월 정식 유료 서비스 위해 일부 서비스 내용을 수정하였습니다.
<ul>
<li>마에스트로 체험 계정</li>
<li>
유료 결제 적용
<ol>
<li>유효기간 연장</li>
<li>요금제 업그레이드</li>
</ol>
<div class="alert alert-info" role="info">
<ul>
<li>베타 기간동안 막아두었던 100명(3만원), 500명(4만원), 1,000명(5만원) 요금제도 활성화되었습니다.</li>
</ul>
</div>
</li>
</ul>
</li>
</ul>
</p>
<h5 class="card-title text-primary">마에스트로 체험 계정</h5>
<p class="card-text">
<ul>
<li>
베타 서비스 기간 동안 마에스트로 계정을 만들면 무료로 승인해드렸습니다.
<ul>
<li>베타 기간동안 가입하고 무료로 사용하시는 분들이 많으셨습니다.</li>
<li>정식 유료 서비스를 시작하더라도 계정 생성시 <span class="text-primary">무료로 사용할 수 있는 체험 기간</span>을 드리기로 결정했습니다.</li>
<li>마에스트로 체험 계정의 유효 기간은 <span class="text-primary font-weight-bold">2주</span>입니다.</li>
</ul>
</li>
<li>베타 서비스 기간동안은 체험 계정이어도 7월 말까지 무료로 계속해서 사용하실 수 있습니다.</li>
</ul>
</p>
<h5 class="card-title text-primary">마에스트로 체험 계정 생성 즉시 활성화</h5>
<p class="card-text">
<ul>
<li>5월부터 6월까지는 마에스트로 신규 계정을 생성하면 관리자가 승인한 후에야 계정이 활성화 되었습니다.</li>
<li>7월부터는 마에스트로 신규 계정 생성하면 즉시 계정이 활성화됩니다.</li>
<li>신규 계정은 체험 계정으로 시작합니다. 그렇기 때문에 신규 계정 생성시에는 결제가 생략됩니다.</li>
<li>
체험 계정의 최초 유효기간이 지나면 비활성화됩니다. 계속해서 사용하시려면 아래와 같은 방법으로 결제하실 수 있습니다.
<ul>
<li>유효기간 연장</li>
<li>요금제 업그레이드</li>
</ul>
</li>
</ul>
</p>
</div>
</div>
<br/>
<div class="card">
<h5 class="card-header text-primary font-weight-bold">베타 서비스와 마에스트로 체험 계정의 무료 사용에 대한 안내</h5>
<div class="card-body">
<h5 class="card-title text-primary">7월 2일 이전에 생성한 기존 무료 계정</h5>
<p class="card-text">
<ul>
<li>7월 31일까지 계속해서 무료로 사용하실 수 있습니다.</li>
</ul>
</p>
<h5 class="card-title text-primary">7월 2일 ~ 7월 17일까지 생성한 체험 계정</h5>
<p class="card-text">
<ul>
<li>마찬가지로 7월 31일까지 무료로 사용하실 수 있습니다.</li>
</ul>
</p>
<h5 class="card-title text-primary">7월 17일 ~ 7월 31일까지 생성한 계정</h5>
<p class="card-text">
<div class="ml-4 mb-2">베타 서비스가 2주보다 적게 남은 시점입니다.</div>
<ul>
<li>체험 계정 기준으로 유효기간이 2주가 주어집니다.</li>
<li>마에스트로 체험 계정을 만들면, 생성일로부터 2주동안 무료로 사용하실 수 있습니다.</li>
</ul>
</p>
<h5 class="card-title text-primary">8월 1일 이후에 생성한 계정</h5>
<p class="card-text">
<ul>
<li>체험 계정 기준으로 유효기간이 2주가 주어집니다.</li>
<li>마에스트로 체험 계정을 만들면, 생성일로부터 2주동안 무료로 사용하실 수 있습니다.</li>
</ul> </ul>
<div class="alert alert-warning" role="alert">
<ul>
<li>현재 사용중인 계정은 7월 31일까지 무료로 사용하실 수 있습니다.</li>
<li>8월 1일에 유료 결제가 되지 않은 계정은 학생 로그인이 막힙니다.</li>
</ul>
</div>
</p> </p>
</div> </div>
</div> </div>
@@ -34,38 +112,25 @@
<li> <li>
만료일 30일 전(7월 2일)부터 마에스트로 관리 화면 홈에 [유효기간 연장] 버튼이 보여집니다. 만료일 30일 전(7월 2일)부터 마에스트로 관리 화면 홈에 [유효기간 연장] 버튼이 보여집니다.
<br> <br>
<img src="유효기간 연장 버튼 스샷.png"> <img src="./../../../resources/image/maestro/maestro_extension.png" class="img-fluid img-thumbnail" alt="유효기간 연장 화면">
</li>
<li>[유효기간 연장] 버튼을 눌러서 계정 유효기간을 신청합니다.</li>
<li>
연장 신청 화면에서 보여드릴 초코마에 카카오뱅크 계좌로 송금해주세요. (보내는 사람 이름은 반드시 마에스트로 이름으로 기입 부탁드립니다)
<br>
<img src="송금자명 스샷.png">
</li> </li>
<li>[유효기간 연장] 버튼을 누르면 입금 안내 메일을 보내드립니다.</li>
<li>입금 내역이 확인되는대로 승인을 처리해 드립니다.</li>
</ul> </ul>
</p> </p>
<h5 class="card-title text-primary">(방법 2) 계정 업그레이드</h5> <h5 class="card-title text-primary">(방법 2) 요금제 업그레이드</h5>
<p class="card-text"> <p class="card-text">
<ul> <ul>
<li> <li>
마에스트로 로그인을 하면 관리 화면 홈 상단 우측에 [업그레이드] 버튼이 있습니다. 마에스트로 로그인을 하면 관리 화면 홈 상단 우측에 [업그레이드] 버튼이 있습니다.
<br> <br>
<img src="업그레이드 스샷.png"> <img src="./../../../resources/image/maestro/maestro_upgrade.png" class="img-fluid img-thumbnail" alt="업그레이드 화면">
</li> </li>
<li> <li>
[업그레이드] 버튼을 눌러서 상위 요금제로 업그레이드를 신청합니다. [업그레이드] 버튼을 누르면 입금 안내 메일을 보내드립니다.
<br> <br>
<div class="alert alert-warning" role="alert">
<ul>
<li>베타 기간동안 막아두었던 100명(3만원), 500명(4만원), 1,000명(5만원) 요금제도 활성화되었습니다.</li>
</ul>
</div>
</li>
<li>
업그레이드 신청 화면에서 보여드릴 초코마에 카카오뱅크 계좌로 송금해주세요. (송금자명은 반드시 마에스트로 이름으로 기입 부탁드립니다)
<br>
<img src="송금자명 스샷.png">
</li> </li>
<li>입금 내역이 확인되는대로 승인을 처리해 드립니다.</li>
</ul> </ul>
</p> </p>
@@ -88,8 +153,11 @@
<ul> <ul>
<li>초코마에 서비스를 다시 찾아주셔서 감사합니다.</li> <li>초코마에 서비스를 다시 찾아주셔서 감사합니다.</li>
<br/> <br/>
<li>현재 회사를 다니고 있기 때문에 추가적인 개발은 못하는 상황입니다.</li> <li>여전히 부족한 서비스이지만 다시 유료화를 시작합니다.</li>
<li>웹 개발 일을 열심히 배워서 내년이나 이후에는 개선된 서비스를 제공할 수 있도록 노력하겠습니다.</li> <li>수입이 모이면 안정적인 서버도 준비하고, 서비스를 개선해보려고 합니다.</li>
<li>계속해서 많은 응원 부탁드립니다.</li>
<br/>
<li>감사합니다!</li>
</ul> </ul>
</p> </p>
</div> </div>
+2 -3
View File
@@ -35,7 +35,6 @@ function showPrice() {
$("#price_account").html( $("#price_account").html(
NumberUtil.numberWithCommas(accountTypePrice(registeredAccountType)) + "원" NumberUtil.numberWithCommas(accountTypePrice(registeredAccountType)) + "원"
); );
// accountTypePrice(accountType) + "원");
} }
function showMaestroName(maestroName) { function showMaestroName(maestroName) {
@@ -167,13 +166,13 @@ function extendMaestroAccount() {
<h4 class="mb-4">마에스트로 계정 연장 안내</h4> <h4 class="mb-4">마에스트로 계정 연장 안내</h4>
<ol> <ol>
<li>위의 <kbd>연장 신청</kbd> 버튼을 누르면 계정 연장, 송금 안내 내용이 이메일로 자동 발송됩니다.</li> <li>위의 <kbd>유효기간 연장</kbd> 버튼을 누르면 계정 연장, 송금 안내 내용이 이메일로 자동 발송됩니다.</li>
<li> <li>
입금 확인 및 적용을 수작업으로 하고 있습니다. 최대한 빨리 확인하고 적용할 수 있도록 노력하겠습니다.<br/> 입금 확인 및 적용을 수작업으로 하고 있습니다. 최대한 빨리 확인하고 적용할 수 있도록 노력하겠습니다.<br/>
<span class="text-muted">(보통 늦어도 반나절 이내에 처리됩니다)</span> <span class="text-muted">(보통 늦어도 반나절 이내에 처리됩니다)</span>
</li> </li>
<li>유효 기간은 +1년씩만 연장 가능합니다.</li> <li>유효 기간은 +1년씩만 연장 가능합니다.</li>
<li class="text-primary">계정 업그레이드를 하셔도 +1년 연장 효과가 적용됩니다.</li> <li>계정 <kbd>업그레이드</kbd>를 하시면 학생수를 늘리고 1년을 사용하실 수 있습니다.</li>
</ol> </ol>
</div> </div>
+4 -3
View File
@@ -24,12 +24,13 @@ $(document).ready(function() {
// showServiceCloseMessage(); // showServiceCloseMessage();
showErrorMessage( showErrorMessage(
'(07월 02일) 알림<br/>\ '(07월 02일) 알림<br/>\
* 초코마에 유료 정식 서비스 시작<br/>\ * 초코마에 8월 유료 정식 서비스 예고<br/>\
* 계정 유효기간 연장 or 업그레이드 메뉴가 활성화되었습니다.<br/>\ * 7월 31일까지 계속해서 무료 사용 가능<br/>\
* 7월 31일 전에도 유료 결제 가능 - 유효기간 연장 / 업그레이드 기능 활성화<br/>\
<br/>\ <br/>\
<a class="btn btn-outline-success" roll="button" href="../main/reopen_service.html">\ <a class="btn btn-outline-success" roll="button" href="../main/reopen_service.html">\
<span class="oi oi-bullhorn" title="icon bullhorn" aria-hidden="true"></span>\ <span class="oi oi-bullhorn" title="icon bullhorn" aria-hidden="true"></span>\
정식 유료 서비스 - 자세한 내용 보기</a>' 8월 유료 서비스 안내 - 자세한 내용 보기</a>'
, 'info' , 'info'
); );
}); });
+18 -1
View File
@@ -564,7 +564,8 @@ $('#myTab a').on('click', function (e) {
1,000명 (5만원) 1,000명 (5만원)
</label> </label>
</div> </div>
<small class="form-text text-muted">계정 활성화 날짜로부터 1년동안 유효합니다.</small> <small class="form-text text-muted">2022년 07월 31일까지 무료로 위의 마에스트로 계정을 체험하실 수 있습니다.</small>
<small class="form-text text-muted">* 유료 결제하면, 위 내용으로 1년동안 사용하실 수 있습니다.</small>
</div> </div>
</div> </div>
@@ -630,6 +631,8 @@ $('#myTab a').on('click', function (e) {
</form> </form>
<br/>
<div class="mb-4"> <div class="mb-4">
입력하신 내용이 모두 맞는지 확인해주세요.<br/> 입력하신 내용이 모두 맞는지 확인해주세요.<br/>
</div> </div>
@@ -650,6 +653,16 @@ $('#myTab a').on('click', function (e) {
<div class="row"> <div class="row">
<p>마에스트로 아이디 <span class="maestro_name_data text-primary font-weight-bold">????</span> 가 신청되었습니다.</p> <p>마에스트로 아이디 <span class="maestro_name_data text-primary font-weight-bold">????</span> 가 신청되었습니다.</p>
</div> </div>
<div class="row">
<ul>
<li>7월 31일까지 베타 서비스를 진행중입니다.</li>
<li><span class="bg-dark text-warning font-weight-bold">신청하신 <span class="maestro_name_data text-success font-weight-bold"></span> 마에스트로 아이디는 바로 사용하실 수 있습니다.</span></li>
<li>등록하신 이메일로도 생성된 마에스트로 계정 정보를 보내드렸습니다.</li>
<li>7월 31일까지 무료로 사용하시고, 마음에 들면 유효기간이 종료되기 전에 유료 결제를 부탁드립니다.</li>
</ul>
</div>
</div> </div>
<ul> <ul>
@@ -665,6 +678,7 @@ $('#myTab a').on('click', function (e) {
</ul> </ul>
</div> </div>
<!--
<div class="px-5 py-4 my-3" style="background-color: #ffce54"> <div class="px-5 py-4 my-3" style="background-color: #ffce54">
<h4 class="mb-4">입금 계좌</h4> <h4 class="mb-4">입금 계좌</h4>
@@ -689,7 +703,9 @@ $('#myTab a').on('click', function (e) {
</form> </form>
</div> </div>
-->
<!--
<div class="px-5 py-4 mt-3" style="background-color: #ddffff"> <div class="px-5 py-4 mt-3" style="background-color: #ddffff">
<h4>계정 활성화 안내</h4> <h4>계정 활성화 안내</h4>
@@ -700,6 +716,7 @@ $('#myTab a').on('click', function (e) {
</ul> </ul>
</div> </div>
-->
</div> <!-- 신청 완료 --> </div> <!-- 신청 완료 -->
+43 -10
View File
@@ -2,6 +2,7 @@
var maestroAvailableDate = new MaestroAvailableDate(); var maestroAvailableDate = new MaestroAvailableDate();
var registeredActivateStatus = 0;
var registeredAccountType = -1; var registeredAccountType = -1;
@@ -9,6 +10,10 @@ $(document).ready(function() {
loadMaestroInfo(maestroID); loadMaestroInfo(maestroID);
}); });
function showMaestroName(maestroName) {
$("#maestro_name_account").html(maestroName);
}
function loadMaestroInfo(maestroID) { function loadMaestroInfo(maestroID) {
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/maestro/maestro_info.php", "./../server/maestro/maestro_info.php",
@@ -16,6 +21,7 @@ function loadMaestroInfo(maestroID) {
(function(jsonData) { (function(jsonData) {
// console.log(jsonData); // console.log(jsonData);
registeredActivateStatus = jsonData.activateStatus;
registeredAccountType = jsonData.accountType; registeredAccountType = jsonData.accountType;
// showEndDate(jsonData.availableActivateDateTime); // showEndDate(jsonData.availableActivateDateTime);
@@ -25,6 +31,8 @@ function loadMaestroInfo(maestroID) {
showPlayerCount(jsonData.accountType, jsonData.playerCount); showPlayerCount(jsonData.accountType, jsonData.playerCount);
updateCards(registeredAccountType); updateCards(registeredAccountType);
showMaestroName(jsonData.name);
}), }),
(function(errorMessage, errorCode) { (function(errorMessage, errorCode) {
@@ -136,17 +144,18 @@ function setCardConent(cardNo, cardType) {
} }
} }
function upgradeMaestroInfo(accountType) { function upgradeMaestroInfo(upgradeAccountType) {
console.log("upgrade to " + accountType); console.log("upgrade to " + upgradeAccountType);
var upgradeAccountType = accountType;
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/maestro/request_upgrade_maestro.php", "./../server/maestro/request_upgrade_maestro.php",
"maestro_id=" + maestroID + "&registered_account_type=" + registeredAccountType + "&upgrade_account_type=" + upgradeAccountType, "maestro_id=" + maestroID
+ "&registered_activate_status=" + registeredActivateStatus
+ "&registered_account_type=" + registeredAccountType
+ "&upgrade_account_type=" + upgradeAccountType,
(function(jsonData) { (function(jsonData) {
// console.log(jsonData); // console.log(jsonData);
alert("업그레이드 요청이 등록되었습니다."); alert("업그레이드 안내 메일을 보내드렸습니다.\n메일 내용에 따라 송금해주시면 내역이 확인되는대로 업그레이드를 적용해드리겠습니다.");
location.href="main_menu.html"; location.href="main_menu.html";
}), }),
@@ -262,6 +271,29 @@ function upgradeMaestroInfo(accountType) {
</div> </div>
</div> </div>
<div class="card bg-warning mx-2 mt-4 mb-2">
<div class="card-header"><span class="font-weight-bold">송금 정보</span></div>
<div class="card-body px-5">
<div class="row">
<label class="col-sm-3 col-form-label">* 카카오뱅크</label>
<label class="col-sm-9 col-form-label">3333-07-4977969 (예금주 : 박지상)</label>
</div>
<div class="row">
<label class="col-sm-3 col-form-label">* 금액</label>
<label class="col-sm-9 col-form-label"><span class="font-weight-bold">업그레이드 안내 메일</span><span class="text-muted"> 내용을 참고하세요.</span></label>
</div>
<div class="row">
<label class="col-sm-3 col-form-label">* 송금자명</label>
<div class="col-sm-9">
<label class="col-form-label"><span id="maestro_name_account" class="font-weight-bold"></span> <span class="text-muted">(신청하신 마에스트로 아이디)</span></label>
<small class="form-text text-muted">빠른 입금 확인과 계정 연장 처리 작업을 위해, 송금자명을 마에스트로 아이디로 입력 부탁드립니다.</small>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
@@ -272,10 +304,11 @@ function upgradeMaestroInfo(accountType) {
<h4 class="mb-4">마에스트로 업그레이드 안내</h4> <h4 class="mb-4">마에스트로 업그레이드 안내</h4>
<ol> <ol>
<li>위에서 업그레이드 하실 상품을 선택하세요.</li> <li>업그레이드 하실 상품을 선택하세요.</li>
<li>업그레이드를 신청하신 후, 추가 금액을 계좌이체해 주세요.</li> <li>업그레이드 버튼을 누르면 입금 안내 메일이 발송됩니다.</li>
<li>신청 내역이 확인되는대로 마에스트로 계정의 요금제를 변경해 드리겠습니다.</li> <li>업그레이드 안내 메일 내용에 따라 청구된 금액을 송금해 주세요.</li>
<li>기존 요금제 기간이 얼마나 남았던가에 상관없이, 유효 기간은 업그레이드 적용된 날짜로부터 1년으로 다시 채워집니다.<br/> <li>송금 내역이 확인되는대로 마에스트로 계정의 업그레이드 적용해 드리겠습립니다. (많이 늦어진다 싶으면 아래 문의 메일로 연락주세요)</li>
<li>기존 요금제 기간이 얼마나 남았던가에 상관없이, 유효 기간은 <span class="bg-dark text-warning font-weight-bold">업그레이드가 적용된 날짜로부터 1년</span>으로 설정됩니다.<br/>
</ol> </ol>
</div> </div>
+1 -1
View File
@@ -47,7 +47,7 @@ function extension_maestro($maestro_id, $new_available_date) {
// "; // ";
$query = " $query = "
UPDATE maestro UPDATE maestro
SET ActivateStatus = 1, AvailableActivateDateTime = DATE_FORMAT(?, '%Y-%m-%d') SET ActivateStatus = 2, AvailableActivateDateTime = DATE_FORMAT(?, '%Y-%m-%d')
WHERE MaestroID = ?; WHERE MaestroID = ?;
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
@@ -29,7 +29,7 @@ function get_maestro_upgrade_list() {
global $db_conn; global $db_conn;
$query = " $query = "
SELECT U.MaestroUpgradeID, U.MaestroID, M.Name, U.RegisteredAccountType, U.RequestedAccountType, U.RequestedDateTime, M.AvailableActivateDateTime, U.Status SELECT U.MaestroUpgradeID, U.MaestroID, M.Name, U.RegisteredActivateStatus, U.RegisteredAccountType, U.RequestedAccountType, U.RequestedDateTime, M.AvailableActivateDateTime, U.Status
FROM maestro_upgrade U, maestro M FROM maestro_upgrade U, maestro M
WHERE U.Status < 2 AND U.MaestroID = M.MaestroID WHERE U.Status < 2 AND U.MaestroID = M.MaestroID
ORDER BY U.MaestroUpgradeID DESC ORDER BY U.MaestroUpgradeID DESC
@@ -38,13 +38,14 @@ function get_maestro_upgrade_list() {
// $stmt->bind_param("iii", $maestroID, $startNo, $endNo); // $stmt->bind_param("iii", $maestroID, $startNo, $endNo);
// $stmt->bind_param("ii", $maestroName, $startNo); // $stmt->bind_param("ii", $maestroName, $startNo);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($maestroUpgradeID, $maestroID, $maestroName, $registeredAccountType, $requestedAccountType, $requestedDateTime, $availableActivateDateTime, $status); $stmt->bind_result($maestroUpgradeID, $maestroID, $maestroName, $registeredActivateStatus, $registeredAccountType, $requestedAccountType, $requestedDateTime, $availableActivateDateTime, $status);
$maestroUpgradeList = array(); $maestroUpgradeList = array();
while($stmt->fetch()) { while($stmt->fetch()) {
$maestro["maestroUpgradeID"] = $maestroUpgradeID; $maestro["maestroUpgradeID"] = $maestroUpgradeID;
$maestro["maestroID"] = $maestroID; $maestro["maestroID"] = $maestroID;
$maestro["maestroName"] = $maestroName; $maestro["maestroName"] = $maestroName;
$maestro["registeredActivateStatus"] = $registeredActivateStatus;
$maestro["registeredAccountType"] = $registeredAccountType; $maestro["registeredAccountType"] = $registeredAccountType;
$maestro["requestedAccountType"] = $requestedAccountType; $maestro["requestedAccountType"] = $requestedAccountType;
$maestro["requestedDateTime"] = $requestedDateTime; $maestro["requestedDateTime"] = $requestedDateTime;
@@ -60,7 +61,7 @@ function get_maestro_update_list_by_name($searchMaestroName) {
global $db_conn; global $db_conn;
$query = " $query = "
SELECT U.MaestroUpgradeID, U.MaestroID, M.Name, U.RegisteredAccountType, U.RequestedAccountType, U.RequestedDateTime, M.AvailableActivateDateTime, U.Status SELECT U.MaestroUpgradeID, U.MaestroID, M.Name, U.RegisteredActivateStatus, U.RegisteredAccountType, U.RequestedAccountType, U.RequestedDateTime, M.AvailableActivateDateTime, U.Status
FROM maestro_upgrade U, maestro M FROM maestro_upgrade U, maestro M
WHERE M.Name LIKE CONCAT('%', ?, '%') AND U.MaestroID = M.MaestroID WHERE M.Name LIKE CONCAT('%', ?, '%') AND U.MaestroID = M.MaestroID
ORDER BY U.MaestroUpgradeID DESC ORDER BY U.MaestroUpgradeID DESC
@@ -68,13 +69,14 @@ function get_maestro_update_list_by_name($searchMaestroName) {
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("s", $searchMaestroName); $stmt->bind_param("s", $searchMaestroName);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($maestroUpgradeID, $maestroID, $maestroName, $registeredAccountType, $requestedAccountType, $requestedDateTime, $availableActivateDateTime, $status); $stmt->bind_result($maestroUpgradeID, $maestroID, $maestroName, $registeredActivateStatus, $registeredAccountType, $requestedAccountType, $requestedDateTime, $availableActivateDateTime, $status);
$maestroUpgradeList = array(); $maestroUpgradeList = array();
while($stmt->fetch()) { while($stmt->fetch()) {
$maestro["maestroUpgradeID"] = $maestroUpgradeID; $maestro["maestroUpgradeID"] = $maestroUpgradeID;
$maestro["maestroID"] = $maestroID; $maestro["maestroID"] = $maestroID;
$maestro["maestroName"] = $maestroName; $maestro["maestroName"] = $maestroName;
$maestro["registeredActivateStatus"] = $registeredActivateStatus;
$maestro["registeredAccountType"] = $registeredAccountType; $maestro["registeredAccountType"] = $registeredAccountType;
$maestro["requestedAccountType"] = $requestedAccountType; $maestro["requestedAccountType"] = $requestedAccountType;
$maestro["requestedDateTime"] = $requestedDateTime; $maestro["requestedDateTime"] = $requestedDateTime;
@@ -61,12 +61,20 @@ function register_maestro($maestroID) {
// SET ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(NOW(), INTERVAL 1 YEAR) // SET ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(NOW(), INTERVAL 1 YEAR)
// WHERE MaestroID = ? // WHERE MaestroID = ?
// "; // ";
// closed beta // closed beta
$query = " $query = "
UPDATE maestro UPDATE maestro
SET ActivateStatus = 1, AvailableActivateDateTime = '2022-07-31 23:59:59' SET ActivateStatus = 1, AvailableActivateDateTime = '2022-07-31 23:59:59'
WHERE MaestroID = ? WHERE MaestroID = ?
"; ";
// (07/17) before 2 weeks from closing beta service
// $query = "
// UPDATE maestro
// SET ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(NOW(), INTERVAL 14 DAY)
// WHERE MaestroID = ?
// ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID); $stmt->bind_param("i", $maestroID);
$stmt->execute(); $stmt->execute();
+7 -2
View File
@@ -14,6 +14,7 @@ include "./../mail/send_naver_mail.php";
$maestro_upgrade_id = $_POST["maestro_upgrade_id"]; $maestro_upgrade_id = $_POST["maestro_upgrade_id"];
$maestro_id = $_POST["maestro_id"]; $maestro_id = $_POST["maestro_id"];
$registered_activate_status = $_POST["registered_activate_status"];
$registered_account_type = $_POST["registered_account_type"]; $registered_account_type = $_POST["registered_account_type"];
$upgrade_account_type = $_POST["upgrade_account_type"]; $upgrade_account_type = $_POST["upgrade_account_type"];
@@ -23,7 +24,11 @@ change_upgrade_request_status_to_close($maestro_id);
change_upgrade_request_status_to_applied($maestro_upgrade_id); change_upgrade_request_status_to_applied($maestro_upgrade_id);
$maestro_data = get_maestro_data($maestro_id); $maestro_data = get_maestro_data($maestro_id);
sendMailUpgradeDone($maestro_data["name"], $maestro_data["email"], $registered_account_type, $upgrade_account_type); if($registered_activate_status == 1) { // 체험
sendMailTrialMaestroUpgradeDone($maestro_data["name"], $maestro_data["email"], $registered_account_type, $upgrade_account_type);
} else { // 0: 미승인, 2: 활성화, 3: 환불
sendMailUpgradeDone($maestro_data["name"], $maestro_data["email"], $registered_account_type, $upgrade_account_type);
}
insertMaestroLog("upgrade_maestro", $maestro_id, $registered_account_type." -> ".$upgrade_account_type); insertMaestroLog("upgrade_maestro", $maestro_id, $registered_account_type." -> ".$upgrade_account_type);
// set_data("maestro_upgrade_id", $maestro_upgrade_id); // set_data("maestro_upgrade_id", $maestro_upgrade_id);
@@ -39,7 +44,7 @@ function upgrade_maestro($maestro_id, $upgrade_account_type) {
$query = " $query = "
UPDATE maestro UPDATE maestro
SET AccountType = ?, ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(NOW(), INTERVAL 1 YEAR) SET AccountType = ?, ActivateStatus = 2, AvailableActivateDateTime = DATE_ADD(NOW(), INTERVAL 1 YEAR)
WHERE MaestroID = ?; WHERE MaestroID = ?;
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
+186 -2
View File
@@ -37,7 +37,29 @@ if($maestroID === null) {
exit; exit;
} }
sendMailRegisterBankInfo($maestro_name, $email, $account_type); add_maestro_test_player($maestroID);
$playerID = get_maestro_test_player($maestroID);
if($playerID === null) {
set_error_message("마에스트로 테스트 플레이어 생성 실패");
send_result_fail();
exit;
}
$result = set_maestro_test_player($maestroID, $playerID);
if($result === null || $result === 0) {
set_error_message("마에스트로 테스트 플레이어 등록 실패");
send_result_fail();
exit;
}
add_default_activated_apps($maestroID);
add_maestro_sample_player_data($maestroID);
$count = count_registered_player($maestroID);
update_count_registered_player($maestroID, $count);
sendMailTrialRegisterDone($maestro_name, $email, $account_type);
insertMaestroLog("add_maestro", $maestroID, $maestro_name." / ".$email." / ".$account_type); insertMaestroLog("add_maestro", $maestroID, $maestro_name." / ".$email." / ".$account_type);
send_result_success(); send_result_success();
@@ -69,10 +91,172 @@ function add_maestro($maestro_name, $password, $email, $account_type) {
$query = " $query = "
INSERT INTO maestro (Name, Password, Email, AccountType, ActivateStatus, AvailableActivateDateTime, PlayerCount, AcceptClausesDateTime, AllowEditEnterCode, MaestroTestID) INSERT INTO maestro (Name, Password, Email, AccountType, ActivateStatus, AvailableActivateDateTime, PlayerCount, AcceptClausesDateTime, AllowEditEnterCode, MaestroTestID)
VALUES (?, PASSWORD(?), ?, ?, 0, NOW(), 0, NOW(), 0, 0)"; VALUES (?, PASSWORD(?), ?, ?, 1, '2022-07-31 23:59:59', 0, NOW(), 0, 0)";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("sssi", $maestro_name, $password, $email, $account_type); $stmt->bind_param("sssi", $maestro_name, $password, $email, $account_type);
$stmt->execute(); $stmt->execute();
} }
function add_maestro_test_player($maestroID) {
global $db_conn;
$query = "
INSERT INTO player (MaestroID, Name, EnterCode, AccountType)
VALUES (?, '마에스트로', '', 1)
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID);
$stmt->execute();
}
function get_maestro_test_player($maestroID) {
global $db_conn;
$query = "
SELECT PlayerID
FROM player
WHERE MaestroID = ? AND AccountType = 1
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID);
$stmt->execute();
$stmt->bind_result($playerID);
$stmt->fetch();
$stmt->close();
return $playerID;
}
function set_maestro_test_player($maestroID, $playerID) {
global $db_conn;
$query = "
UPDATE maestro
SET MaestroTestID = ?
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("ii", $playerID, $maestroID);
$stmt->execute();
return $stmt->affected_rows;
}
function add_default_activated_apps($maestroID) {
global $db_conn;
$query = "
SELECT AppID
FROM app
WHERE Status = 1;
";
$stmt = $db_conn->prepare($query);
$stmt->execute();
$stmt->bind_result($appID);
$activeAppList = array();
while($stmt->fetch()) {
array_push($activeAppList, $appID);
}
$stmt->close();
$count = count($activeAppList);
for($i = 0; $i < $count; $i++) {
$activeAppID = $activeAppList[$i];
$query = "
INSERT INTO active_app (MaestroID, AppID)
VALUES (?, ?);
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("ii", $maestroID, $activeAppID);
$stmt->execute();
$stmt->close();
}
}
function add_maestro_sample_player_data($maestro_id) {
$samplePlayerList = make_sample_player_list($maestro_id);
for($i = 0; $i < count($samplePlayerList); $i++) {
insert_maestro_sample_player_data($maestro_id, $samplePlayerList[$i]);
}
}
function insert_maestro_sample_player_data($maestro_id, $player) {
global $db_conn;
$query = "
INSERT INTO player (MaestroID, Name, EnterCode, AccountType)
VALUES (?, ?, ?, ?)
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("issi",
$maestro_id,
$player["Name"],
$player["EnterCode"],
$player["AccountType"]
);
$stmt->execute();
$stmt->close();
}
function make_sample_player_list() {
$samplePlayerList = array();
$player["Name"] = "050215";
$player["EnterCode"] = "050215";
$player["AccountType"] = 0;
array_push($samplePlayerList, $player);
$player["Name"] = "6-3_이철수";
$player["EnterCode"] = "1111";
$player["AccountType"] = 0;
array_push($samplePlayerList, $player);
$player["Name"] = "3-1김영희";
$player["EnterCode"] = "0301";
$player["AccountType"] = 0;
array_push($samplePlayerList, $player);
$player["Name"] = "홍길동";
$player["EnterCode"] = "181231";
$player["AccountType"] = 0;
array_push($samplePlayerList, $player);
return $samplePlayerList;
}
function count_registered_player($maestroID) {
global $db_conn;
$query = "
SELECT COUNT(PlayerID)
FROM player
WHERE MaestroID = ? AND AccountType = 0
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID);
$stmt->execute();
$stmt->bind_result($countPlayer);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
return $countPlayer;
}
function update_count_registered_player($maestroID, $countPlayer) {
global $db_conn;
$query = "
UPDATE maestro
SET PlayerCount = ?
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("ii", $countPlayer, $maestroID);
$stmt->execute();
}
?> ?>
+12 -6
View File
@@ -26,14 +26,20 @@ if($loginData === null) {
send_result_fail(); send_result_fail();
exit; exit;
} else if($loginData[activateStatus] === 0) { } else if($loginData[activateStatus] === 0) {
set_error_code("over_date"); set_error_code("not_paid_maestro");
set_error_message("마에스트로 계정이 아직 활성화되지 않았습니다."); set_error_message("아직 유료 가입하지 않은 마에스트로 계정입니다.");
send_result_fail(); send_result_fail();
exit; exit;
/* } else if($loginData[activateStatus] === 100) {
} else if($loginData[activateStatus] === 1 && $date < $now) { set_error_code("canceled_maestro");
set_error_message("등록이 취소된 마에스트로 계정입니다.");
send_result_fail();
exit;
/*
// 체험, 활성화 계정은 유효기간이 지나도 접속할 수 있음
// 그래야 연장, 업그레이드를 통해 유료 결제하고 계정을 다시 살릴 수 있음
} else if($loginData[activateStatus] !== 0 && $date < $now) {
set_error_code("over_date"); set_error_code("over_date");
$date = new DateTime($loginData[availableActivateDateTime]);
set_error_message("마에스트로 계정의 유효기간이 지났습니다. : ".$date->format("Y-m-d H:i:s")); set_error_message("마에스트로 계정의 유효기간이 지났습니다. : ".$date->format("Y-m-d H:i:s"));
send_result_fail(); send_result_fail();
exit; exit;
@@ -60,7 +66,7 @@ function get_maestro_id($maestroName) {
$query = " $query = "
SELECT MaestroID SELECT MaestroID
FROM maestro FROM maestro
WHERE Name = ? AND ActivateStatus = 1 WHERE Name = ? AND ActivateStatus != 0
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("s", $maestroName); $stmt->bind_param("s", $maestroName);
+4 -2
View File
@@ -18,6 +18,7 @@ $playerCount = getPlayerCount($maestroID);
set_data("name", $info["name"]); set_data("name", $info["name"]);
set_data("email", $info["email"]); set_data("email", $info["email"]);
set_data("accountType", $info["accountType"]); set_data("accountType", $info["accountType"]);
set_data("activateStatus", $info["activateStatus"]);
set_data("availableActivateDateTime", $info["availableActivateDateTime"]); set_data("availableActivateDateTime", $info["availableActivateDateTime"]);
set_data("playerCount", $playerCount); set_data("playerCount", $playerCount);
send_result_success(); send_result_success();
@@ -28,14 +29,14 @@ function get_maestro_info($maestroID) {
global $db_conn; global $db_conn;
$query = " $query = "
SELECT Name, Email, AccountType, AvailableActivateDateTime, PlayerCount SELECT Name, Email, AccountType, ActivateStatus, AvailableActivateDateTime, PlayerCount
FROM maestro FROM maestro
WHERE MaestroID = ? WHERE MaestroID = ?
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("s", $maestroID); $stmt->bind_param("s", $maestroID);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($name, $email, $accountType, $availableActivateDateTime, $playerCount); $stmt->bind_result($name, $email, $accountType, $activateStatus, $availableActivateDateTime, $playerCount);
// while($stmt->fetch()) // while($stmt->fetch())
$stmt->fetch(); $stmt->fetch();
$stmt->close(); $stmt->close();
@@ -43,6 +44,7 @@ function get_maestro_info($maestroID) {
$info["name"] = $name; $info["name"] = $name;
$info["email"] = $email; $info["email"] = $email;
$info["accountType"] = $accountType; $info["accountType"] = $accountType;
$info["activateStatus"] = $activateStatus;
$info["availableActivateDateTime"] = $availableActivateDateTime; $info["availableActivateDateTime"] = $availableActivateDateTime;
$info["playerCount"] = $playerCount; $info["playerCount"] = $playerCount;
@@ -11,7 +11,8 @@ include './../lib/maestro_account_info.php';
include "./../mail/send_naver_mail.php"; include "./../mail/send_naver_mail.php";
$maestro_id = $_POST["maestro_id"]; $maestro_id = $_POST["maestro_id"];
$registered_acount_type = $_POST["registered_account_type"]; $registered_activate_status = $_POST["registered_activate_status"];
$registered_account_type = $_POST["registered_account_type"];
$upgrade_account_type = $_POST["upgrade_account_type"]; $upgrade_account_type = $_POST["upgrade_account_type"];
@@ -22,7 +23,7 @@ $upgrade_account_type = $_POST["upgrade_account_type"];
// exit; // exit;
// } // }
add_maestro_update($maestro_id, $registered_acount_type, $upgrade_account_type); add_maestro_update($maestro_id, $registered_activate_status, $registered_account_type, $upgrade_account_type);
// simplely check if maestro upgrade db added or not // simplely check if maestro upgrade db added or not
$countUpgrade = count_maestro_upgrade($maestro_id); $countUpgrade = count_maestro_upgrade($maestro_id);
@@ -35,7 +36,12 @@ if($countUpgrade === null || $countUpgrade < 1) {
} }
$maestro_data = get_maestro_data($maestro_id); $maestro_data = get_maestro_data($maestro_id);
sendMailUpgradeBankInfo($maestro_data["name"], $maestro_data["email"], $registered_acount_type, $upgrade_account_type); if($maestro_data["activateStatus"] == 1) { // 체험
sendMailTrialMaestroUpgradeBankInfo($maestro_data["name"], $maestro_data["email"], $registered_account_type, $upgrade_account_type);
} else { // activateStatus == 2 : 활성화
sendMailUpgradeBankInfo($maestro_data["name"], $maestro_data["email"], $registered_account_type, $upgrade_account_type);
}
send_result_success(); send_result_success();
exit; exit;
@@ -61,15 +67,15 @@ function count_maestro_upgrade($maestro_id) {
return $countUpgrade; return $countUpgrade;
} }
function add_maestro_update($maestro_id, $registered_acount_type, $upgrade_account_type) { function add_maestro_update($maestro_id, $registered_activate_status, $registered_account_type, $upgrade_account_type) {
global $db_conn; global $db_conn;
$query = " $query = "
INSERT INTO maestro_upgrade (RegisteredAccountType, RequestedAccountType, RequestedDateTime, Status, MaestroID) INSERT INTO maestro_upgrade (RegisteredActivateStatus, RegisteredAccountType, RequestedAccountType, RequestedDateTime, Status, MaestroID)
VALUES (?, ?, NOW(), 1, ?); VALUES (?, ?, ?, NOW(), 1, ?);
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("iii", $registered_acount_type, $upgrade_account_type, $maestro_id); $stmt->bind_param("iiii", $registered_activate_status, $registered_account_type, $upgrade_account_type, $maestro_id);
$stmt->execute(); $stmt->execute();
} }
+59 -6
View File
@@ -86,11 +86,19 @@ $subjectMap['closedBetaRegistrationDone'] = "[초코마에] {{maestro_name}} -
$bodyMap['closedBetaRegistrationDone'] = "안녕하세요.<br/>". $bodyMap['closedBetaRegistrationDone'] = "안녕하세요.<br/>".
"[초코마에] 마에스트로 계정을 신청해 주셔서 감사합니다.<br/>". "[초코마에] 마에스트로 계정을 신청해 주셔서 감사합니다.<br/>".
"<br/>". "<br/>".
"신청하신 마에스트로 계정 내용은 아래와 같습니다.<br/>".
"1) 아이디 : {{maestro_name}}<br/>".
"2) 요금제 : {{student_count}}명 ({{price}}원)<br/>".
"<br/>".
"--------------------".
"<br/>".
"<br/>".
"{{maestro_name}} - 마에스트로 계정이 활성화 되었습니다.<br/>". "{{maestro_name}} - 마에스트로 계정이 활성화 되었습니다.<br/>".
"<br/>". "<br/>".
"* 베타 기간인 7월 말까지 무료로 사용하실 수 있습니다. 마음에 들면 유료 정식 서비스때 결제 부탁드릴게요.<br/>". "<br/>".
"* 베타 기간동안 서버 부하와 안정성을 확인합니다. 문제가 없으면 이후 유료로 정식 서비스를 재개할 예정입니다.<br/>". "* 베타 기간인 7월 말까지 무료로 사용하실 수 있습니다. 마음에 들면 유료 결제(유효기간 연장 / 업그레이드)를 부탁드릴게요.<br/>".
"* 계정 업그레이드는 베타 기간 이후에 가능합니다.<br/>". "* 어뷰징 및 서버 성능 향상을 위해 사용하지 않는 계정은 삭제됩니다.<br/>".
"* 위와 같은 이유로, 2주간의 체험 기간이 끝나고 결제가 이루어지지 않은 계정은 이후 자동으로 삭제됩니다.<br/>".
"<br/>". "<br/>".
"등록하신 마에스트로 계정 정보는 마에스트로 로그인 후, [계정 정보 수정] 화면에서 변경이 가능합니다.<br/>". "등록하신 마에스트로 계정 정보는 마에스트로 로그인 후, [계정 정보 수정] 화면에서 변경이 가능합니다.<br/>".
"(변경 가능 정보 : 마에스트로 아이디, 이메일, 암호)<br/>". "(변경 가능 정보 : 마에스트로 아이디, 이메일, 암호)<br/>".
@@ -98,7 +106,6 @@ $bodyMap['closedBetaRegistrationDone'] = "안녕하세요.<br/>".
"감사합니다."; "감사합니다.";
// extension // extension
$subjectMap['extensionBankInfo'] = "[초코마에] {{maestro_name}} - 마에스트로 계정 유효기간 연장을 위한 입금 안내"; $subjectMap['extensionBankInfo'] = "[초코마에] {{maestro_name}} - 마에스트로 계정 유효기간 연장을 위한 입금 안내";
$bodyMap['extensionBankInfo'] = "안녕하세요.<br/>". $bodyMap['extensionBankInfo'] = "안녕하세요.<br/>".
@@ -143,6 +150,52 @@ $bodyMap['extensionDone'] = "안녕하세요.<br/>".
// upgrade - trial maestro
$subjectMap['trialMaestroUpgradeBankInfo'] = "[초코마에] {{maestro_name}} - 마에스트로 계정 업그레이드를 위한 입금 안내";
$bodyMap['trialMaestroUpgradeBankInfo'] = "안녕하세요.<br/>".
"[초코마에] 마에스트로 계정 요금제 업그레이드를 신청해주셔서 감사합니다.<br/>".
"<br/>".
"{{maestro_name}} - 마에스트로 계정의 현재 요금제와 업그레이드 요금제는 아래와 같습니다.<br/>".
"1) 현재 사용중인 요금제 : {{prev_student_count}}명 (0원 : 무료 체험 기간)<br/>".
"2) 신청하신 업그레이드 요금제 : {{upgrade_student_count}}명 ({{upgrade_price}}원)<br/>".
"<br/>".
"<br/>".
"계정 요금제 업그레이드를 위한 은행 계좌 입금 정보는 아래와 같습니다.<br/>".
"------------------------------------------------------------<br/>".
"* 은행 계좌 : {{bank_account_no}} ( 카카오뱅크, 예금주 : 박지상 )<br/>".
"* 금액 : {{upgrade_price}}원<br/>".
"* 송금자명 : {{maestro_name}} (신청하신 마에스트로 아이디)<br/>".
" ☞ 빠른 입금 확인을 위해, 송금자명을 본인 이름 대신 위와 같이 아이디로 부탁드립니다 ☜<br/>".
"------------------------------------------------------------<br/>".
"<br/>".
"* 혹시 신청하신 아이디가 아니라 본인 이름등으로 송금되었다면, 송금자명을 본 메일로 답신 부탁드립니다.<br/>".
"<br/>".
"* 상위 요금제로 업그레이드 하시면, 유효기간은 업그레이드가 적용된 날짜로부터 1년으로 설정됩니다.<br/>".
"* 유효기간이 끝나서 비활성화된 계정과 그 안에 있는 모든 정보는, 6개월 후에 자동 삭제됩니다.<br/>".
"<br/>".
"<br/>".
"계정 신청 내역과 입금 내역이 확인되는대로 마에스트로 아이디를 업그레이드 해드리겠습니다.<br/>".
"현재 수작업으로 확인하고 활성화하고 있어서 시간이 조금 걸리는 점 양해 부탁드립니다.<br/>".
"마에스트로 계정이 업그레이드 되는대로, 즉시 알림 메일을 드리겠습니다.<br/>".
"<br/>".
"감사합니다.";
$subjectMap['trialMaestroUpgradeDone'] = "[초코마에] {{maestro_name}} - 마에스트로 계정의 요금제 업그레이드 완료 알림";
$bodyMap['trialMaestroUpgradeDone'] = "안녕하세요.<br/>".
"[초코마에] 마에스트로 계정 요금제 업그레이드를 신청해주셔서 감사합니다.<br/>".
"<br/>".
"{{maestro_name}} - 마에스트로 계정의 요금제가 [ {{prev_student_count}}명 (0원 : 무료 체험 기간) ] 에서 [ {{upgrade_student_count}}명 ({{upgrade_price}}원) ] 으로 업그레이드 되었습니다.<br/>".
"<br/>".
"* 마에스트로 계정 유효기간이 오늘부터 1년으로 설정되었습니다.<br/>".
"<br/>".
"<br/>".
"등록하신 마에스트로 계정 정보는 마에스트로 로그인 후, [계정 정보 수정] 화면에서 변경이 가능합니다.<br/>".
"(변경 가능 정보 : 마에스트로 아이디, 이메일, 암호)<br/>".
"<br/>".
"감사합니다.";
// upgrade // upgrade
$subjectMap['upgradeBankInfo'] = "[초코마에] {{maestro_name}} - 마에스트로 계정 업그레이드를 위한 입금 안내"; $subjectMap['upgradeBankInfo'] = "[초코마에] {{maestro_name}} - 마에스트로 계정 업그레이드를 위한 입금 안내";
$bodyMap['upgradeBankInfo'] = "안녕하세요.<br/>". $bodyMap['upgradeBankInfo'] = "안녕하세요.<br/>".
@@ -163,7 +216,7 @@ $bodyMap['upgradeBankInfo'] = "안녕하세요.<br/>".
"<br/>". "<br/>".
"* 혹시 신청하신 아이디가 아니라 본인 이름등으로 송금되었다면, 송금자명을 본 메일로 답신 부탁드립니다.<br/>". "* 혹시 신청하신 아이디가 아니라 본인 이름등으로 송금되었다면, 송금자명을 본 메일로 답신 부탁드립니다.<br/>".
"<br/>". "<br/>".
"* 상위 요금제로 업그레이드 하시면, 유효기간은 업그레이드가 적용된 날짜로부터 1년으로 다시 채워집니다.<br/>". "* 상위 요금제로 업그레이드 하시면, 유효기간은 업그레이드가 적용된 날짜로부터 1년으로 설정됩니다.<br/>".
"* 유효기간이 끝나서 비활성화된 계정과 그 안에 있는 모든 정보는, 6개월 후에 자동 삭제됩니다.<br/>". "* 유효기간이 끝나서 비활성화된 계정과 그 안에 있는 모든 정보는, 6개월 후에 자동 삭제됩니다.<br/>".
"<br/>". "<br/>".
"<br/>". "<br/>".
@@ -179,7 +232,7 @@ $bodyMap['upgradeDone'] = "안녕하세요.<br/>".
"<br/>". "<br/>".
"{{maestro_name}} - 마에스트로 계정의 요금제가 [ {{prev_student_count}}명 ({{prev_price}}원) ] 에서 [ {{upgrade_student_count}}명 ({{upgrade_price}}원) ] 으로 업그레이드 되었습니다.<br/>". "{{maestro_name}} - 마에스트로 계정의 요금제가 [ {{prev_student_count}}명 ({{prev_price}}원) ] 에서 [ {{upgrade_student_count}}명 ({{upgrade_price}}원) ] 으로 업그레이드 되었습니다.<br/>".
"<br/>". "<br/>".
"* 마에스트로 계정 유효기간이 오늘부터 1년으로 다시 채워졌습니다.<br/>". "* 마에스트로 계정 유효기간이 오늘부터 1년으로 설정되었습니다.<br/>".
"<br/>". "<br/>".
"<br/>". "<br/>".
"등록하신 마에스트로 계정 정보는 마에스트로 로그인 후, [계정 정보 수정] 화면에서 변경이 가능합니다.<br/>". "등록하신 마에스트로 계정 정보는 마에스트로 로그인 후, [계정 정보 수정] 화면에서 변경이 가능합니다.<br/>".
+51 -2
View File
@@ -40,6 +40,21 @@ function sendMailRegisterDone($maestro_name, $maestro_email) {
} }
// Register - closed beta, trial maestro
function sendMailTrialRegisterDone($maestro_name, $maestro_email, $account_type) {
global $subjectMap, $bodyMap;
$subject = str_replace("{{maestro_name}}", $maestro_name, $subjectMap['closedBetaRegistrationDone']);
$body = str_replace("{{maestro_name}}", $maestro_name, $bodyMap['closedBetaRegistrationDone']);
$body = str_replace("{{student_count}}", get_max_player_count($account_type), $body);
$price = number_format(get_price($account_type));
$body = str_replace("{{price}}", $price, $body);
return send_naver_mail($maestro_email, $maestro_name, $subject, $body);
}
// Extend // Extend
function sendMailExtensionBankInfo($maestro_name, $prev_date, $new_available_date, $maestro_email, $account_type) { function sendMailExtensionBankInfo($maestro_name, $prev_date, $new_available_date, $maestro_email, $account_type) {
global $subjectMap, $bodyMap, $bank_account_no; global $subjectMap, $bodyMap, $bank_account_no;
@@ -69,6 +84,39 @@ function sendMailExtensionDone($maestro_name, $new_available_date, $maestro_emai
} }
// Upgrade - trial maestro
function sendMailTrialMaestroUpgradeBankInfo($maestro_name, $maestro_email, $prev_account_type, $upgrade_account_type) {
global $subjectMap, $bodyMap, $bank_account_no;
$subject = str_replace("{{maestro_name}}", $maestro_name, $subjectMap['trialMaestroUpgradeBankInfo']);
$body = str_replace("{{maestro_name}}", $maestro_name, $bodyMap['trialMaestroUpgradeBankInfo']);
$body = str_replace("{{prev_student_count}}", get_max_player_count($prev_account_type), $body);
$prev_price = number_format(get_price($prev_account_type));
$body = str_replace("{{upgrade_student_count}}", get_max_player_count($upgrade_account_type), $body);
$upgrade_price = number_format(get_price($upgrade_account_type));
$body = str_replace("{{upgrade_price}}", $upgrade_price, $body);
$body = str_replace("{{bank_account_no}}", $bank_account_no, $body);
$body = str_replace("{{price}}", $upgrade_price, $body);
return send_naver_mail($maestro_email, $maestro_name, $subject, $body);
}
function sendMailTrialMaestroUpgradeDone($maestro_name, $maestro_email, $prev_account_type, $upgrade_account_type) {
global $subjectMap, $bodyMap;
$subject = str_replace("{{maestro_name}}", $maestro_name, $subjectMap['trialMaestroUpgradeDone']);
$body = str_replace("{{maestro_name}}", $maestro_name, $bodyMap['trialMaestroUpgradeDone']);
$body = str_replace("{{prev_student_count}}", get_max_player_count($prev_account_type), $body);
$body = str_replace("{{upgrade_student_count}}", get_max_player_count($upgrade_account_type), $body);
$upgrade_price = number_format(get_price($upgrade_account_type));
$body = str_replace("{{upgrade_price}}", $upgrade_price, $body);
return send_naver_mail($maestro_email, $maestro_name, $subject, $body);
}
// Upgrade // Upgrade
function sendMailUpgradeBankInfo($maestro_name, $maestro_email, $prev_account_type, $upgrade_account_type) { function sendMailUpgradeBankInfo($maestro_name, $maestro_email, $prev_account_type, $upgrade_account_type) {
global $subjectMap, $bodyMap, $bank_account_no; global $subjectMap, $bodyMap, $bank_account_no;
@@ -83,8 +131,9 @@ function sendMailUpgradeBankInfo($maestro_name, $maestro_email, $prev_account_ty
$upgrade_price = number_format(get_price($upgrade_account_type)); $upgrade_price = number_format(get_price($upgrade_account_type));
$body = str_replace("{{upgrade_price}}", $upgrade_price, $body); $body = str_replace("{{upgrade_price}}", $upgrade_price, $body);
$body = str_replace("{{bank_account_no}}", $bank_account_no, $body); $body = str_replace("{{bank_account_no}}", $bank_account_no, $body);
$charge_price = (int)$upgrade_price - (int)$prev_price; $charge_price = get_price($upgrade_account_type) - get_price($prev_account_type);
$body = str_replace("{{price}}", $charge_price, $body); // $charge_price = (int)$upgrade_price - (int)$prev_price;
$body = str_replace("{{price}}", number_format($charge_price), $body);
return send_naver_mail($maestro_email, $maestro_name, $subject, $body); return send_naver_mail($maestro_email, $maestro_name, $subject, $body);
} }
+1 -1
View File
@@ -35,7 +35,7 @@ if($activateStatus == 0) {
send_result_fail(); send_result_fail();
exit; exit;
} else if($activateStatus == 100) { } else if($activateStatus == 100) {
set_error_message("죄송합니다. 등록이 취소된 마에스트로 계정입니다."); set_error_message("등록이 취소된 마에스트로 계정입니다.");
send_result_fail(); send_result_fail();
exit; exit;
} }