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
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
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'])
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
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, '要冻结的用户不存在,请重新输入'
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, '冻结成功'
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
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
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
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, '额度修改成功'
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, '修改额度用户不存在'
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
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, '购物车添加成功'
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, '余额不足,请重新输入'
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
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'])
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, '用户余额不足, 请重新输入!'
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
def save(self): db_handle.save(self)
def save_interface(user_dic): db_handle.save(user_dic)
def register_interface(user_dic): db_handle.save(user_dic)