def admin_register(): db_path = os.path.join(settings.ACCOUNTS_DB_DIR, 'admins') exit_flag = False while not exit_flag: print("创建管理员".center(50, "=")) #username == student.name username = input("请输入您要管理员的用户名:").strip() if username in os.listdir(db_path): print("该用户名已注册,不能重新注册!") return False else: password = input("请输入密码:").strip() re_password = input('再次确认密码:').strip() if password != re_password: print('\033[31;1m两次输入的密码不一致!\033[0m') continue userdata = { "username": username, "password": password, 'locked': False, 'authority': True, } dump_user(userdata, db_path) print('\033[31;1m管理员[%s] 注册成功!\033[0m' % username) return True
def settlement(userdata, shopping_list): print("------ 购物车 ------") bill = 0 money = userdata["money"] for items in shopping_list: print(items) bill += items[1] print("购物车商品总金额:%s" % bill) if money >= bill: money -= bill userdata["money"] = money user.dump_user(userdata) return (True, userdata, bill) else: print("\033[32;1m现金余额不足,请使用信用卡结算!\033[0m") while True: card_id = input("请输入本人信用卡卡号: ").strip() if len(card_id) == 8 and card_id.isdigit(): carddata = cards.get_cards(card_id) if carddata: if userdata["card_id"] != card_id: print("\033[32;1m该信用卡不是本人信用卡,无法使用!\033[0m") elif carddata["frozen"]: print("\033[32;1m该信用卡已被冻结,无法使用!\033[0m") return (False, userdata, bill) else: # banlance = carddata["banlance"] # #total_money = banlance + money # if banlance >= bill: # # banlance -= bill # # carddata["banlance"] = banlance # cards.dump_cards(carddata) # return (True, userdata,bill) consume_amount = bill res = transaction.make_transaction( trans_logger, carddata, 'consume', consume_amount) if res[0]: return (True, userdata, bill) else: print("\033[32;1m信用卡可用额度不足,无法完成结算!\033[0m") return (False, userdata, 0) else: print("\033[31;1m卡号不存在,请重新输入!\033[0m") else: print("\033[31;1m输入卡号错误,请重新输入!\033[0m")
def login(username="", password=""): """ 登录接口,默认登录参数空 :param username: :param password: :return: userdata """ exit_flag = False lock_count = 0 while not exit_flag: if username == "" or password == "": username = input("请输入用户名:").strip() password = input("请输入密码:").strip() # password = hashlib.sha1(password.encode("utf8")).hexdigest() userdata = load_user(username) #print(users) #print(username) if not userdata: #用户名不存在,读取不到用户信息 username = "" print("\033[31;1m用户名不存在!请重新输入\033[0m\n") #login_flag = False continue else: if userdata["locked"] == True: #用户被锁定 exit_flag = True res = False print('\033[31;1m【%s】已被锁死,请联系管理员解锁!\033[0m' % (username)) elif password != userdata["password"]: #用户密码错误 password = "" lock_count += 1 if lock_count == 3: userdata["locked"] = True dump_user(userdata) print('\033[31;1m【%s】已被锁死,请联系管理员解锁!\033[0m' % (username)) #exit_flag = True return False else: print('\033[31;1m密码错误,请重新输入,您还有%d次机会,账户将被锁死!\033[0m\n' % (3 - lock_count)) else: print('\033[31;1m登录成功,欢迎-- %s --回来!\033[0m' % (username)) return userdata
def register(): db_path = os.path.join(settings.ACCOUNTS_DB_DIR, 'students') #print(db_path) exit_flag = False while not exit_flag: print("学生用户注册".center(50, "=")) #username == student.name username = input("请输入您要注册的用户名【用户名必须为真实姓名】:").strip() if username in os.listdir(db_path): print("该用户名已注册,不能重新注册!") return False else: student_list = Student.get_all_obj_list() #print(student_list) for obj in student_list: #print(obj) if username == obj['name']: # student_obj = obj password = input("请输入密码:").strip() re_password = input('再次确认密码:').strip() if password != re_password: print('\033[31;1m两次输入的密码不一致!\033[0m') continue userdata = { "username": username, "password": password, 'locked': False, 'authority': False, "student_nid": obj['nid'] } dump_user(userdata, db_path) print('\033[31;1m学生[%s] 注册成功!\033[0m' % username) return True else: print("学生[%s] 不存在,无法注册!请联系管理员创建 学生[%s]!" % (username, username)) # exit_flag = True return False