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