Beispiel #1
0
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
Beispiel #2
0
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")
Beispiel #3
0
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
Beispiel #4
0
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