def clean_notice(): """ 清除通知管理数据 :return: """ mysql_execute('truncate tbl_trade_notice',trade=True) redis_execute().delete('netCar:NOTICE_REDIS_CACHE_KEY:')
def delete_blacklist(): """ 删除黑名单中的数据 :return: """ mysql_execute('delete from tbl_trade_black_list',trade=True)
def delete_image(): """ 删除图片 :return: """ mysql_execute('delete from tbl_trade_image',trade=True) redis_execute(trade=True).delete('netCar:IMAGE_CACHE_KEY')
def clean_activity_rule(): """ 清除活动细则 :return: """ mysql_execute('truncate tbl_trade_activity_rules_config',trade=True) redis_execute().delete('netCar:IMAGE_CACHE_KEY:1') redis_execute().delete('netCar:IMAGE_CACHE_KEY:2')
def fix_activity_status(activity_id,status): """ 修改活动状态 :param activity_id: :param status: :return: """ mysql_execute('update tbl_trade_activity set activity_status=%s where activity_id=%s',params=(status,activity_id))
def delete_activity_display(): """ 删除活动展示管理数据 :param activity_display_id: :return: """ mysql_execute('TRUNCATE `netCar`.`tbl_trade_activity_display_manage`',trade=True) redis_execute().delete('netCar:ACTIVITY_DISPLAY_MANAGE_KEY:')
def clean_user_contact(mobile): """ 清除用户常用联系人 :param args: :return: """ cus_id = mysql_execute(sql='select id from tbl_trade_customer where mobile=%s', params=(mobile),trade=True) if cus_id: mysql_execute('delete from tbl_trade_contact where cus_id=%s', params=cus_id['id'],trade=True)
def sz_callback_accepted(self): """ 神州订单回调接单 :param request: :return: """ # 查询渠道ID与pipe_id car_info_detail = mysql_execute( 'select * from netCarPlatform.tbl_platform_car_info where trade_order_id=%s and channel_type=4 limit 1', params=(self.trade_order_id)) if not car_info_detail: return '未查询到该订单!' channel_order_id = car_info_detail['channel_order_id'] # 渠道ID partner_order_id = car_info_detail['id'] # 定义请求参数 change_status_request_data = { "bankFlag": 1, "content": { "dOrderId": partner_order_id, "eventExplanation": "", "orderId": channel_order_id, "status": 'dispatched' }, "operation": "statusChanged" } # 更新订单详情接口返回数据 default_data = json.loads( mysql_execute( 'select api_response from mock_response where api_url="/v1/resource/order/getOrderDetail" and channel="sz"', platform=True)['api_response']) default_data['content']['order']['id'] = channel_order_id default_data['content']['order']['customData'] = json.dumps( {"dOrderId": partner_order_id}) default_data['content']['order']['status'] = 'dispatched' redis_execute().set(name=str(channel_order_id) + '_sz_order_detail_response', value=json.dumps(default_data)) logger.info('redis key: {0}'.format( str(channel_order_id) + '_sz_order_detail_response')) logger.info('redis value: {0}'.format(json.dumps(default_data))) logger.info('update redis success!') # 请求参数加密 request_encrypt = requests.get( url=self.sz_encrypt_url, params={'q': str(change_status_request_data)}, headers=self.headers) logger.info('sz request encrypt url: {0}'.format(self.sz_encrypt_url)) logger.info( 'sz request encrypt data: {0}'.format(change_status_request_data)) logger.info(request_encrypt.text) return {'request_data': {'q': request_encrypt.text}}
def get_channel_manager_detail(channel_mark,channel_type=None,vehicle_type=None): """ 获取渠道管理详情 :return: """ if not channel_type and not vehicle_type: result = mysql_execute('select * from tbl_platform_channel_sort where channelMark=%s',params=(channel_mark), is_fetchone=False) elif not vehicle_type: result = mysql_execute('select * from tbl_platform_channel_sort where channelMark=%s and channelType=%s', params=(channel_mark,channel_type),is_fetchone=False) elif not channel_type: result = mysql_execute('select * from tbl_platform_channel_sort where channelMark=%s and vehicleType=%s', params=(channel_mark,vehicle_type),is_fetchone=False) else: result = mysql_execute('select * from tbl_platform_channel_sort where channelMark=%s and channelType=%s and vehicleType=%s',params=(channel_mark,channel_type,vehicle_type)) return result
def record_result(self,result_dict): """ 执行结果记录 :param result_json: :return: """ monitoring_name = result_dict['monitoring_name'] result_list = result_dict['result'] redis_key = result_dict['redis_key'] run_result_flag = 0 error_msg = {} for x in result_list: if x['result'] == False: error_msg.update({'method':x['method'],'message':x['message']}) run_result_flag = 1 mysql_execute('insert into test_http.pf_monitoring (monitoring_name,result,message,redis_key) values (%s,%s,%s,%s)',params=(monitoring_name,run_result_flag,json.dumps(error_msg),redis_key),platform=True)
def get_active_activity_list(): """ 获取当前生效的活动 :return: """ activity_list = mysql_execute('select * from tbl_trade_activity where activity_status=1',is_fetchone=False) return activity_list
def get_coupon_recharge_record(batch_id): """ 根据批次号查询充值记录 :param batch_id: :return: """ result = mysql_execute('select * from tbl_trade_coupon_recharge_record where batch_id=%s',params=(batch_id),trade=True,is_fetchone=False) return result
def get_sheet_config_settings_detail(config_name): """ 获取sheet平台基础配置管理项详情 :param name: :return: """ detail = mysql_execute('SELECT * FROM tbl_trade_config_setting WHERE config_name=%s',params=(config_name),trade=True) return detail
def get_activity_id_for_bank_activity_id(bank_activity_id): """ 根据银行活动ID查询活动ID :param bank_activity_id: :return: """ activity_detail = mysql_execute('select * from tbl_trade_activity where activity_id=%s', params=(bank_activity_id),trade=True) return activity_detail
def get_trade_customer(number): """ 获取数据库中已存在的用户信息 :return: """ customer_list = mysql_execute('select * from tbl_trade_customer as c left join tbl_trade_order as a on c.mobile = a.mobile where order_status in (11,28,24,21) order by c.create_time DESC LIMIT %s ',params=(number),trade=True,is_fetchone=False) print(customer_list) return customer_list
def get_random_activity_id(): """ 随机生成数据库中不存在的活动ID :return: """ now_time = int(time.time()) while True: activity_id = str(now_time) + str(random.randint(1000,9999)) query_result = mysql_execute('select * from tbl_trade_activity where activity_id=%s',params=(activity_id)) if query_result is None: return activity_id
def get_new_mobile(): """ 获取新手机号,确保数据库中该手机号不存在 :return: """ while True: user_mobile = BaseFaker().create_phone_number() try: user_detail = mysql_execute('select * from tbl_trade_customer where mobile=%s', params=(user_mobile)) except: user_detail = None if user_detail: continue else: return user_mobile
def sq_callback_accepted(self): """ 首汽订单回调接单 :param request: :return: """ sign_key = 'Py4CLvQZB5$A9hN3U' car_info_detail = mysql_execute( 'select * from netCarPlatform.tbl_platform_car_info where trade_order_id=%s and channel_type=2 limit 1', params=(self.trade_order_id)) channel_order_id = car_info_detail['channel_order_id'] # 渠道ID partner_order_id = car_info_detail['id'] car_type = int(car_info_detail['car_type']) # 车型组代码 car_type_name = '' # 车型组名称 if car_type == 34: car_type_name = '舒适型' elif car_type == 35: car_type_name = '商务6座' elif car_type == 40: car_type_name = '商务福祉车' elif car_type == 43: car_type_name = '畅享型' elif car_type == 61: car_type_name = '豪华型' event_time = int(time.time()) expired_time = event_time + 300 event_id = 'a6fb2b1034b54ca1a49c1239c6eb73af' driver_info = { "vehicleColor": '红色', "modelName": '奥迪A7', "groupName": car_type_name, "driverRate": '5.0', "driverId": "100026076", "phone": "13501077762", "groupId": car_type, "driverTrumpetPhone": '15566662111', "licensePlates": '京A77777', "name": '王永生', "vehiclePic": "", "photoSrc": "http://m.360buyimg.com/pop/jfs/t23434/230/1763906670/10667/55866a07/5b697898N78cd1466.jpg" } json_meta = json.dumps({ "driverInfo": driver_info, "orderNo": channel_order_id, "partnerOrderNo": partner_order_id, "status": "accepted" }) sign_id_str = 'channel=shouqi&eventId={0}&eventTime={1}&expiredTime={2}&meta={3}&sqycKey={4}'.format( event_id, event_time, expired_time, json_meta, sign_key) sign_id = string_to_md5(sign_id_str) request_data = { "channel": "shouqi", "eventId": event_id, "eventTime": event_time, "expiredTime": expired_time, "meta": json_meta, "sign": sign_id } logger.info('sq request url: {0}'.format(self.sq_call_back_url)) logger.info('sq request data: {0}'.format(request_data)) return {'request_data': request_data}
def query_ps_and_redis(monitoring_file_name): """ 查询进程状态与Redis结果数据 :param monitoring_file_name: :return: """ running_flag = '未启动' # 查询该任务是否正在运行 run_detail = os.popen('ps -ef | grep %s | grep -v grep' % monitoring_file_name).readlines() logger.info('Query Spdb {0} task: {1}'.format(monitoring_file_name, run_detail)) if run_detail: running_flag = '运行中' else: # 查询该任务是都在待执行列表中 redis_value = redis_helper.redis_execute().get( redis_helper.TEST_SUITE_KEY) if redis_value: down_job_detail = json.loads(redis_value) down_job_list = down_job_detail['down_job_list'] if monitoring_file_name in str(down_job_list): running_flag = '等待中' run_result_flag = True result_format = { 'monitoring_name': None, 'run_time': None, 'running_time': None, 'time_diff': None } run_result = redis_helper.redis_execute().get( name=monitoring_file_name) result_info = [] if run_result: result_format = json.loads(run_result) for x in result_format['result']: if x['result'] != True: run_result_flag = False result_info.append({ "method_name": x['method'], 'message': x['message'] }) # 获取近10次执行结果通过率 run_success_percent_last_ten = 0 last_ten_run_details = mysql_execute( 'select * from test_http.pf_monitoring where redis_key=%s order by create_time desc limit 10', params=(monitoring_file_name), platform=True, is_fetchone=False) run_list = [] if last_ten_run_details: for i in last_ten_run_details: run_list.append(int(i['result'])) success_num = run_list.count(0) run_success_percent_last_ten = int( int(success_num) / len(last_ten_run_details) * 100) # 获取全部执行结果通过率 all_run_success_percent = 0 all_run_details = mysql_execute( 'select * from test_http.pf_monitoring where redis_key=%s', params=(monitoring_file_name), platform=True, is_fetchone=False) all_run_list = [] if all_run_details: for i in all_run_details: all_run_list.append(int(i['result'])) all_success_num = all_run_list.count(0) all_run_success_percent = int( int(all_success_num) / len(all_run_details) * 100) result_list.append({ 'name': result_format['monitoring_name'], 'last_ten_success_percent': run_success_percent_last_ten, 'all_success_percent': all_run_success_percent, 'enabled': running_flag, 'status': run_result_flag, 'message': result_info, 'run_time': result_format['run_time'], 'running_time': result_format['running_time'], 'monitoring_name': monitoring_file_name, 'time_diff': result_format['time_diff'] })
def pipe_open_all_channel(): """ pipe平台开启全部渠道 :return: """ mysql_execute('update tbl_platform_channel_sort set isOpen=1')
def delete_activity(activity_id,sign_id): """ 删除活动 :param activity_id: :param status: :return: """ detail = mysql_execute('select * from tbl_trade_activity where activity_id=%s',params=(activity_id),trade=True) if detail: redis_execute(trade=True).delete('netCar:ACTIVITY:ACTIVITY_ID_{0}'.format(detail['id'])) mysql_execute('delete from tbl_trade_activity where activity_id=%s',params=(activity_id),trade=True) redis_execute(trade=True).delete('netCar:ACTIVITY:ACTIVITY_INFO') mysql_execute('delete from tbl_trade_activity_config where sign_id=%s',params=(sign_id),trade=True) mysql_execute('delete from tbl_trade_activity_detail where activity_id=%s',params=(activity_id),trade=True) mysql_execute('delete from tbl_trade_activity_customer_relation where activity_id=%s',params=(activity_id),trade=True) mysql_execute('delete from tbl_trade_activity_customer_record where activity_id=%s',params=(activity_id),trade=True) mysql_execute('delete from tbl_trade_coupon_recharge_record where activity_id=%s',params=(activity_id),trade=True)
# -*- coding:utf-8 -*- from HttpRunnerManager import settings from ApiManager.utils.mysql_helper import mysql_execute import time, requests from ApiManager.utils import redis_helper if __name__ == '__main__': max_count = 2000 count = 1 redis_helper.redis_execute().set( name=redis_helper.SPDB_PAYCB_ROUNT_MAX_NUMBER_KEY, value=max_count) while count < max_count: redis_helper.redis_execute().set( name=redis_helper.SPDB_PAYCB_ROUNT_CURRENT_NUMBER_KEY, value=count) orders = mysql_execute( 'select * from tbl_trade_order where order_status in (22,25)', is_fetchone=False, trade=True) if orders: print('Paying order number: {0}'.format(len(orders))) for x in orders: order_id = x['id'] print('Start order id: {0}'.format(order_id)) order_pay_record_detail = mysql_execute( 'select id from tbl_trade_order_pay_record where order_id=%s', params=(order_id), trade=True) pay_record_id = order_pay_record_detail['id'] request_data = { "data": { "bigOrderAmt": 5000,