コード例 #1
0
def top_up():
    results = {"code": RET.OK, "msg": MSG.OK}
    try:
        data = request.form.get('money')
        name = request.form.get('name')
        pay_num = sum_code()
        t = xianzai_time()
        money = float(data)
        before = SqlData().search_user_field_name('balance', name)
        user_id = SqlData().search_user_field_name('id', name)
        # 更新账户余额
        SqlData().update_user_balance(money, user_id)
        # 实时查询当前余额,不以理论计算为结果
        balance = SqlData().search_user_field('balance', user_id)
        # 更新客户充值记录
        SqlData().insert_top_up(pay_num, t, money, before, balance, user_id, '系统')

        phone = SqlData().search_user_field_name('phone_num', name)

        if phone:

            CCP().send_Template_sms(phone, [name, t, money], 478898)

        return jsonify(results)

    except Exception as e:
        logging.error(e)
        results['code'] = RET.SERVERERROR
        results['msg'] = MSG.SERVERERROR
        return jsonify(results)
コード例 #2
0
ファイル: task.py プロジェクト: HackerLiu2008/buysys
def insert_task():
    user_id = g.user_id
    data = json.loads(request.form.get('data'))
    country = data.get('country')
    sum_time = data.get('sum_time')
    asin = data.get('asin')
    store_name = data.get('store_name')
    key_word = data.get('key_word')
    kw_location = data.get('kw_location')
    good_name = data.get('good_name')
    good_money = data.get('good_money')
    good_link = data.get('good_link')
    pay_method = data.get('pay_method')
    serve_class = data.get('serve_class')
    mail_method = data.get('mail_method')
    note = data.get('note')
    review_title = data.get('review_title')
    review_info = data.get('review_info')
    feedback_info = data.get('feedback_info')
    try:
        sum_order_code = sum_code()
        parent_id = SqlData().insert_task_parent(user_id, sum_order_code)
        task_code = sum_order_code + '-' + '1'
        SqlData().insert_task_detail(parent_id, task_code, country, asin,
                                     key_word, kw_location, store_name,
                                     good_name, good_money, good_link,
                                     pay_method, sum_time, serve_class,
                                     mail_method, note, review_title,
                                     review_info, feedback_info, user_id)
        return jsonify({'code': RET.OK, 'msg': RET.OK})
    except Exception as e:
        logging.error(str(e))
        return jsonify({'code': RET.SERVERERROR, 'msg': MSG.SERVERERROR})
コード例 #3
0
def refund_balance():
    '''
    卡退款接口
    :return:
    '''
    try:
        data = json.loads(request.form.get('data'))
        card_no = json.loads(request.form.get('card_no'))
        pay_passwd = SqlData().search_card_field('pay_passwd', card_no)
        if "-" in str(data):
            return jsonify({'code': RET.SERVERERROR, 'msg': '请输入正确金额!'})
        refund_money = str(round(float(data) * 100))
        resp = QuanQiuFu().trans_account_cinsume(card_no, pay_passwd, refund_money)
        resp_code = resp.get('resp_code')
        resp_msg = resp.get('resp_msg')
        results = {"code": RET.OK, "msg": MSG.OK}
        if resp_code == "0000":
            user_id = g.user_id

            try:
                detail = resp.get('response_detail')
                remain = int(detail.get('balance')) / 100
                SqlData().update_card_remain('remain', remain, card_no)
            except Exception as e:
                logging.error('退款更新卡余额失败!' + str(e))

            refund = SqlData().search_user_field('refund', user_id)
            hand_money = round(refund * float(data), 2)
            do_money = round(float(data) - hand_money, 2)

            before_balance = SqlData().search_user_field('balance', user_id)
            # 更新账户余额
            SqlData().update_balance(do_money, user_id)
            balance = SqlData().search_user_field('balance', user_id)

            # 将退款金额转换为负数
            do_money = do_money - do_money * 2
            n_time = xianzai_time()
            SqlData().insert_account_trans(n_time, TRANS_TYPE.IN, DO_TYPE.REFUND, 1, card_no, do_money, hand_money,
                                           before_balance,
                                           balance, user_id)

            # 更新客户充值记录
            pay_num = sum_code()
            t = xianzai_time()
            SqlData().insert_top_up(pay_num, t, do_money, before_balance, balance, user_id, '退款')

            results['msg'] = resp_msg
        else:
            resp_msg = resp.get('resp_msg')
            s = '卡余额领回失败,状态码: ' + resp_code + ',信息: ' + resp_msg
            logging.error(s)
            results['code'] = RET.SERVERERROR
            results['msg'] = resp_msg
        return jsonify(results)
    except Exception as e:
        logging.error(str(e))
        results = {"code": RET.SERVERERROR, "msg": MSG.SERVERERROR}
        return jsonify(results)
コード例 #4
0
ファイル: admin.py プロジェクト: HelenLiu97/huihui
def add_account():
    if request.method == 'GET':
        return render_template('admin/add_account.html')
    if request.method == 'POST':
        results = {"code": RET.OK, "msg": MSG.OK}
        try:
            data = json.loads(request.form.get('data'))
            name = data.get('name').strip()
            account = data.get('account').strip()
            password = data.get('password').strip()
            phone_num = data.get('phone_num')
            create_price = float(data.get('create_price'))
            min_top = float(data.get('min_top'))
            max_top = float(30000)
            ed_name = SqlData.search_user_field_name('account', name)
            if ed_name:
                results['code'] = RET.SERVERERROR
                results['msg'] = '该用户名已存在!'
                return jsonify(results)
            if phone_num:
                ret = re.match(r"^1[35789]\d{9}$", phone_num)
                if not ret:
                    results['code'] = RET.SERVERERROR
                    results['msg'] = '请输入符合规范的电话号码!'
                    return jsonify(results)
            else:
                phone_num = ""
            SqlData.insert_account(account, password, phone_num, name,
                                   create_price, min_top, max_top)
            # 创建用户后插入充值数据
            pay_num = sum_code()
            t = xianzai_time()
            user_id = SqlData.search_user_field_name('id', name)
            SqlData.insert_top_up(pay_num, t, 0, 0, 0, user_id)
            SqlData.insert_account_trans(date=t,
                                         trans_type="充值",
                                         do_type="支出",
                                         card_no=0,
                                         do_money=0,
                                         before_balance=0,
                                         balance=0,
                                         user_id=user_id)
            return jsonify(results)
        except Exception as e:
            logging.error(e)
            results['code'] = RET.SERVERERROR
            results['msg'] = MSG.SERVERERROR
            return jsonify(results)
コード例 #5
0
def up_pay_pic():
    results = {'code': RET.OK, 'msg': MSG.OK}
    file = request.files.get('file')
    file_name = sum_code() + ".png"
    file_path = DIR_PATH.PHOTO_DIR + "/" + file_name
    file.save(file_path)
    filename = sm_photo(file_path)
    if filename == 'F':
        os.remove(file_path)
        return jsonify({'code': RET.SERVERERROR, 'msg': '不可上传相同图片,请重新上传!'})
    if filename:
        # 上传成功后插入信息的新的收款方式信息
        os.remove(file_path)
        t = xianzai_time()
        SqlData().insert_qr_code(filename, t)
        return jsonify(results)
    else:
        return jsonify({'code': RET.SERVERERROR, 'msg': MSG.SERVERERROR})
コード例 #6
0
def up_review_pic():
    user_id = g.user_id
    results = {'code': RET.OK, 'msg': MSG.OK}
    file = request.files.get('file')
    task_code = request.args.get('task_code')
    file_name = str(user_id) + "-" + sum_code() + ".png"
    file_path = PHOTO_DIR + "/" + file_name
    file.save(file_path)
    static_path = '/static/photo/' + file_name
    file_path = 'http://114.116.236.27:8080/user/pic_link?path=' + static_path
    phone_link = file_path
    phone_info = SqlData().search_review_pic(task_code)
    if not phone_info:
        link_dict = dict()
        link_dict[phone_link] = 'one'
        link_json = json.dumps(link_dict)
        SqlData().update_review_one('pic_link', link_json, task_code)
    if phone_info:
        link_dict = json.loads(phone_info)
        link_dict[phone_link] = 'two'
        link_json = json.dumps(link_dict)
        SqlData().update_review_one('pic_link', link_json, task_code)
    return jsonify(results)
コード例 #7
0
def pay_pic():
    if request.method == 'GET':
        sum_money = request.args.get('sum_money')
        top_money = request.args.get('top_money')
        cus_name = request.args.get('cus_name')
        cus_account = request.args.get('cus_account')
        phone = request.args.get('phone')
        phone2 = request.args.get("phone2")
        ex_change = request.args.get('ex_change')
        # 取出目前当前收款金额最低的收款码
        qr_info = SqlData.search_qr_code('WHERE status=0')
        if not qr_info:
            url = ''
        else:
            url = ''
            value_list = list()
            for i in qr_info:
                value_list.append(i.get('sum_money'))
            value = min(value_list)
            for n in qr_info:
                money = n.get('sum_money')
                if value == money:
                    url = n.get('qr_code')
                    break
        context = dict()
        bank_top_data = SqlData.search_bank_info(sql_line='WHERE status=2')
        if bank_top_data:
            data = bank_top_data[0]
            context['bank_name'] = data.get('bank_name')
            context['bank_number'] = data.get('bank_number')
            context['bank_address'] = data.get('bank_address')
        else:
            # 一下三个循环和判断为处理相同收款人,多个账号,取低于累计20万的中的最小收款账号
            bank_data = SqlData.search_bank_info(sql_line='WHERE status=0')
            # bank_info 整理为一个收款人对应多个收款卡号 {'':[],'':[]} 格式
            bank_info = dict()
            for n in bank_data:
                bank_name = n.get('bank_name')
                if bank_name in bank_info:
                    info_list = bank_info.get(bank_name)
                    info_list.append(n)
                else:
                    info_list = list()
                    info_list.append(n)
                    bank_info[bank_name] = info_list
            # sum_money_dict 为统计一个账号一共充值了多少元
            sum_money_dict = dict()
            for i in bank_info:
                value = bank_info.get(i)
                money = 0
                for m in value:
                    money += float(m.get('day_money'))
                sum_money_dict[i] = money
            # min_dict 为取出满足累计收款低于20万的账户,且最小的充值战账户
            min_dict = dict()
            for acc in sum_money_dict:
                if sum_money_dict.get(acc) < 200000:
                    min_dict[acc] = sum_money_dict.get(acc)
            if len(min_dict) == 0:
                context['bank_name'] = '无符合要求收款账户!'
                context['bank_number'] = '请联系管理员处理!'
                context['bank_address'] = '-------------'
            else:
                # 在最小充值账户中取出最小收款卡号推送
                min_acc = min(zip(min_dict.values(), min_dict.keys()))
                min_acc = min_acc[1]
                acc_list = bank_info.get(min_acc)
                data = min(acc_list, key=dic_key)
                context['bank_name'] = data.get('bank_name')
                context['bank_number'] = data.get('bank_number')
                context['bank_address'] = data.get('bank_address')

        context['sum_money'] = sum_money
        context['top_money'] = top_money
        context['cus_name'] = cus_name
        context['cus_account'] = cus_account
        context['phone'] = "{},{}".format(phone, phone2) if phone2 else phone
        context['url'] = url
        context['ex_change'] = ex_change
        return render_template('pay/pay_pic.html', **context)
    if request.method == 'POST':
        '''
        获取充值金额, 保存付款截图. 发送邮件通知管理员
        '''
        # try:
        # 两组数据,1,表单信息充值金额,等一下客户信息 2,截图凭证最多可上传5张
        # print(request.form)
        # print(request.files)
        data = json.loads(request.form.get('data'))
        top_money = data.get('top_money')
        sum_money = data.get('sum_money')
        cus_name = data.get('cus_name')
        cus_account = data.get('cus_account')
        phone = data.get('phone')
        exchange = data.get('exchange')
        url = json.loads(request.form.get('url'))
        change_type = json.loads(request.form.get("change_type"))
        bank_name = json.loads(request.form.get("bank_name"))
        bank_number = json.loads(request.form.get("bank_number"))
        bank_address = json.loads(request.form.get("bank_address"))
        results = {'code': RET.OK, 'msg': MSG.OK}
        try:
            # 保存所有图片
            file_n = 'file_'
            pic_list = list()
            # 判断有无上传图片
            f_obj = request.files.get("{}{}".format(file_n, 1))
            if not f_obj:
                return jsonify({'code': RET.SERVERERROR, 'msg': "请先上传图片再操作"})
            for i in range(5):
                file_name = "{}{}".format(file_n, i + 1)
                fileobj = request.files.get(file_name)
                if fileobj:
                    now_time = sum_code()
                    file_name = cus_account + "_" + str(now_time) + str(
                        i) + ".png"
                    file_path = os.path.join(DIR_PATH.PHOTO_DIR, file_name)
                    fileobj.save(file_path)
                    pic_list.append(file_path)
            n_time = xianzai_time()
            vir_code = str(uuid.uuid1())[:6]
            context = "556338平台客户:  " + cus_name + " , 于<span style='color:red'>" + n_time + "</span>在线申请充值: " \
                      + top_money + "美元, 折和人名币: <span style='color:red'>" + sum_money + "</span>元。本次计算汇率为: " + exchange + ", 验证码为: " + vir_code

            cus_id = SqlData.search_user_check(cus_name, cus_account)
            sum_money = float(sum_money)
            top_money = float(top_money)
            if change_type == "pic":
                SqlData.insert_pay_log(n_time, sum_money, top_money, vir_code,
                                       '待充值', phone, url, cus_id)
            elif change_type == "bank":
                SqlData.insert_pay_log(
                    n_time, sum_money, top_money, vir_code, '待充值', phone,
                    "{},{},{}".format(bank_name, bank_number,
                                      bank_address), cus_id)
            # 获取要推送邮件的邮箱
            top_push = SqlData.search_admin_field('top_push')
            top_dict = json.loads(top_push)
            email_list = list()
            for i in top_dict:
                email_list.append(top_dict.get(i))
            for p in email_list:
                executor.submit(send, context, pic_list, p)
                # send(context, pic_list, p)

            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            return jsonify({'code': RET.SERVERERROR, 'msg': str(e)})
コード例 #8
0
ファイル: upload.py プロジェクト: HackerLiu2008/buysys
def up_task():
    file = request.files.get('file')
    filename = file.filename
    file_path = save_file(file, filename, TASK_DIR)
    results = {'code': RET.OK, 'data': MSG.OK}
    user_id = g.user_id
    if 'static' in file_path:
        method = 'r'
        data = xlrd.open_workbook(file_path, encoding_override='utf-8')
        table = data.sheets()[0]
        nrows = table.nrows  # 行数
        ncols = table.ncols  # 列数
        row_list = list()
        if method == 'r':
            row_list = [table.row_values(i) for i in range(0, nrows)]  # 所有行的数据
        elif method == 'c':
            col_list = [table.col_values(i) for i in range(0, ncols)]  # 所有列的数据
        index = 1
        err_list = list()
        for i in row_list[1:]:
            index += 1
            if not all([i[0], i[1], i[2], i[3], i[4], i[6], i[7], i[8], i[10], i[11]]):
                err_list.append(str(index))
        if len(err_list) != 0:
            results['code'] = RET.SERVERERROR
            m = ""
            for i in err_list:
                m = m + i + ','
            results['msg'] = "第" + m + "行缺少必填参数!"
            return jsonify(results)

        sum_order_code = sum_code()
        parent_id = SqlData().insert_task_parent(user_id, sum_order_code)

        i = 1
        for one in row_list[1:]:
            task_code = sum_order_code + '-' + str(i)
            country = one[0].strip()
            if not one[1]:
                task_run_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            else:
                task_run_time = excel_to_data(one[1])
            asin = one[2].strip()
            key_word = one[3].strip()
            kw_location = one[4].strip()
            store_name = one[5].strip()
            good_name = one[6].strip()
            good_money = one[7]
            good_link = one[8].strip()
            pay_method = one[9].strip()
            serve_class = one[10].strip()
            mail_method = one[11].strip()
            note = one[12].strip()
            review_title = one[13].strip()
            review_info = one[14].strip()
            feedback_info = one[15].strip()

            try:
                SqlData().insert_task_detail(parent_id, task_code, country, asin, key_word, kw_location, store_name,
                                             good_name, good_money, good_link, pay_method, task_run_time, serve_class,
                                             mail_method, note, review_title, review_info, feedback_info, user_id)
                i += 1
            except Exception as e:
                logging.error(str(e))
                return jsonify({'code': RET.SERVERERROR, 'msg': '上传失败!'})
        return jsonify(results)
コード例 #9
0
def pay_pic():
    if request.method == 'GET':
        sum_money = request.args.get('sum_money')
        top_money = request.args.get('top_money')
        cus_name = request.args.get('cus_name')
        cus_account = request.args.get('cus_account')
        phone = request.args.get('phone')
        ex_change = request.args.get('ex_change')
        # 取出目前当前收款金额最低的收款码
        qr_info = SqlData().search_qr_code('WHERE status=0')
        if not qr_info:
            url = ''
        else:
            url = ''
            value_list = list()
            for i in qr_info:
                value_list.append(i.get('sum_money'))
            value = min(value_list)
            for n in qr_info:
                money = n.get('sum_money')
                if value == money:
                    url = n.get('qr_code')
                    break

        context = dict()
        context['sum_money'] = sum_money
        context['top_money'] = top_money
        context['cus_name'] = cus_name
        context['cus_account'] = cus_account
        context['phone'] = phone
        context['url'] = url
        context['ex_change'] = ex_change
        return render_template('pay/pay_pic.html', **context)
    if request.method == 'POST':
        '''
        获取充值金额, 保存付款截图. 发送邮件通知管理员
        '''
        try:
            # 两组数据,1,表单信息充值金额,等一下客户信息 2,截图凭证最多可上传5张
            # print(request.form)
            # print(request.files)
            data = json.loads(request.form.get('data'))
            top_money = data.get('top_money')
            sum_money = data.get('sum_money')
            cus_name = data.get('cus_name')
            cus_account = data.get('cus_account')
            phone = data.get('phone')
            exchange = data.get('exchange')
            url = json.loads(request.form.get('url'))
            results = {'code': RET.OK, 'msg': MSG.OK}
            # 保存所有图片
            file_n = 'file_'
            pic_list = list()
            for i in range(5):
                file_name = file_n + str(i + 1)
                file_img = request.files.get(file_name)
                if file_img:
                    now_time = sum_code()
                    file_name = cus_account + "_" + now_time + str(i) + ".png"
                    file_path = DIR_PATH.PHOTO_DIR + file_name
                    file_img.save(file_path)
                    pic_list.append(file_name)
            n_time = xianzai_time()
            vir_code = str(uuid.uuid1())[:6]
            ex_range = SqlData().search_admin_field('ex_range')
            hand = SqlData().search_admin_field('hand')
            if exchange != 'None':
                top_exchange = round((float(exchange) + ex_range) * (hand + 1),
                                     5)
                top_exchange_str = ' 充值汇率为: ' + str(top_exchange) + ", "
                money_type = '人民币'
            else:
                money_type = '美元'
                top_exchange_str = ''
            context = "客户:  " + cus_name + " , 于" + n_time + "在线申请充值: " + top_money + "美元, 折和" + money_type + ": " + \
                      sum_money + "元。本次计算汇率为: " + exchange + "," + top_exchange_str + " 验证码为: " + vir_code

            cus_id = SqlData().search_user_check(cus_name, cus_account)
            sum_money = float(sum_money)
            top_money = float(top_money)
            pic_json = json.dumps(pic_list)
            SqlData().insert_pay_log(n_time, sum_money, top_money, vir_code,
                                     '待充值', phone, url, pic_json, cus_id)

            # 获取要推送邮件的邮箱
            top_push = SqlData().search_admin_field('top_push')
            top_dict = json.loads(top_push)
            email_list = list()
            for i in top_dict:
                email_list.append(top_dict.get(i))
            for p in email_list:
                send(context, pic_list, p)

            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            return jsonify({'code': RET.SERVERERROR, 'msg': MSG.SERVERERROR})
コード例 #10
0
def top_up():
    if request.method == 'GET':
        pay_time = request.args.get('pay_time')
        cus_name = request.args.get('cus_name')
        bank_msg = request.args.get('bank_msg')
        context = dict()
        context['pay_time'] = pay_time
        context['cus_name'] = cus_name
        context['bank_msg'] = bank_msg
        return render_template('verify_pay/check.html', **context)
    if request.method == 'POST':
        try:
            results = dict()
            data = json.loads(request.form.get('data'))
            pay_time = data.get('pay_time')
            cus_name = data.get('cus_name')
            check = data.get('check')
            ver_code = data.get('ver_code')
            bank_address = data.get("bank_msg")

            # 校验参数验证激活码
            if check != 'yes':
                results['code'] = RET.SERVERERROR
                results['msg'] = '请确认已收款!'
                return jsonify(results)
            pass_wd = SqlData.search_pay_code('ver_code', cus_name, pay_time)
            if pass_wd != ver_code:
                results['code'] = RET.SERVERERROR
                results['msg'] = '验证码错误!'
                return jsonify(results)

            status = SqlData.search_pay_code('status', cus_name, pay_time)
            if status != '待充值':
                results['code'] = RET.SERVERERROR
                results['msg'] = '该订单已充值,请刷新界面!'
                return jsonify(results)

            # 验证成功后,做客户账户充值
            cus_id = SqlData.search_user_field_name('id', cus_name)
            '''
            # 判断是否需要更改充值金额(取消改动充值金额权限)
            if not money:
                money = SqlData.search_pay_code('top_money', cus_name, pay_time)
            else:
                money = float(money)
                # 更新新的充值金额
                SqlData.update_pay_money(money, cus_id, pay_time)
            '''

            money = SqlData.search_pay_code('top_money', cus_name, pay_time)
            pay_num = sum_code()
            t = xianzai_time()
            before = SqlData.search_user_field_name('balance', cus_name)
            balance = before + money
            user_id = SqlData.search_user_field_name('id', cus_name)
            pay_money = SqlData.search_pay_code('pay_money', cus_name,
                                                pay_time)
            # 更新银行卡收款金额
            if bank_address:
                pattern = re.compile(r'\d+\.?\d*')
                bank_number = pattern.findall(bank_address)
                bank_money = SqlData.search_bank_top(bank_number)
                update_money = float(pay_money) + float(bank_money)
                SqlData.update_bank_top(bank_number, float(pay_money),
                                        update_money)
            else:
                # 更新首款码收款金额
                # pay_money = SqlData.search_pay_code('pay_money', cus_name, pay_time)
                url = SqlData.search_pay_code('url', cus_name, pay_time)
                SqlData.update_qr_money('top_money', pay_money, url)

            # 更新账户余额
            SqlData.update_user_balance(money, user_id)

            # 更新客户充值记录
            SqlData.insert_top_up(pay_num, t, money, before, balance, user_id)

            # 更新pay_log的订单的充值状态
            SqlData.update_pay_status('已充值', t, cus_id, pay_time)

            phone = SqlData.search_user_field_name('phone_num', cus_name)
            mid_phone = SqlData.search_pay_code('phone', cus_name, pay_time)

            # 给客户和代充值人发送短信通知
            money_msg = "{}元, 可用余额{}".format(money, balance)
            if phone:
                phone_list = phone.split(",")
                for p in phone_list:
                    CCP().send_Template_sms(p, [cus_name, t, money_msg],
                                            485108)
            if mid_phone:
                CCP().send_Template_sms(mid_phone, [cus_name, t, money_msg],
                                        485108)
            results['code'] = RET.OK
            results['msg'] = MSG.OK
            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            results = dict()
            results['code'] = RET.SERVERERROR
            results['msg'] = str(e)
            return jsonify(results)
コード例 #11
0
def top_up():
    if request.method == 'GET':
        pay_time = request.args.get('pay_time')
        cus_name = request.args.get('cus_name')
        context = dict()
        context['pay_time'] = pay_time
        context['cus_name'] = cus_name
        return render_template('verify_pay/check.html', **context)
    if request.method == 'POST':
        try:
            results = dict()
            data = json.loads(request.form.get('data'))
            pay_time = data.get('pay_time')
            cus_name = data.get('cus_name')
            check = data.get('check')
            ver_code = data.get('ver_code')
            money = data.get('money')

            # 校验参数验证激活码
            if check != 'yes':
                results['code'] = RET.SERVERERROR
                results['msg'] = '请确认已收款!'
                return jsonify(results)
            pass_wd = SqlData().search_pay_code('ver_code', cus_name, pay_time)
            if pass_wd != ver_code:
                results['code'] = RET.SERVERERROR
                results['msg'] = '验证码错误!'
                return jsonify(results)

            status = SqlData().search_pay_code('status', cus_name, pay_time)
            if status != '待充值':
                results['code'] = RET.SERVERERROR
                results['msg'] = '该订单已充值,请刷新界面!'
                return jsonify(results)

            # 验证成功后,做客户账户充值
            cus_id = SqlData().search_user_field_name('id', cus_name)

            # 判断是否需要根据输入的美元金额扣除手续费在充值
            if money:
                money = float(money)
                # 更新新的充值金额
                dollar_hand = SqlData().search_admin_field('dollar_hand')
                money = round(money / (1+dollar_hand), 2)
                SqlData().update_pay_money(money, cus_id, pay_time)

            money = SqlData().search_pay_code('top_money', cus_name, pay_time)
            pay_num = sum_code()
            t = xianzai_time()
            before = SqlData().search_user_field_name('balance', cus_name)

            user_id = SqlData().search_user_field_name('id', cus_name)

            # 更新首款码收款金额
            pay_money = SqlData().search_pay_code('pay_money', cus_name, pay_time)
            url = SqlData().search_pay_code('url', cus_name, pay_time)
            SqlData().update_qr_money('top_money', pay_money, url)

            # 更新账户余额
            SqlData().update_user_balance(money, user_id)

            # 实时查询当前余额不以理论计算为结果
            balance = SqlData().search_user_field('balance', user_id)

            # 更新客户充值记录
            SqlData().insert_top_up(pay_num, t, money, before, balance, user_id, '系统')

            # 更新pay_log的订单的充值状态
            SqlData().update_pay_status('已充值', t, cus_id, pay_time)

            phone = SqlData().search_user_field_name('phone_num', cus_name)
            mid_phone = SqlData().search_pay_code('phone', cus_name, pay_time)

            # 判断是否是相同电话,是则只发送一次短信
            if phone and mid_phone and phone == mid_phone:
                CCP().send_Template_sms(phone, [cus_name, t, money], 478898)
            else:
                # 给客户和代充值人发送短信通知
                if phone:
                    CCP().send_Template_sms(phone, [cus_name, t, money], 478898)
                if mid_phone:
                    CCP().send_Template_sms(mid_phone, [cus_name, t, money], 478898)
            results['code'] = RET.OK
            results['msg'] = MSG.OK
            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            results = dict()
            results['code'] = RET.SERVERERROR
            results['msg'] = MSG.SERVERERROR
            return jsonify(results)
コード例 #12
0
def pay_pic():
    '''
    用户注册支付姐界面
    :return:
    '''
    if request.method == 'GET':
        u_name = request.args.get('u_name')
        u_acc = request.args.get('u_acc')
        u_pass = request.args.get('u_pass')
        phone = request.args.get('phone')
        middle_key = request.args.get('middle_key')
        package = SqlData().search_reg_package()
        # 取出目前当前收款金额最低的收款码
        qr_info = SqlData().search_qr_code('WHERE status=0')
        if not qr_info:
            url = ''
        else:
            url = ''
            value_list = list()
            for i in qr_info:
                value_list.append(i.get('sum_money'))
            value = min(value_list)
            for n in qr_info:
                money = n.get('sum_money')
                if value == money:
                    url = n.get('qr_code')
                    break

        context = dict()
        context['u_name'] = u_name
        context['u_acc'] = u_acc
        context['u_pass'] = u_pass
        context['phone'] = phone
        context['url'] = url
        context['middle_key'] = middle_key
        context['package_list'] = package
        return render_template('user/register_pay.html', **context)
    if request.method == 'POST':
        '''
        获取充值金额, 保存付款截图. 发送邮件通知管理员
        '''
        try:
            # 两组数据,1,表单信息充值金额,等一下客户信息 2,截图凭证最多可上传5张
            # print(request.form)
            # print(request.files)
            data = json.loads(request.form.get('data'))
            u_name = data.get('u_name')
            u_acc = data.get('u_acc')
            u_pass = data.get('u_pass')
            phone = data.get('phone')
            middle_key = data.get('middle_key')
            url = json.loads(request.form.get('url'))
            package = json.loads(request.form.get('package'))
            results = {'code': RET.OK, 'msg': MSG.OK}

            if not request.files:
                results['code'] = RET.SERVERERROR
                results['msg'] = '请选择支付截图后提交!'
                return jsonify(results)

            data = SqlData().search_reg_money(package)
            reg_money = data.get('money')
            reg_days = data.get('days')

            # 判断是否是用中介的介绍链接进行注册的
            middle_name = ''
            middle_id = 0
            if middle_key:
                try:
                    string = Base64Code().base_decrypt(middle_key.strip())
                    info_list = string.split('_')
                    middle_id = int(info_list[0])
                    middle_name = SqlData().search_middle_field('name', middle_id)
                    account = SqlData().search_middle_field('account', middle_id)
                    if info_list[1] != middle_name or info_list[2] != account:
                        return jsonify({'code': RET.SERVERERROR, 'msg': '请使用正确链接注册!'})
                except Exception as e:
                    logging.error(str(e))
                    return jsonify({'code': RET.SERVERERROR, 'msg': '请使用正确链接注册!'})

            # 保存所有图片
            file_n = 'file_'
            pic_list = list()
            for i in range(5):
                file_name = file_n + str(i+1)
                file_img = request.files.get(file_name)
                if file_img:
                    now_time = sum_code()
                    file_name = u_acc + "_" + now_time + str(i) + ".png"
                    file_path = DIR_PATH.PHOTO_DIR + file_name
                    file_img.save(file_path)
                    pic_list.append(file_name)
            n_time = xianzai_time()
            pic_json = json.dumps(pic_list)
            ver_code = str(uuid.uuid1())[:6]
            context = "客户:  " + u_acc + " , 于" + n_time + "申请注册全球付客户端账号: 金额" + str(reg_money) + "元, 有效使用期为 " + \
                      str(reg_days) + "天。 验证码为: " + ver_code
            stop_time = get_day_after(reg_days)
            SqlData().insert_account_reg(package, n_time, n_time, reg_money, reg_days, stop_time, u_name, u_acc, u_pass, phone, url, middle_id, middle_name, pic_json, ver_code)

            # 获取要推送邮件的邮箱
            top_push = SqlData().search_admin_field('top_push')
            top_dict = json.loads(top_push)
            email_list = list()
            for i in top_dict:
                email_list.append(top_dict.get(i))
            for p in email_list:
                send(context, pic_list, p)

            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            return jsonify({'code': RET.SERVERERROR, 'msg': MSG.SERVERERROR})