Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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('删除操作已经取消,按任意键继续')
Ejemplo n.º 4
0
 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('删除操作已经取消,按任意键继续')