You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
48 lines
1.6 KiB
3 months ago
|
from django_redis import get_redis_connection
|
||
|
import pymysql
|
||
|
from pymysql.cursors import DictCursor
|
||
|
from dingxin_toolbox_drf.settings import CONFIG
|
||
|
from env import ENV
|
||
|
|
||
|
def get_ecard(ip, env, pid, cid):
|
||
|
redis_con = get_redis_connection()
|
||
|
redis_key = f"ecard_{ip}_{env}_{pid}_{cid}"
|
||
|
print('get_ecard-ecard_num', redis_key)
|
||
|
if redis_con.exists(redis_key):
|
||
|
ecard_num = redis_con.get(redis_key)
|
||
|
print('get_ecard-ecard_num', ecard_num)
|
||
|
return str(ecard_num, encoding='utf-8')
|
||
|
return False
|
||
|
|
||
|
|
||
|
def set_ecard(ip, env, pid, cid, ecard):
|
||
|
redis_con = get_redis_connection()
|
||
|
redis_key = f"ecard_{ip}_{env}_{pid}_{cid}"
|
||
|
if redis_con.exists(redis_key):
|
||
|
redis_con.delete(redis_key)
|
||
|
return redis_con.set(redis_key, ecard)
|
||
|
|
||
|
|
||
|
def get_ecard_renew_fee(ecard_number):
|
||
|
return get_ecard_info('renew_fee', ecard_number)
|
||
|
|
||
|
|
||
|
def get_ecard_level(ecard_number):
|
||
|
return get_ecard_info('card_level_no', ecard_number)
|
||
|
|
||
|
|
||
|
def get_ecard_info(filed, ecard_number):
|
||
|
ecard_server = {
|
||
|
'host': CONFIG[ENV]['ECARD_DB']['HOST'],
|
||
|
'user': CONFIG[ENV]['ECARD_DB']['USER'],
|
||
|
'password': CONFIG[ENV]['ECARD_DB']['PASSWORD'],
|
||
|
'port': CONFIG[ENV]['ECARD_DB']['PORT'],
|
||
|
'database': CONFIG[ENV]['ECARD_DB']['NAME'],
|
||
|
}
|
||
|
ecard_conn = pymysql.Connect(**ecard_server)
|
||
|
ecard_cursor = ecard_conn.cursor(DictCursor)
|
||
|
sql = f'SELECT {filed} FROM fws_dgp_card_db.card_level WHERE card_level_no = (SELECT card_level_no FROM fws_dgp_card_db.card WHERE card_num = %s);'
|
||
|
ecard_cursor.execute(sql, (ecard_number,))
|
||
|
result = ecard_cursor.fetchone()[filed]
|
||
|
return result
|