예제 #1
0
def pay(username,user_file,shopping_car_list):
    '''
    :param username:
    :param user_file:
    :param shopping_car_list:
    :return:返回值为结算后的帐户余额
    '''
    price = 0
    for i in shopping_car_list:
        price += product[i]

    money_ye = balance.balance(username,user_file)
    if price > money_ye:
        print_color.print_color('余额不足,结算失败,请充值后再结算!','red')
        return False
    else:
        money_ye = money_ye - price
    return money_ye
예제 #2
0
def pay(username, user_file, shopping_car_list):
    '''
    :param username:
    :param user_file:
    :param shopping_car_list:
    :return:返回值为结算后的帐户余额
    '''
    price = 0
    for i in shopping_car_list:
        price += product[i]

    money_ye = balance.balance(username, user_file)
    if price > money_ye:
        print_color.print_color('余额不足,结算失败,请充值后再结算!', 'red')
        return False
    else:
        money_ye = money_ye - price
    return money_ye
예제 #3
0
def show_shopping_car_list(username, user_file, shopping_car_list):
    '''
    :param username:
    :param user_file:
    :return: 返回值为商品总价格 和 帐户余额。都为正整数.返回 False,说明购物车为空
    '''
    if len(shopping_car_list) == 0:
        print_color.print_color("购物车为空,赶紧购物吧!!", 'green')
        return False
    else:
        total_price = 0
        car_dic = {}
        print('*' * 51)
        print('%-6s%-30s%-15s' % ('编号', '商品名称', '价格'))
        for i, v in enumerate(shopping_car_list):
            #print('*'*51)
            print('%-8s%-30s%-15s' % (i, v, str(product[v])))
            total_price += product[v]
            car_dic[i] = v
        print('*' * 51)
        money_ye = balance.balance(username, user_file)
        return car_dic
예제 #4
0
def show_shopping_car_list(username,user_file,shopping_car_list):
    '''
    :param username:
    :param user_file:
    :return: 返回值为商品总价格 和 帐户余额。都为正整数.返回 False,说明购物车为空
    '''
    if len(shopping_car_list) == 0:
        print_color.print_color("购物车为空,赶紧购物吧!!",'green')
        return False
    else:
        total_price = 0
        car_dic = {}
        print('*'*51)
        print('%-6s%-30s%-15s' % ('编号','商品名称','价格'))
        for i,v in enumerate(shopping_car_list):
            #print('*'*51)
            print('%-8s%-30s%-15s' % (i,v,str(product[v])))
            total_price += product[v]
            car_dic[i] = v
        print('*'*51)
        money_ye = balance.balance(username,user_file)
        return car_dic
예제 #5
0
def shopping_car_fun_menu():
    #if money_ye < total_price:
    #    print_color.print_color("1  '充值'       e  '编辑购物车'     q  '退出系统'", 'yellow' )
    #else:
    print_color.print_color("p  '结算'  a  '充值'   e  '编辑购物车'    x  '继续购物'",
                            'yellow')
예제 #6
0
def shopping(login_user, user_file):
    shopping_car_list = []
    flag1 = True
    flag2 = True
    while flag1:
        product_list_dic = show_product_list()
        print_color.print_color('b  返回主菜单', 'yellow')
        choice_product = input("请输入您想购买的商品编号:")
        if choice_product == 'b':
            break
        elif choice_product.isdigit():
            if int(choice_product) in product_list_dic:
                add_car(shopping_car_list,
                        product_list_dic[int(choice_product)])
                while flag2:
                    print_color.print_color('当前购物车商品', 'green')
                    car_dic = show_shopping_car_list(
                        login_user, user_file, shopping_car_list)  #购物车商品名称及编号
                    shopping_car_fun_menu()
                    choice_fu = input('请输入您想要的操作编号:')
                    if choice_fu == 'e':
                        while True:
                            choice_del = input('请输入您想要删除的商品编号:')
                            if int(choice_del) in car_dic:
                                shopping_car_list.remove(
                                    car_dic[int(choice_del)])
                                print_color.print_color('删除成功!', 'green')
                                break
                            else:
                                print_color.print_color(
                                    '您输入的不正确,请重新输入!', 'red')
                                continue
                    elif choice_fu == 'x':
                        break
                    elif choice_fu == 'a':
                        while True:
                            money_cz = input('请输入你想要充值的金额,只能充入正整数金额:')
                            if money_cz.isdigit():
                                money_ye = balance.balance(
                                    login_user, user_file)
                                money_ye = money_ye + int(money_cz)
                                result = icbc.icbc(login_user, user_file,
                                                   money_ye)
                                if result == True:
                                    print_color.print_color(
                                        '充值成功!!本次充值金额:%s' % money_cz, 'green')
                                    balance.balance(login_user, user_file)
                                    break
                                else:
                                    print_color('充值失败,系统将返回购物车列表!', 'red')
                                    break
                            else:
                                print_color.print_color(
                                    '你输入的金额不正确,请重新输入!', 'red')
                                continue
                    elif choice_fu == 'p':
                        money = pay(login_user, user_file, shopping_car_list)
                        if money == False:
                            continue
                        else:
                            result = icbc.icbc(login_user, user_file,
                                               str(money))
                            if result == True:
                                print_color.print_color(
                                    '结算成功,东西就不给你了,哈哈哈!', 'green')
                                balance.balance(login_user, user_file)
                                shopping_car_list = []
                                while True:
                                    print_color.print_color(
                                        'b  回到主菜单  q 退出系统', 'yellow')
                                    choice_last = input("请选择对应的操作编号:")
                                    if choice_last == 'q':
                                        print_color.print_color(
                                            '感谢访问oldboy商城!欢迎下次光临,再见!', 'green')
                                        exit()
                                    elif choice_last == 'b':
                                        flag2 = False
                                        flag1 = False
                                        break
                                    else:
                                        print_color.print_color(
                                            '您输入的不正确,请重新输入!')
                                        continue

                            else:
                                print_color.print_color('结算失败,返回购物车列表')
                                continue

                    else:
                        print_color.print_color('您的输入不正确,请重新输入!', 'red')
            else:
                print_color.print_color('您输入的不正确,请重新输入', 'red')
                continue
        else:
            print_color.print_color('您输入的不正确,请重新输入', 'red')
예제 #7
0
def shopping(login_user,user_file):
    shopping_car_list = []
    flag1 = True
    flag2 = True
    while flag1:
        product_list_dic = show_product_list()
        print_color.print_color('b  返回主菜单','yellow')
        choice_product = input("请输入您想购买的商品编号:")
        if choice_product == 'b':
            break
        elif choice_product.isdigit():
            if int(choice_product) in product_list_dic:
                add_car(shopping_car_list,product_list_dic[int(choice_product)])
                while flag2:
                    print_color.print_color('当前购物车商品','green')
                    car_dic = show_shopping_car_list(login_user,user_file,shopping_car_list) #购物车商品名称及编号
                    shopping_car_fun_menu()
                    choice_fu = input('请输入您想要的操作编号:')
                    if choice_fu == 'e':
                        while True:
                            choice_del = input('请输入您想要删除的商品编号:')
                            if int(choice_del) in car_dic:
                                shopping_car_list.remove(car_dic[int(choice_del)])
                                print_color.print_color('删除成功!','green')
                                break
                            else:
                                print_color.print_color('您输入的不正确,请重新输入!','red')
                                continue
                    elif choice_fu == 'x':
                        break
                    elif choice_fu == 'a':
                        while True:
                            money_cz = input('请输入你想要充值的金额,只能充入正整数金额:')
                            if money_cz.isdigit():
                                money_ye = balance.balance(login_user,user_file)
                                money_ye = money_ye + int(money_cz)
                                result = icbc.icbc(login_user,user_file,money_ye)
                                if result == True:
                                    print_color.print_color('充值成功!!本次充值金额:%s' % money_cz,'green')
                                    balance.balance(login_user,user_file)
                                    break
                                else:
                                    print_color('充值失败,系统将返回购物车列表!','red')
                                    break
                            else:
                                print_color.print_color('你输入的金额不正确,请重新输入!','red')
                                continue
                    elif choice_fu == 'p':
                        money = pay(login_user,user_file,shopping_car_list)
                        if money == False:
                            continue
                        else:
                            result = icbc.icbc(login_user,user_file,str(money))
                            if result == True:
                                print_color.print_color('结算成功,东西就不给你了,哈哈哈!','green')
                                balance.balance(login_user,user_file)
                                shopping_car_list = []
                                while True:
                                    print_color.print_color('b  回到主菜单  q 退出系统','yellow')
                                    choice_last = input("请选择对应的操作编号:")
                                    if choice_last == 'q':
                                        print_color.print_color('感谢访问oldboy商城!欢迎下次光临,再见!','green')
                                        exit()
                                    elif choice_last == 'b':
                                        flag2 = False
                                        flag1 = False
                                        break
                                    else:
                                        print_color.print_color('您输入的不正确,请重新输入!')
                                        continue

                            else:
                                print_color.print_color('结算失败,返回购物车列表')
                                continue

                    else:
                        print_color.print_color('您的输入不正确,请重新输入!', 'red')
            else:
                print_color.print_color('您输入的不正确,请重新输入','red')
                continue
        else:
            print_color.print_color('您输入的不正确,请重新输入','red')
예제 #8
0
def shopping_car_fun_menu():
    #if money_ye < total_price:
    #    print_color.print_color("1  '充值'       e  '编辑购物车'     q  '退出系统'", 'yellow' )
    #else:
        print_color.print_color("p  '结算'  a  '充值'   e  '编辑购物车'    x  '继续购物'", 'yellow' )
예제 #9
0
def login(user_file,locked_file):
    #计数器
    n = 1
    #声明变量,配合计数器用
    username_temp = ''

    while n < 3:
        username = input("请输入用户名:")
        password = input("请输入密码:")
        #验证用户名或密码是否为空,为空则重新输入
        if username == '' or password == '':
            print_color.print_color('用户名或密码不能为空,请重新输入!','red')
            continue
        #验证用户是否被锁定
        with open(locked_file,'r') as f:
            for line in f.readlines():
                #print(line)
                if username == line.strip():
                    print_color.print_color("用户已被锁定,系统即将退出!",'red')
                    exit()

        #验证用户名密码是否正确
        with open(user_file,'r') as f:
            for line in f.readlines():
                if username == line.strip().split()[0] and password == line.strip().split()[1]:
                    print_color.print_color('欢迎登录oldboy商城!!祝您购物愉快!','green')
                    money = line.strip().split()[-1]
                    return username,money
            else:
                if username_temp == username:
                    n += 1
                    print_color.print_color('你已输错%s次,还有%s次机会!'% (n,3-n),'red')
                else:
                    username_temp = username
                    n = 1
                    print_color.print_color('用户名或密码错误,请重新输入!','red')
                    continue

    #验证连续三次失败的已存在的用户加入locked文件
    with open(user_file,'r') as f:
        for line in f.readlines():
            if username == line.strip().split()[0]:
                with open(locked_file,'a') as f1:
                    f1.write('%s\n' % username)
    print_color.print_color("尝试太多次,用户已被锁定,你已无法登录商城!系统即将退出",'red')
    return False,0
예제 #10
0
def upload(args):
    # spider id
    _id = args.id

    # dir
    dir_ = args.dir
    if dir_ is None:
        dir_ = os.path.abspath('.')

    # name
    name = args.name
    if name is None:
        name = os.path.basename(dir_)

    # create spider
    if args.create:
        try:
            _id = create_spider(name=name,
                                col_name=args.col_name,
                                cmd=args.cmd)
            print_color(f'created spider {name} (id: {_id})',
                        tag='success',
                        tag_color='green',
                        color='white')
        except HttpException:
            print_color(f'create spider {name} failed',
                        tag='error',
                        tag_color='red',
                        color='white')
            return

    # stats
    stats = {
        'success': 0,
        'error': 0,
    }

    # iterate files
    for root, dirs, files in os.walk(dir_):
        for file_name in files:
            # file path
            file_path = os.path.join(root, file_name)

            # ignored file
            if is_ignored(file_path):
                continue

            # target path
            target_path = file_path.replace(dir_, '')

            # upload file
            try:
                upload_file(_id, file_path, target_path)
                print_color(f'uploaded {file_path}',
                            tag='success',
                            tag_color='green',
                            color='white')
                stats['success'] += 1

            except HttpException:
                print_color(f'failed to upload {file_path}',
                            tag='error',
                            tag_color='red',
                            color='white')
                stats['error'] += 1

    # logging
    print_color(f'uploaded spider {name}',
                tag='success',
                tag_color='green',
                color='white')
    print_color(f'success: {stats["success"]}',
                tag='info',
                tag_color='cyan',
                color='white')
    print_color(f'failed: {stats["error"]}',
                tag='info',
                tag_color='cyan',
                color='white')
예제 #11
0
def balance(username, user_file):
    '''
    :param username:
    :param user_file:
    :return:返回值为正整数
    '''
    with open(user_file, 'r') as f:
        for line in f.readlines():
            if line.strip().split()[0] == username:
                money = line.strip().split()[-1]
                money = int(money)
                if money < 1000:
                    print('当前用户:', end='')
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:', end=''),
                    print_color.print_color(
                        '%s' % num_three.num_three(str(money)), 'red')
                if money >= 1000 and money <= 2500:
                    print('当前用户:', end=''),
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:', end=''),
                    print_color.print_color(
                        '%s' % num_three.num_three(str(money)), 'yellow')
                if money > 2500:
                    print('当前用户:', end=''),
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:', end=''),
                    print_color.print_color(
                        '%s' % num_three.num_three(str(money)), 'green')
                return money
예제 #12
0
def balance(username,user_file):
    '''
    :param username:
    :param user_file:
    :return:返回值为正整数
    '''
    with open(user_file,'r') as f:
        for line in f.readlines():
            if line.strip().split()[0] == username:
                money = line.strip().split()[-1]
                money = int(money)
                if money <1000:
                    print('当前用户:',end='')
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:',end=''),
                    print_color.print_color('%s' % num_three.num_three(str(money)),'red')
                if money >=1000 and money <= 2500:
                    print('当前用户:',end=''),
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:',end=''),
                    print_color.print_color('%s' % num_three.num_three(str(money)),'yellow')
                if money > 2500:
                    print('当前用户:',end=''),
                    print_color.print_color('%s' % username, 'green'),
                    print('帐户余额:',end=''),
                    print_color.print_color('%s' % num_three.num_three(str(money)),'green')
                return money
예제 #13
0
def login(user_file, locked_file):
    #计数器
    n = 1
    #声明变量,配合计数器用
    username_temp = ''

    while n < 3:
        username = input("请输入用户名:")
        password = input("请输入密码:")
        #验证用户名或密码是否为空,为空则重新输入
        if username == '' or password == '':
            print_color.print_color('用户名或密码不能为空,请重新输入!', 'red')
            continue
        #验证用户是否被锁定
        with open(locked_file, 'r') as f:
            for line in f.readlines():
                #print(line)
                if username == line.strip():
                    print_color.print_color("用户已被锁定,系统即将退出!", 'red')
                    exit()

        #验证用户名密码是否正确
        with open(user_file, 'r') as f:
            for line in f.readlines():
                if username == line.strip().split(
                )[0] and password == line.strip().split()[1]:
                    print_color.print_color('欢迎登录oldboy商城!!祝您购物愉快!', 'green')
                    money = line.strip().split()[-1]
                    return username, money
            else:
                if username_temp == username:
                    n += 1
                    print_color.print_color('你已输错%s次,还有%s次机会!' % (n, 3 - n),
                                            'red')
                else:
                    username_temp = username
                    n = 1
                    print_color.print_color('用户名或密码错误,请重新输入!', 'red')
                    continue

    #验证连续三次失败的已存在的用户加入locked文件
    with open(user_file, 'r') as f:
        for line in f.readlines():
            if username == line.strip().split()[0]:
                with open(locked_file, 'a') as f1:
                    f1.write('%s\n' % username)
    print_color.print_color("尝试太多次,用户已被锁定,你已无法登录商城!系统即将退出", 'red')
    return False, 0