Add: unpaid maestro db work

This commit is contained in:
2019-04-20 23:50:48 +09:00
parent c51d4be681
commit 3d4ffbf3a7
4 changed files with 95 additions and 85 deletions
+28 -31
View File
@@ -1,5 +1,7 @@
import datetime import datetime
import time
import pymysql import pymysql
from db_setting import DBSetting
class DBConnectParams: class DBConnectParams:
@@ -14,56 +16,51 @@ class DBConnectParams:
class DBManager: class DBManager:
def __init__(self): def __init__(self):
print('init')
self.conn = None self.conn = None
self.curs = None self.curs = None
self.db_params = DBConnectParams()
self.db_params = DBConnectParams()
self.db_params.port = DBSetting.port
self.db_params.user = DBSetting.user
self.db_params.password = DBSetting.password
super().__init__() super().__init__()
def close(self): def connect(self):
print('close')
self.conn.close()
def connect(self, dbParam):
self.conn = pymysql.connect( self.conn = pymysql.connect(
host=dbParam.host, port=dbParam.port, host=self.db_params.host, port=self.db_params.port,
user=dbParam.user, password=dbParam.password, user=self.db_params.user, password=self.db_params.password,
db=dbParam.db, charset=dbParam.charset) db=self.db_params.db, charset=self.db_params.charset)
self.curs = self.conn.cursor(pymysql.cursors.DictCursor)
def select(self, sql): def select(self, sql):
self.curs.execute(sql) self.execute_sql(sql, [])
self.conn.close()
rows = self.curs.fetchall() rows = self.curs.fetchall()
return rows return rows
def insert(self, sql, params): def insert(self, sql, params):
self.execute_sql(sql, params) self.execute_sql(sql, params)
self.conn.commit()
self.conn.close()
def update(self, sql, params): def update(self, sql, params):
self.execute_sql(sql, params) self.execute_sql(sql, params)
self.conn.commit()
self.conn.close()
def delete(self, sql, params): def delete(self, sql, params):
self.execute_sql(sql, params) self.execute_sql(sql, params)
self.conn.commit()
self.conn.close()
def execute_sql(self, sql, params): def execute_sql(self, sql, params):
self.connect()
self.curs = self.conn.cursor(pymysql.cursors.DictCursor)
# print(type(sql))
# print(sql)
# print(type(params))
# print(params)
self.curs.execute(sql, params) self.curs.execute(sql, params)
self.conn.commit()
@staticmethod
''' def get_datetime_now():
def get_waiting_account_list(self): return time.strftime('%Y-%m-%d %H:%M:%S')
sql = "select * from maestro"
self.curs.execute(sql)
rows = self.curs.fetchall()
today = datetime.datetime.today()
before_7days= today - datetime.timedelta(days=7)
for row in rows:
name = row['Name']
registered_datetime = row['AcceptClausesDateTime']
available_datetime = row['AvailableActivateDateTime']
# print(type(registeredDateTime))
if type(available_datetime) is str and before_7days >= registered_datetime:
print("{0}, {1}, {2}".format(name, available_datetime, registered_datetime))
'''
+30 -23
View File
@@ -1,36 +1,43 @@
from unpaid_maestro_checker import UnpaidMaestroChecker from unpaid_maestro_manager import UnpaidMaestroManager
from mail_sender import NCloud from mail_sender import NCloud
from mail_sender import MailSender from mail_sender import MailSender
def send_mail_for_test(name, email, register_date): def test_send_mail():
MailSender.send_temp_mail()
return
maestro_name = 'test1'
maestro_email = 'jisangs@daum.net'
params = {'maestro_name': maestro_name, 'maestro_date': '2019-04-08'}
mail_sender = MailSender()
mail_sender.make_default_post_param() mail_sender.make_default_post_param()
mail_sender.set_post_param('templateSid', 337) mail_sender.set_post_param('templateSid', 337)
mail_sender.set_post_param_recipients(name, email) mail_sender.set_post_param_recipients(maestro_name, maestro_email)
mail_sender.set_post_param('parameters', mail_sender.set_post_param('parameters', params)
{'maestro_name': name, 'maestro_date': register_date })
timestamp = MailSender.get_timestamp() timestamp = MailSender.get_timestamp()
# print('hmac : ' + MailSender.hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret')) # print('hmac : ' + MailSender.hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret'))
signature = MailSender.make_signature(NCloud.request_url, timestamp) signature = MailSender.make_signature(NCloud.request_url, timestamp)
# print('signature : ' + signature.decode('utf-8')) # print('signature : ' + signature.decode('utf-8'))
# print('signature : ' + signature) mail_sender.send_email(timestamp, signature)
# mail_sender.send_email(timestamp, signature)
MailSender.send_temp_mail()
mail_sender = MailSender()
send_mail_for_test('test1', 'jisangs@daum.net', '2019-04-08')
''' def test_db_work():
checker = UnpaidMaestroChecker() unpaid_maestro_manager = UnpaidMaestroManager()
day7MaestroList = checker.get_unpaid_7days_maestro_list() day7_maestro_list = unpaid_maestro_manager.get_unpaid_7days_maestro_list()
for maestro_data in day7MaestroList: # print(day7_maestro_list)
maestro_id = maestro_data['MaestroID'] maestro_list = list()
name = maestro_data['Name'] maestro_list.append(day7_maestro_list[0])
email = maestro_data['Email'] # print(maestro_list)
registered_dateTime = maestro_data['AcceptClausesDateTime'] for maestro in maestro_list:
available_dateTime = maestro_data['AvailableActivateDateTime'] maestro_id = maestro['MaestroID']
print("{0}, {1}, {2}, {3}, {4}" \ maestro_name = maestro['Name']
.format(maestro_id, name, email, available_dateTime, registered_dateTime)) remark = maestro_name + ' / ' + 'unpaid 7 days'
''' unpaid_maestro_manager.insert_maestro_log(maestro_id, remark)
unpaid_maestro_manager.delete_maestro(maestro_id)
test_send_mail()
# test_db_work()
@@ -1,31 +0,0 @@
from db_setting import DBSetting
from db_manager import DBConnectParams, DBManager
class UnpaidMaestroChecker:
dbParams = None
dbMan = None
unpaid_7days_sql = "select * from maestro \
where DATE(NOW()) - INTERVAL 7 DAY > AcceptClausesDateTime AND ActivateStatus = 0"
unpaid_8days_sql = "select * from maestro \
where DATE(NOW()) - INTERVAL 8 DAY > AcceptClausesDateTime AND ActivateStatus = 0"
def __init__(self):
self.dbParams = DBConnectParams()
self.dbParams.port = DBSetting.port
self.dbParams.user = DBSetting.user
self.dbParams.password = DBSetting.password
self.dbMan = DBManager()
self.dbMan.connect(self.dbParams)
def get_unpaid_7days_maestro_list(self):
day7_maestro_list = self.dbMan.select(self.unpaid_7days_sql)
self.dbMan.close()
return day7_maestro_list
def get_unpaid_8days_maestro_list(self):
day8_maestro_list = self.dbMan.select(self.unpaid_8days_sql)
self.dbMan.close()
return day8_maestro_list
@@ -0,0 +1,37 @@
from db_manager import DBConnectParams
from db_manager import DBManager
class UnpaidMaestroManager:
db_params = None
db_man = None
def __init__(self):
self.db_man = DBManager()
def get_unpaid_7days_maestro_list(self):
unpaid_7days_sql = 'select * from maestro \
where DATE(NOW()) - INTERVAL 7 DAY > AcceptClausesDateTime AND ActivateStatus = 0'
day7_maestro_list = self.db_man.select(unpaid_7days_sql)
return day7_maestro_list
def get_unpaid_8days_maestro_list(self):
unpaid_8days_sql = 'select * from maestro \
where DATE(NOW()) - INTERVAL 8 DAY > AcceptClausesDateTime AND ActivateStatus = 0'
day8_maestro_list = self.db_man.select(unpaid_8days_sql)
return day8_maestro_list
def insert_maestro_log(self, maestro_id, remark):
sql = 'INSERT INTO maestro_log (Type, MaestroID, LogDateTime, Remark) \
VALUES (\'delete_maestro\', %s, %s, %s)'
params = (maestro_id, DBManager.get_datetime_now(), remark)
# print(sql)
# print(params)
self.db_man.insert(sql, params)
def delete_maestro(self, maestro_id):
sql = 'DELETE FROM maestro WHERE MaestroID = %s'
params = (maestro_id)
# print(sql)
# print(params)
self.db_man.delete(sql, params)