Fix: send mail to 30days, 7days left maestro python
This commit is contained in:
@@ -103,33 +103,6 @@ $(document).ready(function() {
|
|||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
<!-- account extension -->
|
|
||||||
<div class="card bg-light">
|
|
||||||
<h5 class="card-header">계정 연장</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row mx-1">
|
|
||||||
<div class="col-12">
|
|
||||||
<h5 class="mb-2">유효 기간 연장 방법</h5>
|
|
||||||
</div> <!-- col -->
|
|
||||||
</div> <!-- row -->
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
마에스트로 계정 유효 기간이 30일 남았을 때부터 계정 연장 화면이 나타납니다.<br/>
|
|
||||||
<span class="text-muted">(유효 기간이 30일 넘게 남았을 때는 안보입니다)</span>
|
|
||||||
</li>
|
|
||||||
<li>화면 상단에 유효 기간 연장 화면이 보이면, 오른쪽의 <kbd>계정 연장</kbd> 버튼을 눌러주세요.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</p> <!-- card teext -->
|
|
||||||
</div> <!-- card body -->
|
|
||||||
</div> <!-- card -->
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- account upgrade -->
|
<!-- account upgrade -->
|
||||||
<div class="card bg-light">
|
<div class="card bg-light">
|
||||||
<h5 class="card-header">계정 업그레이드</h5>
|
<h5 class="card-header">계정 업그레이드</h5>
|
||||||
@@ -146,7 +119,7 @@ $(document).ready(function() {
|
|||||||
<ul>
|
<ul>
|
||||||
<li>화면 상단 오른쪽의 <kbd>업그레이드</kbd> 버튼을 눌러주세요.</li>
|
<li>화면 상단 오른쪽의 <kbd>업그레이드</kbd> 버튼을 눌러주세요.</li>
|
||||||
<li>모든 요금제의 기능은 동일합니다. 요금제에 따라 최대 등록 학생수만 늘어납니다.</li>
|
<li>모든 요금제의 기능은 동일합니다. 요금제에 따라 최대 등록 학생수만 늘어납니다.</li>
|
||||||
<li>기존 요금제의 남은 유효 기간과 상관 없이, 업그레이드 날짜로부터 다시 1년동안 사용하실 수 있습니다.</li>
|
<li>기존 요금제의 남은 유효기간과 상관 없이, 업그레이드 날짜로부터 다시 1년동안 사용하실 수 있습니다.</li>
|
||||||
<li>
|
<li>
|
||||||
높은 요금제로 올릴 수는 있지만, 낮은 요금제로 내릴 수는 없습니다.<br/>
|
높은 요금제로 올릴 수는 있지만, 낮은 요금제로 내릴 수는 없습니다.<br/>
|
||||||
<span class="text-muted">(현재 계정을 취소하여 남은 기간만큼 환불받고, 새로운 계정을 신청하세요)</span>
|
<span class="text-muted">(현재 계정을 취소하여 남은 기간만큼 환불받고, 새로운 계정을 신청하세요)</span>
|
||||||
@@ -159,6 +132,33 @@ $(document).ready(function() {
|
|||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- account extension -->
|
||||||
|
<div class="card bg-light">
|
||||||
|
<h5 class="card-header">계정 유효기간 연장</h5>
|
||||||
|
<div class="card-body">
|
||||||
|
<p class="card-text">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row mx-1">
|
||||||
|
<div class="col-12">
|
||||||
|
<h5 class="mb-2">유효기간 연장 방법</h5>
|
||||||
|
</div> <!-- col -->
|
||||||
|
</div> <!-- row -->
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
마에스트로 계정 유효기간이 30일 남았을 때부터 계정 유효기간 연장 화면이 나타납니다.<br/>
|
||||||
|
<span class="text-muted">(유효기간이 30일 넘게 남았을 때는 안보입니다)</span>
|
||||||
|
</li>
|
||||||
|
<li>화면 상단에 유효기간 연장 화면이 보이면, 오른쪽의 <kbd>유효기간 연장</kbd> 버튼을 눌러주세요.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</p> <!-- card teext -->
|
||||||
|
</div> <!-- card body -->
|
||||||
|
</div> <!-- card -->
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
<!-- player management -->
|
<!-- player management -->
|
||||||
<div class="card bg-light">
|
<div class="card bg-light">
|
||||||
<h5 class="card-header">학생 목록 관리</h5>
|
<h5 class="card-header">학생 목록 관리</h5>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function showEndDate(date) {
|
|||||||
var endDay = new Date(endDate);
|
var endDay = new Date(endDate);
|
||||||
var diffDay = getDiffDay(endDay, today);
|
var diffDay = getDiffDay(endDay, today);
|
||||||
|
|
||||||
$("#maestro_count_down_date").html("유효 기간 : ~ " + endDate + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
|
$("#maestro_count_down_date").html("유효기간 : ~ " + endDate + " <span id='countdown_day'>(남은 기간 : " + Math.ceil(diffDay) + "일)</span>");
|
||||||
if(diffDay < 30)
|
if(diffDay < 30)
|
||||||
$("#countdown_day").addClass("text-danger");
|
$("#countdown_day").addClass("text-danger");
|
||||||
else if(diffDay < 10)
|
else if(diffDay < 10)
|
||||||
@@ -74,9 +74,9 @@ function showMaestroExtensionMessage(maestroName, date) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
$("#maestro_extension").removeClass("d-none");
|
$("#maestro_extension").removeClass("d-none");
|
||||||
var message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효 기간이 얼마 남지 않았습니다.<br/>1년 더 사용을 원하신다면 우측의 [계정 연장] 버튼을 눌러주세요.";
|
var message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 얼마 남지 않았습니다.<br/>1년 더 사용을 원하신다면 우측의 [유효기간 연장] 버튼을 눌러주세요.";
|
||||||
if(diffDay < 0)
|
if(diffDay < 0)
|
||||||
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효 기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>계정 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다.";
|
message = "<span class='font-weight-bold'>" + maestroName + "</span> 계정의 유효기간이 지났습니다. 등록된 학생들의 정보는 유지되지만, 로그인이 제한됩니다.<br/>유효기간 연장을 하시면 다시 로그인하고 사용할 수 있게 됩니다.";
|
||||||
|
|
||||||
$("#maestro_extension_message").html(message);
|
$("#maestro_extension_message").html(message);
|
||||||
}
|
}
|
||||||
@@ -205,7 +205,7 @@ function showModal(popupModalID, popupContentID, contentFileName) {
|
|||||||
message
|
message
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-offset my-auto">
|
<div class="col-sm-offset my-auto">
|
||||||
<a class="btn btn-primary pull-right" role="button" href="./../maestro/extension.html" style="float:right;">계정 연장</a>
|
<a class="btn btn-primary pull-right" role="button" href="./../maestro/extension.html" style="float:right;">유효기간 연장</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once __DIR__."/mail/mail_sender.php";
|
||||||
|
require_once __DIR__."/mail/mail_setting.php";
|
||||||
|
require_once __DIR__."/mail/chocomae_info.php";
|
||||||
|
|
||||||
|
if($argc != 4) {
|
||||||
|
echo "check the input arguments\n";
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// for($i = 0; $i < $argc; $i++) {
|
||||||
|
// echo "[".$i."] : ".$argv[$i]."\n";
|
||||||
|
// }
|
||||||
|
// exit(0);
|
||||||
|
|
||||||
|
|
||||||
|
$maestroEmail = $argv[1];
|
||||||
|
$maestroName = $argv[2];
|
||||||
|
$date = $argv[3];
|
||||||
|
$year = substr($date, 0, 4);
|
||||||
|
$month = substr($date, 4, 2);
|
||||||
|
$day = substr($date, 6, 2);
|
||||||
|
$registerDate = $year."년 ".$month."월 ".$day."일";
|
||||||
|
|
||||||
|
|
||||||
|
$parameters = array(
|
||||||
|
"maestro_name" => $maestroName,
|
||||||
|
"available_date" => $registerDate
|
||||||
|
);
|
||||||
|
|
||||||
|
$recipientParam = array(
|
||||||
|
"maestro_name" => $maestroName
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$nCloudSetting = new MailSetting();
|
||||||
|
$chocomae = new ChocomaeInfo();
|
||||||
|
|
||||||
|
$mailSender = new MailSender();
|
||||||
|
$mailSender->setMailSetting($nCloudSetting);
|
||||||
|
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
|
||||||
|
|
||||||
|
$mailSender->makePostParam(333);
|
||||||
|
$mailSender->setParameters($parameters);
|
||||||
|
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
|
||||||
|
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
|
||||||
|
|
||||||
|
// $mailSender->showSettings();
|
||||||
|
$mailSender->send();
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once __DIR__."/mail/mail_sender.php";
|
||||||
|
require_once __DIR__."/mail/mail_setting.php";
|
||||||
|
require_once __DIR__."/mail/chocomae_info.php";
|
||||||
|
|
||||||
|
if($argc != 4) {
|
||||||
|
echo "check the input arguments\n";
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// for($i = 0; $i < $argc; $i++) {
|
||||||
|
// echo "[".$i."] : ".$argv[$i]."\n";
|
||||||
|
// }
|
||||||
|
// exit(0);
|
||||||
|
|
||||||
|
|
||||||
|
$maestroEmail = $argv[1];
|
||||||
|
$maestroName = $argv[2];
|
||||||
|
$date = $argv[3];
|
||||||
|
$year = substr($date, 0, 4);
|
||||||
|
$month = substr($date, 4, 2);
|
||||||
|
$day = substr($date, 6, 2);
|
||||||
|
$registerDate = $year."년 ".$month."월 ".$day."일";
|
||||||
|
|
||||||
|
|
||||||
|
$parameters = array(
|
||||||
|
"maestro_name" => $maestroName,
|
||||||
|
"available_date" => $registerDate
|
||||||
|
);
|
||||||
|
|
||||||
|
$recipientParam = array(
|
||||||
|
"maestro_name" => $maestroName
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$nCloudSetting = new MailSetting();
|
||||||
|
$chocomae = new ChocomaeInfo();
|
||||||
|
|
||||||
|
$mailSender = new MailSender();
|
||||||
|
$mailSender->setMailSetting($nCloudSetting);
|
||||||
|
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
|
||||||
|
|
||||||
|
$mailSender->makePostParam(691);
|
||||||
|
$mailSender->setParameters($parameters);
|
||||||
|
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
|
||||||
|
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
|
||||||
|
|
||||||
|
// $mailSender->showSettings();
|
||||||
|
$mailSender->send();
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
from lib.database.db_manager import DBManager
|
||||||
|
|
||||||
|
|
||||||
|
class ExpireMaestroManager:
|
||||||
|
db_params = None
|
||||||
|
db_man = None
|
||||||
|
|
||||||
|
def __init__(self, mode):
|
||||||
|
self.db_man = DBManager(mode)
|
||||||
|
|
||||||
|
def get_30days_left_maestro_list(self):
|
||||||
|
unpaid_30days_sql = 'select * from maestro \
|
||||||
|
where DATE(AvailableActivateDateTime) - INTERVAL 30 DAY = DATE(NOW()) AND ActivateStatus = 1'
|
||||||
|
day30_maestro_list = self.db_man.select(unpaid_30days_sql)
|
||||||
|
return day30_maestro_list
|
||||||
|
|
||||||
|
def get_7days_left_maestro_list(self):
|
||||||
|
unpaid_7days_sql = 'select * from maestro \
|
||||||
|
where DATE(AvailableActivateDateTime) - INTERVAL 7 DAY = DATE(NOW()) AND ActivateStatus = 1'
|
||||||
|
day7_maestro_list = self.db_man.select(unpaid_7days_sql)
|
||||||
|
return day7_maestro_list
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
import sys
|
||||||
|
from datetime import datetime
|
||||||
|
import subprocess
|
||||||
|
from batch.expire_maestro_manager import ExpireMaestroManager
|
||||||
|
|
||||||
|
|
||||||
|
# print('# args : {}'.format(len(sys.argv)))
|
||||||
|
# print('args : {}'.format(str(sys.argv)))
|
||||||
|
mode = 'mac'
|
||||||
|
arg_count = len(sys.argv)
|
||||||
|
if arg_count > 1:
|
||||||
|
mode = str(sys.argv[1]).lower()
|
||||||
|
|
||||||
|
|
||||||
|
def print_items(list):
|
||||||
|
for item in list:
|
||||||
|
print(item)
|
||||||
|
|
||||||
|
|
||||||
|
def send_mail_30days_left(email, name, available_date):
|
||||||
|
filename = 'send_mail_to_30days_left_maestro.php'
|
||||||
|
path = ''
|
||||||
|
if mode == 'mac':
|
||||||
|
path = '/Applications/MAMP/htdocs/mouse_typing/src/web/php/'
|
||||||
|
else:
|
||||||
|
path = '/var/www/html/mouse_typing/src/web/php/'
|
||||||
|
|
||||||
|
command_send_mail = []
|
||||||
|
command_send_mail.append('/usr/bin/php')
|
||||||
|
command_send_mail.append(path + filename)
|
||||||
|
command_send_mail.append(email)
|
||||||
|
command_send_mail.append(name)
|
||||||
|
date = available_date.strftime('%Y%m%d')
|
||||||
|
command_send_mail.append(date)
|
||||||
|
# print(command_send_mail)
|
||||||
|
|
||||||
|
# command_move_dir = ['cd', path]
|
||||||
|
# print(command_move_dir)
|
||||||
|
# subprocess.call(command_move_dir)
|
||||||
|
# command_move_pwd = ['pwd']
|
||||||
|
# subprocess.call(command_move_pwd)
|
||||||
|
subprocess.call(command_send_mail)
|
||||||
|
|
||||||
|
|
||||||
|
def send_mail_7days_left(email, name, available_date):
|
||||||
|
filename = 'send_mail_to_7days_left_maestro.php'
|
||||||
|
path = ''
|
||||||
|
if mode == 'mac':
|
||||||
|
path = '/Applications/MAMP/htdocs/mouse_typing/src/web/php/'
|
||||||
|
else:
|
||||||
|
path = '/var/www/html/mouse_typing/src/web/php/'
|
||||||
|
|
||||||
|
command_send_mail = []
|
||||||
|
command_send_mail.append('/usr/bin/php')
|
||||||
|
command_send_mail.append(path + filename)
|
||||||
|
command_send_mail.append(email)
|
||||||
|
command_send_mail.append(name)
|
||||||
|
date = available_date.strftime('%Y%m%d')
|
||||||
|
command_send_mail.append(date)
|
||||||
|
# print(command_send_mail)
|
||||||
|
|
||||||
|
# command_move_dir = ['cd', path]
|
||||||
|
# print(command_move_dir)
|
||||||
|
# subprocess.call(command_move_dir)
|
||||||
|
# command_move_pwd = ['pwd']
|
||||||
|
# subprocess.call(command_move_pwd)
|
||||||
|
subprocess.call(command_send_mail)
|
||||||
|
|
||||||
|
|
||||||
|
# insert log and delete from DB
|
||||||
|
# print("30 days left");
|
||||||
|
expireMaestroMan = ExpireMaestroManager(mode)
|
||||||
|
maestro_list = expireMaestroMan.get_30days_left_maestro_list()
|
||||||
|
# print_items(maestro_list)
|
||||||
|
for maestro in maestro_list:
|
||||||
|
send_mail_30days_left(maestro['Email'], maestro['Name'], maestro['AvailableActivateDateTime'])
|
||||||
|
|
||||||
|
# print("\n7 days left");
|
||||||
|
maestro_list = expireMaestroMan.get_7days_left_maestro_list()
|
||||||
|
# print_items(maestro_list)
|
||||||
|
for maestro in maestro_list:
|
||||||
|
send_mail_7days_left(maestro['Email'], maestro['Name'], maestro['AvailableActivateDateTime'])
|
||||||
@@ -30,12 +30,14 @@ if($loginData === null) {
|
|||||||
set_error_message("마에스트로 계정이 아직 활성화되지 않았습니다.");
|
set_error_message("마에스트로 계정이 아직 활성화되지 않았습니다.");
|
||||||
send_result_fail();
|
send_result_fail();
|
||||||
exit;
|
exit;
|
||||||
|
/*
|
||||||
} else if($loginData[activateStatus] === 1 && $date < $now) {
|
} else if($loginData[activateStatus] === 1 && $date < $now) {
|
||||||
set_error_code("over_date");
|
set_error_code("over_date");
|
||||||
$date = new DateTime($loginData[availableActivateDateTime]);
|
$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;
|
||||||
|
*/
|
||||||
} else if($loginData[maestroID] === null) {
|
} else if($loginData[maestroID] === null) {
|
||||||
set_error_code("wrong_password");
|
set_error_code("wrong_password");
|
||||||
set_error_message("비밀번호가 틀렸습니다.");
|
set_error_message("비밀번호가 틀렸습니다.");
|
||||||
|
|||||||
Reference in New Issue
Block a user