Esempio n. 1
0
def register_interface(username, password, balance=15000):
    # 调用数据层
    user_dic = db_handle.select(username)

    # 用户已存在
    if user_dic:
        return False, '用户已存在'

    # 用户不存在
    password = common.get_pwd_md5(password)

    user_dic = {
        'username': username,
        'password': password,
        'balance': balance,
        # 记录用户流水的列表
        'flow': [],
        # 记录用户的购物车
        'shop_car': {},
        # 记录用户是否被冻结
        'locked': False
    }

    db_handle.save(user_dic)

    msg = f'用户[{username}] 注册成功'
    user_logger.info(msg)
    return True, msg
Esempio n. 2
0
def transfer_interface(username, to_username, money):
    if not db_handle.select(to_username):
        return False, '接收人不存在,请重新输入'

    user_dic_now = db_handle.select(username)
    user_dic_to = db_handle.select(to_username)

    balance_now = int(user_dic_now['balance'])

    if balance_now >= money:
        user_dic_now['balance'] -= money
        user_dic_to['balance'] += money

        flow_now = f'用户:[{username}] 给 用户:[{to_username}] 转账:{money}¥ 成功'
        user_dic_now['flow'].append(flow_now)

        flow_to = f'用户:[{to_username}] 接收 用户:[{username}] 转账:{money}¥ 成功'
        user_dic_to['flow'].append(flow_to)

        db_handle.save(user_dic_now)
        db_handle.save(user_dic_to)

        return True, flow_now
        bank_logger.info(flow_now)

    msg = f'用户:[{username}] 给 用户:[{to_username}] 转账:{money}¥ 失败,余额不足'
    bank_logger.warn(msg)
    return False, msg
Esempio n. 3
0
def recv_chat():
    while True:
        e.wait()
        data = sock_chat.recvfrom(1024)[0]
        data_dic = message_parsing(data)
        print('\r%s: %s' % (data_dic['a'], data_dic['m']))
        db_handle.save(data_dic['a'], data_dic['m'])
Esempio n. 4
0
def tranfer_interface(user_name, dst_user, money):
    # 当前用户数据
    user_dic = db_handle.select(user_name)
    # 目标用户数据
    dst_user_dic = db_handle.select(dst_user)

    # 检测目标用户是否存在
    if not dst_user_dic:
        return False, '目标用户[%s]不存在'%dst_user

    # 检测当前用户金额是否充足
    balance = user_dic['balance']
    if balance < money:
        return False, '当前账户余额不足'

    # 数据更新
    user_dic['balance'] -= money
    dst_user_dic['balance'] += money

    # 记录流水
    flow = '用户[{user_name}]向[{dst_user}]转账[{money}]成功'.format(\
        user_name = user_name, dst_user = dst_user, money = money)
    user_dic['flow'].append(flow)
    dst_user_dic['flow'].append('接收到用户[{user_name}]转账的[{money}]'.format(\
        user_name = user_name, money = money))
    log.info(flow)
    db_handle.save(user_dic)
    db_handle.save(dst_user_dic)

    return True, flow
Esempio n. 5
0
def lock_user_interface(username):
    user_dic = db_handle.select(username)

    if user_dic:
        user_dic['locked'] = True
        db_handle.save(user_dic)
        return True, f'用户[{username}]冻结成功'

    return False, '要冻结的用户不存在,请重新输入'
Esempio n. 6
0
def lock_user_interface(user_name):
    user_dic = db_handle.select(user_name)
    if not user_dic:
        return False, '用户不存在'

    user_dic['locked'] = True
    log.info('用户[%s]被冻结' % user_name)
    db_handle.save(user_dic)
    return True, '冻结成功'
Esempio n. 7
0
def repay_interface(username, money):
    user_dic = db_handle.select(username)

    user_dic['balance'] += money

    flow = f"用户:[{username}] 还款{money}¥ 成功, 当前额度为:{user_dic['balance']}"
    user_dic['flow'].append(flow)

    db_handle.save(user_dic)
    bank_logger.info(flow)
    return True, flow
Esempio n. 8
0
def pay_interface(user_name, cost):
    user_dic = db_handle.select(user_name)
    if user_dic['balance'] >= cost:
        # 支付操作
        user_dic['balance'] -= cost
        flow = '用户消费 %s'%cost
        user_dic['flow'].append(flow)
        log.info(flow)
        db_handle.save(user_dic)
        return True
    else:
        return False
Esempio n. 9
0
def pay_interface(login_user, cost):
    user_dic = db_handle.select(login_user)

    if user_dic.get('balance') >= cost:
        user_dic['balance'] -= cost

        flow = f'用户消费金额[{cost}¥]'
        user_dic['flow'].append(flow)
        bank_logger.info(flow)
        db_handle.save(user_dic)
        return True
    return False
Esempio n. 10
0
def change_bal_interface(user_name, money):
    # 获取用户数据
    user_dic = db_handle.select(user_name)
    if not user_dic:
        return False, '用户不存在'

    # 修改额度并更新
    user_dic['balance'] = money
    flow = '额度修改为%s' % money
    user_dic['flow'].append(flow)
    db_handle.save(user_dic)
    log.info(flow)
    return True, '额度修改成功'
Esempio n. 11
0
def change_balance_interface(username, money):
    user_dic = db_handle.select(username)

    if user_dic:
        user_dic['balance'] = int(money)

        db_handle.save(user_dic)

        msg = f'管理员修改用户[{username}] 额度为:{money}, 修改成功'
        admin_logger.info(msg)
        return True, msg

    return False, '修改额度用户不存在'
Esempio n. 12
0
def repay_interface(user_name, money):
    # 拿到用户数据
    user_dic = db_handle.select(user_name)

    # 更新金额
    user_dic['balance'] += money
    # 记录流水
    flow = '用户[%s] 还款[%s] 成功'% (user_name, money)
    user_dic['flow'].append(flow)
    log.info(flow)
    # 用户数据更新
    db_handle.save(user_dic)
    return True, flow
Esempio n. 13
0
def add_shop_interface(user_name, shopping_car):
    user_dic = db_handle.select(user_name)
    shop_car = user_dic.get('shop_car')
    # 更新用户信息中的购物车
    # 判断当前用户选择的商品,是否已经存在
    for shop_name, price_num in shopping_car.items():
        # 商品存在,数量增加
        if shop_name in shop_car:
            shop_car[shop_name][1] += price_num[1]
        else:
            shop_car.update({shop_name: price_num})
    # 更新数据
    user_dic['shop_car'] = shop_car
    db_handle.save(user_dic)

    return True, '购物车添加成功'
Esempio n. 14
0
def withdraw_interface(username, money):
    user_dic = db_handle.select(username)

    balance = int(user_dic['balance'])

    real_money = money * 1.05

    if balance >= real_money:
        user_dic['balance'] = balance - real_money

        flow = f'用户:{username} 提现金额{money}成功, 手续费为:{money * 0.05}¥'
        user_dic['flow'].append(flow)

        db_handle.save(user_dic)
        bank_logger.info(flow)
        return True, flow

    return False, '余额不足,请重新输入'
Esempio n. 15
0
def add_shop_car_interface(login_user, shopping_car):
    user_dic = db_handle.select(login_user)

    shop_car = user_dic.get('shop_car')

    for shop_name, price_number in shopping_car.items():

        number = price_number[1]

        if shop_name in shop_car:
            user_dic['shop_car'][shop_name][1] += number

        else:
            user_dic['shop_car'].update({shop_name: price_number})

    db_handle.save(user_dic)
    msg = f'用户[{login_user}] 添加购物车成功'
    return True, msg
Esempio n. 16
0
def chat(account):
    print('开始聊天啦')
    while True:
        msg = input('>>').strip()
        if msg == 'q':
            return True, '结束聊天'
        if msg == '':
            continue
        data_dic = {
            'o': '3',
            'd': {
                'a': client.user_info.account,
                'm': msg,
                't': account
            }
        }
        sock.sendto(message_encryption(data_dic), service_addr)
        data_dic = message_parsing(sock.recvfrom(1024)[0])
        db_handle.save(client.user_info.account, msg)
        if not data_dic['f']:
            print(data_dic['m'])
Esempio n. 17
0
def withdrow_interface(user_name, money):
    user_dic = db_handle.select(user_name)

    balance = float(user_dic['balance'])
    money_and_fee = float(money) * 1.05

    # 检测余额是否充足
    if money_and_fee <= balance:
        # 更新余额
        balance -= money_and_fee
        user_dic['balance'] = balance

        # 记录流水
        flow = '用户 [{name}] 提现 [{money}] 手续费 [{fee}] 余额 [{balance}]]'.\
            format(name=user_name, money = money, fee = money_and_fee - float(money), balance = balance)
        user_dic['flow'].append(flow)
        log.info(flow)
        db_handle.save(user_dic)
        return True, flow
    else:
        return False, '用户余额不足, 请重新输入!'
Esempio n. 18
0
def register_interface(user_name, password, balance=15000):
    # 1.判断用户是否存在
    # 2.注册信息存储

    #从数据处理层获取user_name的信息
    user_dic = db_handle.select(user_name)
    if user_dic:
        return False, '用户已经存在,请重新输入'

    # 用户可以注册,构造用户信息
    user_dic = {
        'user_name': user_name,
        'password': password,
        'balance': balance,
        # 记录购物车信息
        'shop_car': {},
        # 记录用户流水信息
        'flow': [],
        # 账户是否冻结,True:冻结, False:没有冻结
        'locked': False
    }

    db_handle.save(user_dic)
    return True, '用户 [%s] 注册成功' % user_name
Esempio n. 19
0
 def save(self):
     db_handle.save(self)
Esempio n. 20
0
def save_interface(user_dic):
    db_handle.save(user_dic)
Esempio n. 21
0
def register_interface(user_dic):
    db_handle.save(user_dic)