Esempio n. 1
0
def clean_notice():
    """
    清除通知管理数据
    :return:
    """
    mysql_execute('truncate tbl_trade_notice',trade=True)
    redis_execute().delete('netCar:NOTICE_REDIS_CACHE_KEY:')
Esempio n. 2
0
def delete_blacklist():
    """
    删除黑名单中的数据
    :return:
    """

    mysql_execute('delete from tbl_trade_black_list',trade=True)
Esempio n. 3
0
def delete_image():
    """
    删除图片
    :return:
    """

    mysql_execute('delete from tbl_trade_image',trade=True)
    redis_execute(trade=True).delete('netCar:IMAGE_CACHE_KEY')
Esempio n. 4
0
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')
Esempio n. 5
0
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))
Esempio n. 6
0
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:')
Esempio n. 7
0
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)
Esempio n. 8
0
    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}}
Esempio n. 9
0
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
Esempio n. 10
0
 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)
Esempio n. 11
0
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
Esempio n. 12
0
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
Esempio n. 13
0
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
Esempio n. 14
0
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
Esempio n. 15
0
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
Esempio n. 16
0
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
Esempio n. 17
0
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
Esempio n. 18
0
    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}
Esempio n. 19
0
    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']
        })
Esempio n. 20
0
def pipe_open_all_channel():
    """
    pipe平台开启全部渠道
    :return:
    """
    mysql_execute('update tbl_platform_channel_sort set isOpen=1')
Esempio n. 21
0
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)
Esempio n. 22
0
# -*- 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,