dingxin_toolbox
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

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