def top_bank(): bank_number = request.args.get('bank_number') status = SqlData.search_bank_status(bank_number) # status:1为锁定,0为正常,2为置顶 if status == 2: SqlData.update_bank_status(bank_number, 0) else: res = SqlData.search_bank_info('WHERE status=2') if res: return jsonify({'code': RET.SERVERERROR, 'msg': '请取消已置顶银行卡后重试!'}) SqlData.update_bank_status(bank_number, 2) return jsonify({'code': RET.OK, 'msg': MSG.OK})
def bank_info(): if request.method == "GET": results = {} push_json = SqlData.search_bank_info() results['code'] = RET.OK results['msg'] = MSG.OK if not push_json: results['msg'] = MSG.NODATA return jsonify(results) results['data'] = push_json results['count'] = len(push_json) return jsonify(results)
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)})