Fix: complete extending maestro

This commit is contained in:
2019-10-31 14:32:25 +09:00
parent d60f6a7ad0
commit cb64f98c64
5 changed files with 79 additions and 39 deletions
+4 -16
View File
@@ -33,6 +33,7 @@
<script type="text/javascript" src="./../../../resources/jquery/jquery-3.3.1.min.js"></script> <script type="text/javascript" src="./../../../resources/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="./../../game/lib/util/number_util.js"></script> <script type="text/javascript" src="./../../game/lib/util/number_util.js"></script>
<script type="text/javascript" src="./../js/main.js"></script> <script type="text/javascript" src="./../js/main.js"></script>
<script type="text/javascript" src="./../js/maestro_available_date.js"></script>
<script type="text/javascript" src="./../js/request_server.js"></script> <script type="text/javascript" src="./../js/request_server.js"></script>
<script type="text/javascript" src="./../js/lib/account_info.js"></script> <script type="text/javascript" src="./../js/lib/account_info.js"></script>
<script type="text/javascript"> <script type="text/javascript">
@@ -171,23 +172,10 @@
// console.log("day : " + availableDateArray[2]); // console.log("day : " + availableDateArray[2]);
var endDate = new Date(availableDateArray[0], availableDateArray[1] - 1, availableDateArray[2]); var endDate = new Date(availableDateArray[0], availableDateArray[1] - 1, availableDateArray[2]);
// console.log("endDate : " + endDate); // console.log("endDate : " + endDate);
/* var maestroAvailableDate = new MaestroAvailableDate();
var newDate = new Date(endDate.setFullYear(endDate.getFullYear() + 1)); maestroAvailableDate.setEndDate(endDate);
// console.log("newDate : " + newDate); newAvailableDate = maestroAvailableDate.getNewAvailableDate();
// var newAvailableDate = newDate.toISOString().substring(0, 10);
var newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2);
// console.log("newAvailableDate : " + newAvailableDate); // console.log("newAvailableDate : " + newAvailableDate);
*/
var today = new Date();
var endDay = new Date(endDate);
var diffDay = (endDay.getTime() - today.getTime()) / (1000 * 60 * 60 * 24);
var newDate = null;
if(diffDay < 0) // end date is over
newDate = new Date(today.setFullYear(today.getFullYear() + 1));
else
newDate = new Date(endDay.setFullYear(endDay.getFullYear() + 1));
newAvailableDate = newDate.getFullYear() + "-" + ("0"+(newDate.getMonth()+1)).slice(-2) + "-" + ("0" + newDate.getDate()).slice(-2);
console.log("newAvailableDate : " + newAvailableDate);
// console.log(maestroExtensionID); // console.log(maestroExtensionID);
// console.log(maestroID); // console.log(maestroID);
+20 -6
View File
@@ -21,12 +21,26 @@ MaestroAvailableDate.prototype.getDiffDay = function() {
return Math.ceil(diffDay); return Math.ceil(diffDay);
} }
MaestroAvailableDate.prototype.getNewAvailableDate = function(diffDay) { MaestroAvailableDate.prototype.isExpiredMaestro = function() {
if(this.getDiffDay() < 0)
return true;
return false;
}
MaestroAvailableDate.prototype.getAvailableDate = function() {
return this.endDate;
}
MaestroAvailableDate.prototype.getNewAvailableDate = function() {
var diffDay = this.getDiffDay();
var newDate = null; var newDate = null;
if(diffDay < 0) // end date is over if(diffDay < 0) // end date is over
newDate = new Date(new Date().setFullYear(this.today.getFullYear() + 1)); newDate = new Date(new Date().setFullYear(this.today.getFullYear() + 1));
else else
newDate = new Date(new Date().setFullYear(this.endDay.getFullYear() + 1)); newDate = new Date(new Date(this.endDate).setFullYear(this.endDay.getFullYear() + 1));
// console.log("# newDate : " + newDate);
var year2Digits = newDate.getFullYear(); var year2Digits = newDate.getFullYear();
var month2Digits = ("0"+(newDate.getMonth()+1)).slice(-2); var month2Digits = ("0"+(newDate.getMonth()+1)).slice(-2);
@@ -45,7 +59,7 @@ MaestroAvailableDate.prototype.showMaestroExtensionMessage = function(maestroNam
var message = ""; var message = "";
if(diffDay > 0) if(diffDay > 0)
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 얼마 남지 않았습니다.<br/>1년 더 사용 원하신다면 우측의 [유효기간 연장] 버튼을 눌러주세요."; message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 얼마 남지 않았습니다.<br/>1년 더 사용하기를 원하신다면 우측의 [유효기간 연장] 버튼을 눌러주세요.";
else else
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>유효기간 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다."; message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>유효기간 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다.";
@@ -61,12 +75,12 @@ MaestroAvailableDate.prototype.showEndDate = function() {
$("#end_day").html(this.endDate); $("#end_day").html(this.endDate);
if(diffDay < 0) { if(diffDay < 0) {
$("#maestro_count_down_date").html("유효 기간 : ~ " + this.endDate + " <span id='countdown_day'>(" + Math.abs(diffDay) + "일 경과) </span>"); $("#maestro_count_down_date").html("유효기간 : ~ " + this.endDate + " <span id='countdown_day'>(" + Math.abs(diffDay) + "일 경과) </span>");
$("#countdown_day").addClass("bg-danger font-weight-bold text-light"); $("#countdown_day").addClass("bg-danger font-weight-bold text-light");
} }
else { else {
$("#maestro_count_down_date").html("유효 기간 : ~ " + this.endDate + " <span id='countdown_day'>(남은 기간 : " + diffDay + "일)</span>"); $("#maestro_count_down_date").html("유효기간 : ~ " + this.endDate + " <span id='countdown_day'>(남은 기간 : " + diffDay + "일)</span>");
if(diffDay < 10) if(diffDay < 10)
$("#countdown_day").addClass("bg-danger text-light"); $("#countdown_day").addClass("bg-danger text-light");
+11 -8
View File
@@ -48,11 +48,14 @@ function showMaestroName(maestroName) {
function extendMaestroAccount() { function extendMaestroAccount() {
// console.log("extend maestro account"); // console.log("extend maestro account");
console.log("maestroID : " + maestroID); availableDate = maestroAvailableDate.getAvailableDate();
console.log("availableDate : " + availableDate); newAvailableDate = maestroAvailableDate.getNewAvailableDate();
console.log("newAvailableDate : " + newAvailableDate);
console.log("registeredAccountType : " + registeredAccountType); // console.log("maestroID : " + maestroID);
return; // console.log("availableDate : " + availableDate);
// console.log("newAvailableDate : " + newAvailableDate);
// console.log("registeredAccountType : " + registeredAccountType);
// return;
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode); sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/maestro/request_extension_maestro.php", "./../server/maestro/request_extension_maestro.php",
@@ -64,7 +67,7 @@ function extendMaestroAccount() {
(function(jsonData) { (function(jsonData) {
// console.log(jsonData); // console.log(jsonData);
alert("연장 신청이 등록되었습니다.\n입금 확인과 처리에 시간이 조금 걸립니다. 양해 부탁드립니다."); alert("연장 신청이 등록되었습니다.\n아래 정보를 참고하여 송금 부탁드립니다.\n입금 내역 확인과 처리에 시간이 조금 걸리는 점 양해 부탁드립니다.");
// location.href="main_menu.html"; // location.href="main_menu.html";
}), }),
@@ -119,8 +122,8 @@ function extendMaestroAccount() {
<div class="px-2 mb-4"> <div class="px-2 mb-4">
<h5 class="card-title">유효 기간을 <span class="text-primary">+1년 연장</span>합니다.</h5> <h5 class="card-title">유효 기간을 <span class="text-primary">+1년 연장</span>합니다.</h5>
<ul> <ul>
<li>만료일 이내 : 유효 기간 만료일(<span id="end_day"></span>) 기준으로 1년이 추가됩니다.</li> <li><span class="text-primary">만료일 이내</span> 연장 신청시 : 유효 기간 만료일(<span id="end_day"></span>) 기준으로 1년이 추가됩니다.</li>
<li>만료일 경과 : 연장 결재가 이루어진 날을 기준으로 1년이 추가됩니다</li> <li><span class="text-danger">만료일 이후</span> 연장 신청시 : 연장 결재가 이루어진 날을 기준으로 1년이 추가됩니다</li>
</ul> </ul>
<h5 class="card-title">연장 신청 방법</h5> <h5 class="card-title">연장 신청 방법</h5>
+34
View File
@@ -44,6 +44,9 @@ function onLoadSuccessMaestroInfo() {
maestroAvailableDate.setEndDateTime(maestroInfo.availableActivateDateTime); maestroAvailableDate.setEndDateTime(maestroInfo.availableActivateDateTime);
maestroAvailableDate.showEndDate(); maestroAvailableDate.showEndDate();
maestroAvailableDate.showMaestroExtensionMessage(maestroInfo.maestroName); maestroAvailableDate.showMaestroExtensionMessage(maestroInfo.maestroName);
if(maestroAvailableDate.isExpiredMaestro()) {
$("#expiredMaestroModal").modal();
}
$("#maestro_info_player_count").val("학생수 : " + maestroInfo.getRegisteredPlayerCount() + " / " + maestroInfo.getMaxPlayerCount()); $("#maestro_info_player_count").val("학생수 : " + maestroInfo.getRegisteredPlayerCount() + " / " + maestroInfo.getMaxPlayerCount());
@@ -126,6 +129,37 @@ function showModal(popupModalID, popupContentID, contentFileName) {
</script> </script>
<div class="modal fade" id="expiredMaestroModal" tabindex="-1" role="dialog" aria-labelledby="expiredMaestroModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header alert-danger">
<h5 class="modal-title" id="exerienceMaestroModalLabel">마에스트로 계정 만료</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
▶ 마에스트로 계정 유효기간이 지났습니다.
<br/>
- <span class="text-primary">화면 상단의 <kbd>유효기간 연장</kbd> 버튼을 클릭하여, 유효기간을 연장하세요.</span><br/>
- 연장 신청에 대한 입금 내역이 확인된 후에 연장 처리됩니다.<br/>
<span class="text-muted mx-3">(수작업으로 입금을 확인하고 있어서 시간이 조금 걸립니다. 양해 부탁드립니다)</span><br/>
<br/>
▶ [학생 로그인] 제한<br/>
- <span class="text-danger">유효기간이 지난 계정에서는 학생들의 로그인이 제한됩니다.</span><br/>
- 학생들의 정보는 그대로 유지됩니다. 연장이 이루어지면 다시 정상적으로 로그인할 수 있습니다.<br/>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-primary">Save changes</button> -->
</div>
</div>
</div>
</div>
<div class="modal fade" id="experienceMaestroModal" tabindex="-1" role="dialog" aria-labelledby="experienceMaestroModalLabel" aria-hidden="true"> <div class="modal fade" id="experienceMaestroModal" tabindex="-1" role="dialog" aria-labelledby="experienceMaestroModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content"> <div class="modal-content">
+10 -9
View File
@@ -15,16 +15,12 @@ $maestro_name = $_POST["maestro_name"];
$new_available_date = $_POST["new_available_date"]; $new_available_date = $_POST["new_available_date"];
$registered_account_type = $_POST["registered_account_type"]; $registered_account_type = $_POST["registered_account_type"];
$maestro_data = get_maestro_data($maestro_id); extension_maestro($maestro_id, $new_available_date);
set_data("maestro_data", $maestro_data);
send_result_fail("test");
exit;
extension_maestro($maestro_id);
change_extension_request_status_to_close($maestro_id); change_extension_request_status_to_close($maestro_id);
change_extension_request_status_to_applied($maestro_extension_id); change_extension_request_status_to_applied($maestro_extension_id);
$maestro_data = get_maestro_data($maestro_id);
// $maestro_name, $new_available_date, $maestro_email // $maestro_name, $new_available_date, $maestro_email
sendMailExtensionDone($maestro_data["name"], $new_available_date, $maestro_data["email"]); sendMailExtensionDone($maestro_data["name"], $new_available_date, $maestro_data["email"]);
insertMaestroLog("extension_maestro", $maestro_id, $maestro_name."(".$registered_account_type.")"); insertMaestroLog("extension_maestro", $maestro_id, $maestro_name."(".$registered_account_type.")");
@@ -37,16 +33,21 @@ exit;
function extension_maestro($maestro_id) { function extension_maestro($maestro_id, $new_available_date) {
global $db_conn; global $db_conn;
// $query = "
// UPDATE maestro
// SET ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(AvailableActivateDateTime, INTERVAL 1 YEAR)
// WHERE MaestroID = ?;
// ";
$query = " $query = "
UPDATE maestro UPDATE maestro
SET ActivateStatus = 1, AvailableActivateDateTime = DATE_ADD(AvailableActivateDateTime, INTERVAL 1 YEAR) SET ActivateStatus = 1, AvailableActivateDateTime = DATE_FORMAT(?, '%Y-%m-%d')
WHERE MaestroID = ?; WHERE MaestroID = ?;
"; ";
$stmt = $db_conn->prepare($query); $stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestro_id); $stmt->bind_param("si", $new_available_date, $maestro_id);
$stmt->execute(); $stmt->execute();
} }