예제 #1
0
def index_pay():
    ex_change = SqlData.search_admin_field('ex_change')
    ex_range = SqlData.search_admin_field('ex_range')
    hand = SqlData.search_admin_field('hand')
    dollar_hand = SqlData.search_admin_field('dollar_hand')
    context = dict()
    context['ex_change'] = ex_change
    context['ex_range'] = ex_range
    context['hand'] = hand
    context['dollar_hand'] = dollar_hand
    return render_template('pay/index.html', **context)
예제 #2
0
파일: admin.py 프로젝트: HelenLiu97/huihui
def change_pass():
    if request.method == 'GET':
        admin_name = g.admin_name
        context = dict()
        context['admin_name'] = admin_name
        return render_template('admin/changePwd.html', **context)
    if request.method == 'POST':
        results = {"code": RET.OK, "msg": MSG.OK}
        data = json.loads(request.form.get('data'))
        old_pass = data.get('old_pass')
        new_pass_one = data.get('new_pass_one')
        new_pass_two = data.get('new_pass_two')
        if new_pass_two != new_pass_one:
            results['code'] = RET.SERVERERROR
            results['msg'] = '两次输入密码不一致!'
            return jsonify(results)
        res = re.match(
            '(?!.*\s)(?!^[\u4e00-\u9fa5]+$)(?!^[0-9]+$)(?!^[A-z]+$)(?!^[^A-z0-9]+$)^.{8,16}$',
            new_pass_one)
        if not res:
            results['code'] = RET.SERVERERROR
            results['msg'] = '密码不符合要求!'
            return jsonify(results)
        password = SqlData.search_admin_field('password')
        if old_pass != password:
            results['code'] = RET.SERVERERROR
            results['msg'] = '密码错误!'
            return jsonify(results)
        SqlData.update_admin_field('password', new_pass_one)
        session.pop('admin_id')
        session.pop('admin_name')
        return jsonify(results)
예제 #3
0
def top_cn():
    if request.method == 'POST':
        '''
        1:校验前端数据是否正确
        2:查看实时汇率有没有变动
        3:核实客户是否存在
        '''
        data = json.loads(request.form.get('data'))
        sum_money = data.get('sum_money')
        top_money = data.get('top_money')
        cus_name = data.get('cus_name')
        cus_account = data.get('cus_account')
        phone = data.get('phone')
        phone2 = data.get("phone2")
        res = SqlData.search_user_check(cus_name, cus_account)
        if float(top_money) < 100:
            return jsonify({'code': RET.SERVERERROR, 'msg': '充值金额不能小于100$'})
        if not res:
            return jsonify({'code': RET.SERVERERROR, 'msg': '没有该用户!请核实后重试!'})
        if phone:
            ret = re.match(r"^1[35789]\d{9}$", phone)
            if not ret:
                results = dict()
                results['code'] = RET.SERVERERROR
                results['msg'] = '请输入符合规范的电话号码!'
                return jsonify(results)
        if phone2:
            ret = re.match(r"^1[35789]\d{9}$", phone2)
            if not ret:
                results = dict()
                results['code'] = RET.SERVERERROR
                results['msg'] = '请输入符合规范的电话号码!'
                return jsonify(results)

        ex_change = SqlData.search_admin_field('ex_change')
        ex_range = SqlData.search_admin_field('ex_range')
        hand = SqlData.search_admin_field('hand')
        _money_self = float(top_money) * (ex_change + ex_range) * (hand + 1)
        money_self = round(_money_self, 10)
        sum_money = round(float(sum_money), 10)
        if money_self == sum_money:
            return jsonify({'code': RET.OK, 'msg': MSG.OK})
        else:
            return jsonify({'code': RET.SERVERERROR, 'msg': '汇率已变动!请刷新界面后重试!'})
예제 #4
0
파일: admin.py 프로젝트: HelenLiu97/huihui
def notice():
    if request.method == 'GET':
        note = SqlData.search_admin_field('notice')
        context = dict()
        context['note'] = note
        return render_template('admin/notice.html', **context)
    if request.method == 'POST':
        data = json.loads(request.form.get('data'))
        note = data.get('note')
        SqlData.update_admin_field('notice', note)
        return jsonify({"code": RET.OK, "msg": MSG.OK})
예제 #5
0
파일: admin.py 프로젝트: HelenLiu97/huihui
def top_msg():
    if request.method == 'GET':
        push_json = SqlData.search_admin_field('top_push')
        info_list = list()
        if push_json:
            push_dict = json.loads(push_json)
            for i in push_dict:
                info_dict = dict()
                info_dict['user'] = i
                info_dict['email'] = push_dict.get(i)
                info_list.append(info_dict)
        context = dict()
        context['info_list'] = info_list
        return render_template('admin/top_msg.html', **context)
    if request.method == 'POST':
        try:
            results = {"code": RET.OK, "msg": MSG.OK}
            data = json.loads(request.form.get('data'))
            top_people = data.get('top_people')
            email = data.get('email')
            push_json = SqlData.search_admin_field('top_push')
            if not push_json:
                info_dict = dict()
                info_dict[top_people] = email
            else:
                info_dict = json.loads(push_json)
                if top_people in info_dict and email == '删除':
                    info_dict.pop(top_people)
                else:
                    info_dict[top_people] = email
            json_info = json.dumps(info_dict, ensure_ascii=False)
            SqlData.update_admin_field('top_push', json_info)
            return jsonify(results)
        except Exception as e:
            logging.error(str(e))
            return jsonify({'code': RET.SERVERERROR, 'msg': MSG.SERVERERROR})
예제 #6
0
파일: user.py 프로젝트: HelenLiu97/huihui
def user_main():
    user_id = g.user_id
    balance = SqlData.search_user_field('balance', user_id)
    # 支出中有部分退款产生,所以所有支出减去退款才是真实支出
    sum_out_money = SqlData.search_trans_sum(
        user_id) - SqlData.search_income_money(user_id)
    sum_top_money = SqlData.search_user_field('sum_balance', user_id)
    card_num = SqlData.search_card_status("WHERE user_id={}".format(user_id))
    vice_num = SqlData.search_vice_count(user_id)
    notice = SqlData.search_admin_field('notice')
    card_remain = SqlData.search_sum_card_balance(user_id)
    update_t = '2020-01-01 12:23:32'
    context = dict()
    context['balance'] = balance
    context['sum_out_money'] = sum_out_money
    context['sum_top_money'] = sum_top_money
    context['card_num'] = card_num
    context['card_remain'] = card_remain
    context['update_t'] = update_t
    context['vice_num'] = vice_num
    context['notice'] = notice
    return render_template('user/main.html', **context)
예제 #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
파일: user.py 프로젝트: HelenLiu97/huihui
def notice():
    notice = SqlData.search_admin_field('notice')
    s = '<html><body><div style="padding:15px 20px; text-align:justify; line-height: 22px; text-indent:2em;">' \
        '<p class="layui-red">{}</p></div></body></html>'.format(notice)
    return s
예제 #9
0
파일: admin.py 프로젝트: HelenLiu97/huihui
def password():
    password = SqlData.search_admin_field('password')
    return jsonify({'code': RET.OK, 'msg': password})