def show_shopping_cart(): ''' 打印购物车函数 打印购物车列表和操作选项 :return: 返回total总金额 ''' total = 0 # 初始化购物总金额 print('%s %s %s%s %s%s\n%s' % (mylib.myljust('序号', 8), mylib.myljust('商品编号', 8), mylib.myljust('商品名称', 50), mylib.myrjust('单价', 8), mylib.myrjust('个数', 8), mylib.myrjust('小计', 8), '-' * 100)) cart_list = shopping.get_cart() # 获取购物车列表 if len(cart_list) != 0: # 判断购物车是否为空 # 不为空 for cart_item in enumerate(cart_list, 1): #遍历购物车 total = total + cart_item[1]['subtotal'] # 购物总金额累加 print( '%s %s %s%s %s%s' % (str(cart_item[0]).center(8), cart_item[1]['id'].center(8), mylib.myljust(cart_item[1]['name'], 50), str(cart_item[1]['price']).rjust(8), str(cart_item[1]['num']).rjust(8), str(cart_item[1]['subtotal']).rjust(9))) else: print('您的购物车空空如也,快去血拼吧') print('-' * 100) print('总计:%s'.rjust(95 - len(str(total))) % total) # 打印总计 print('操作: 结账(p) 返回上级菜单(r) 清空购物车(e) 删除商品(d)') # 打印操作选项 return total
def show_shopping_cart(): ''' 打印购物车函数 打印购物车列表和操作选项 :return: 返回total总金额 ''' total = 0 # 初始化购物总金额 print('%s %s %s%s %s%s\n%s' %(mylib.myljust('序号',8),mylib.myljust('商品编号',8), mylib.myljust('商品名称',50), mylib.myrjust('单价',8), mylib.myrjust('个数',8), mylib.myrjust('小计',8), '-'*100)) cart_list = shopping.get_cart()# 获取购物车列表 if len(cart_list) != 0: # 判断购物车是否为空 # 不为空 for cart_item in enumerate(cart_list, 1): #遍历购物车 total = total + cart_item[1]['subtotal'] # 购物总金额累加 print('%s %s %s%s %s%s' %(str(cart_item[0]).center(8),cart_item[1]['id'].center(8), mylib.myljust(cart_item[1]['name'],50), str(cart_item[1]['price']).rjust(8), str(cart_item[1]['num']).rjust(8), str(cart_item[1]['subtotal']).rjust(9))) else: print('您的购物车空空如也,快去血拼吧') print('-'*100) print('总计:%s'.rjust(95-len(str(total))) % total) # 打印总计 print('操作: 结账(p) 返回上级菜单(r) 清空购物车(e) 删除商品(d)') # 打印操作选项 return total
def shopping_cart(): ''' 购物车函数 :return: 无 ''' while True: total = show_shopping_cart() # 调用打印购物车函数,并返回购物车总金额 chose = input("请选择您的操作:").strip() # 获取用户输入操作选项 if chose == 'e': # 判断用户输入 # 选择e,清空购物车 if total != 0: # 判断购物车是否为空 # 购物车不为空 confirm = mylib.validate_input('^[y]$', '请确认是否清空购物车(y/n): ', back_str = 'n') #获取用户确认 if confirm == 'y': # 判断用户确认 # 确认清空 shopping.empty_cart() # 调用goods对象的del_all_cart方法清空购物车 if shopping.get_crurrent_customer(): logger.info('用户%s清空购物车' %(shopping.get_crurrent_customer()['username'])) else: logger.info('游客清空购物车') input('购物车已经清空,按任意键继续') else: input('清空购物车已经取消,按任意键继续') else: input('购物车是空的,快去血拼吧,按任意键继续') elif chose == 'p': # 选择p,支付 if shopping.get_crurrent_customer(): if total != 0: res = atm.pay_api('65商城购物', total) if res: shopping.empty_cart() logger.info('用户%s成功支付%s' %(shopping.get_crurrent_customer()['username'], total)) input('支付成功,按任意键返回上级菜单') break else: input('支付失败,按任意键继续') else: input('您的购物车还是空空如也,快去血拼吧!,按任意键继续') else: input('您还没有登录,请先登录') elif chose == 'r': # 选择r退出购物车循环,返回上一级菜单 break elif chose == 'd': del_chose = mylib.validate_input('^\d$', '请输入编号(输入r返回): ') if del_chose == 'r': continue else: cart_list = shopping.get_cart() gname = cart_list[int(del_chose) - 1]['name'] confirm = mylib.validate_input('^[y]$', '请确认删除1个%s(y/n): ' %gname, back_str = 'n') if confirm == 'y': gid = cart_list[int(del_chose) - 1]['id'] res, msg = shopping.del_goods_from_cart(gid) if shopping.get_crurrent_customer(): logger.info('用户%s删除购物车内%s ' %(shopping.get_crurrent_customer()['username'], gname)) else: logger.info('游客删除购物车内%s' %gname) input(msg) else: input('删除操作已经取消,按任意键继续')
def shopping_cart(): ''' 购物车函数 :return: 无 ''' while True: total = show_shopping_cart() # 调用打印购物车函数,并返回购物车总金额 chose = input("请选择您的操作:").strip() # 获取用户输入操作选项 if chose == 'e': # 判断用户输入 # 选择e,清空购物车 if total != 0: # 判断购物车是否为空 # 购物车不为空 confirm = mylib.validate_input('^[y]$', '请确认是否清空购物车(y/n): ', back_str='n') #获取用户确认 if confirm == 'y': # 判断用户确认 # 确认清空 shopping.empty_cart() # 调用goods对象的del_all_cart方法清空购物车 if shopping.get_crurrent_customer(): logger.info( '用户%s清空购物车' % (shopping.get_crurrent_customer()['username'])) else: logger.info('游客清空购物车') input('购物车已经清空,按任意键继续') else: input('清空购物车已经取消,按任意键继续') else: input('购物车是空的,快去血拼吧,按任意键继续') elif chose == 'p': # 选择p,支付 if shopping.get_crurrent_customer(): if total != 0: res = atm.pay_api('65商城购物', total) if res: shopping.empty_cart() logger.info( '用户%s成功支付%s' % (shopping.get_crurrent_customer()['username'], total)) input('支付成功,按任意键返回上级菜单') break else: input('支付失败,按任意键继续') else: input('您的购物车还是空空如也,快去血拼吧!,按任意键继续') else: input('您还没有登录,请先登录') elif chose == 'r': # 选择r退出购物车循环,返回上一级菜单 break elif chose == 'd': del_chose = mylib.validate_input('^\d$', '请输入编号(输入r返回): ') if del_chose == 'r': continue else: cart_list = shopping.get_cart() gname = cart_list[int(del_chose) - 1]['name'] confirm = mylib.validate_input('^[y]$', '请确认删除1个%s(y/n): ' % gname, back_str='n') if confirm == 'y': gid = cart_list[int(del_chose) - 1]['id'] res, msg = shopping.del_goods_from_cart(gid) if shopping.get_crurrent_customer(): logger.info( '用户%s删除购物车内%s ' % (shopping.get_crurrent_customer()['username'], gname)) else: logger.info('游客删除购物车内%s' % gname) input(msg) else: input('删除操作已经取消,按任意键继续')