def doshopping(userobj): ''' 购物商城模块,进行鼓舞部分的所有处理 :param userobj:一个用户对象,如果用户未登陆,在支付模块会通过装饰器来登陆 :return: ''' #实例化商城 shopobj = shopping.Shopping() exitflag = False while not exitflag: #开始菜单 print(shopobj.welcome_meun) shop_classify_id = input('请选择商品分类编号[1-3]:').strip().lower() if not shop_classify_id:continue if shop_classify_id == '0': exitflag = True continue if int(shop_classify_id) not in range(1,6): common.show_message("请选择正确的商品类型编号!","ERROR") continue elif shop_classify_id == '4': #查看购物车 shopping.Shopping.print_goods_list(shopobj.shopping_cart) common.show_message("当前购物车共有{0}件商品,合计{1}元!".format(len(shopobj.shopping_cart), shopobj.shopping_cost))
def doshopping(userobj): """ 购物商城模块,进行购物部分的所有处理 :param userobj: 一个用户对象,如果用户未登录,在支付模块会通过装饰器来登录 :return: """ # 实例化商城 shoppobj = shopping.Shopping() # 选择商品类型 exitflag = False while not exitflag: # 开始菜单 print(shoppobj.welcome_menu) shop_cassify_id = input("请选择商品分类编号[1-3]: ").strip().lower() if not shop_cassify_id: continue if shop_cassify_id == "0": exitflag = True continue if int(shop_cassify_id) not in range(1, 6): common.show_message("请选择正确的商品类型编号!", "ERROR") continue elif shop_cassify_id == "4": # 查看购物车 shopping.Shopping.print_goods_list(shoppobj.shopping_cart) common.show_message( "当前购物车共有 {0} 件商品,合计 {1} 元 !".format( len(shoppobj.shopping_cart), shoppobj.shopping_cost), "INFORMATION") continue elif shop_cassify_id == "5": # 购物结算 dealresult = shoppobj.payfor_shopcart(userobj) if dealresult == errorcode.NO_ERROR: common.show_message("支付完成!", "INFORMATION") else: # 获取用户选择的商品类型编号 shoppobj.goods_classify_id = shop_cassify_id # 获得商品类型编号对应的商品列表 goods_list = shoppobj.get_goods_list_by_typeid() if not goods_list: common.show_message("未找到商品信息!", "NOTICE") continue # 开始选择商品,添加到购物车 choose_goods_flag = True while choose_goods_flag: # 显示指定商品分类下的所有商品列表(Shopping类静态方法) shopping.Shopping.print_goods_list(goods_list) goods_id = input("选择商品编号,加入购物车(q返回上一级): ").strip().lower() if not goods_id: continue # 返回上一级 if goods_id == "q": choose_goods_flag = False continue else: # 将选择商品加入购物车 result = shoppobj.add_shopping_card(goods_id) if result: # 添加成功,显示购物车所有商品信息 shopping.Shopping.print_goods_list( shoppobj.shopping_cart) common.show_message("已将商品加入购物车!", "INFORMATION") # 是否继续添加 nextflag = False while not nextflag: donext = input( "继续购物(y) or 返回上一级(q):").strip().lower() if donext == "y": break elif donext == "q": choose_goods_flag = False break else: continue else: # 添加购物车失败 common.show_message("添加购物车失败,请检查输入商品编号是否正确!", "ERROR") continue
def main(self=None): # 实例化操作类 SCGW = shopping.Shopping() # 登录次数限制 LOGIN_LIMIT = 3 # 已购物品小票清单,在程序退出或者客户主动选择结账的时候进行结账,如果结账成功进行序列化保存,重新加载后,重新清空 GWQDLIST = [] # 订单,存储每一个用户一次购物的信息 QDINFO = {} # qdlist = [] # 存放反序列化取出来的历史记录,用来在登录的时候进行展示 # 定义序列化和反序列化的存储读取路径 BASICPATH = os.path.abspath("../") GWQDPATH = getConfig.get_gwqdpath(BASICPATH) YHXXPATH = getConfig.get_yhxxpath(BASICPATH) SPXXPATH = getConfig.get_spxxpath(BASICPATH) SPFLPATH = getConfig.get_spflpath(BASICPATH) YHJBPATH = getConfig.get_yhjbpath(BASICPATH) ZTPATH = getConfig.get_ztpath(BASICPATH) DQPATH= getConfig.get_dqpath(BASICPATH) # 获取写日志对象 LOGGER = getLogger.getLogger(log_filename=getConfig.get_logall(BASICPATH)) # 初始化系统基本信息,初始运行一次 # csh(yhxxpath=YHXXPATH,spxxpath=SPXXPATH,spflpath=SPFLPATH,yhjbpath=YHJBPATH,ztpath=ZTPATH) while True: # 提示系统功能信息 print(''' 功能菜单:1 注册 2 登录 3 充值 4 查看历史购物记录 5 查看所有商品分类以及商品,进行购物 6 新增商品 7 新增商品分类 8 新增用户级别 9 新增状态 10 查看当前打折商品 11 修改商品信息 12 修改密码 13 注销当前登录账户 14 退出系统 15 初始化系统信息 ''') userchoice = input("请输入您需要的操作功能编号\t\t") if userchoice == "1": SCGW.zhuce(yhxxpath=YHXXPATH, gwqdpath=GWQDPATH,spxxpath=SPXXPATH,cs=LOGIN_LIMIT) continue elif userchoice == "2": SCGW.login(yhxxpath=YHXXPATH, gwqdpath=GWQDPATH,spxxpath=SPXXPATH,cs=LOGIN_LIMIT) continue elif userchoice == "3": SCGW.chongzhi(username=SCGW.IS_LOGIN, yhxxpath=YHXXPATH) continue elif userchoice == "4": SCGW.sy(yhxxpath=YHXXPATH,spxxpath=SPXXPATH,gwqdpath=GWQDPATH) continue elif userchoice == "5": SCGW.gwlc(spflpath=SPFLPATH,spxxpath=SPXXPATH,yhxxpath=YHXXPATH,gwqdlist=GWQDLIST,qdinfo=QDINFO) elif userchoice == "6": SCGW.xzspxxlist(spxxpath=SPXXPATH) continue elif userchoice == "7": SCGW.xzspfl(spflpath=SPFLPATH) continue elif userchoice == "8": SCGW.xzyhjb(yhjbpath=YHJBPATH) continue elif userchoice == "9": SCGW.xzzt(ztpath=ZTPATH) continue elif userchoice == "10": SCGW.getdzspxx(spxxpath=SPXXPATH) elif userchoice == "11": SCGW.xgspxx(spxxpath=SPXXPATH) elif userchoice == "12": SCGW.xgmm(yhxxpath=YHXXPATH) elif userchoice == "13": if SCGW.IS_LOGIN: LOGGER.info("{name}退出系统了".format(name=SCGW.IS_LOGIN)) SCGW.IS_LOGIN=False print("退出登录成功") if not SCGW.IS_LOGIN: print("当前没有登录账户") continue elif userchoice == "14": choice = input("确实要退出系统吗(y/n)") if choice == "y": if SCGW.IS_LOGIN: LOGGER.info("{name}退出系统了".format(name=SCGW.IS_LOGIN)) sys.exit(); else: continue elif userchoice == "15": print("将要对系统基础信息进行初始化,请勿重复使用") SCGW.chushihua(YHXXPATH, SPXXPATH, SPFLPATH, YHJBPATH, ZTPATH,DQPATH) LOGGER.info("{name}对系统进行了初始化".format(name=SCGW.IS_LOGIN)) else: SCGW.gwlc(spflpath=SPFLPATH, spxxpath=SPXXPATH, yhxxpath=YHXXPATH, gwqdlist=GWQDLIST, qdinfo=QDINFO) continue
def main(self=None): # 实例化操作类 scgw = shopping.Shopping(); # 登录次数限制 login_limit = 3; # 已购物品小票清单,在程序退出或者客户主动选择结账的时候进行结账,如果结账成功进行序列化保存 gwqdlist = []; # 订单,存储每一个用户一次购物的信息 qdinfo = {}; qdlist = []; # 存放反序列化取出来的历史记录,用来在登录的时候进行展示 # 定义序列化和反序列化的存储读取路径 basicpath = os.path.abspath("../") gwqdpath = getConfig.get_gwqdpath(basicpath) yhxxpath = getConfig.get_yhxxpath(basicpath) spxxpath = getConfig.get_spxxpath(basicpath) spflpath = getConfig.get_spflpath(basicpath) yhjbpath = getConfig.get_yhjbpath(basicpath) ztpath = getConfig.get_ztpath(basicpath) # 初始化系统基本信息,初始运行一次 # csh(yhxxpath=yhxxpath,spxxpath=spxxpath,spflpath=spflpath,yhjbpath=yhjbpath,ztpath=ztpath) while True: # 提示系统功能信息 print(''' 功能菜单:1 注册 2 登录 3 充值 4 查看历史购物记录 5 查看所有商品,进行购物 6 新增商品 7 新增商品分类 8 新增用户级别 9 新增状态 10 查看当前打折商品 11 修改商品信息 12 注销当前登录账户 13 退出系统 14 初始化系统信息 ''') userchoice = input("请输入您需要的操作功能编号\t\t") if userchoice == "1": scgw.zhuce(yhxxpath=yhxxpath, gwqdpath=gwqdpath,spxxpath=spxxpath,cs=login_limit) continue elif userchoice == "2": scgw.login(yhxxpath=yhxxpath, gwqdpath=gwqdpath,spxxpath=spxxpath,cs=login_limit) continue elif userchoice == "3": scgw.chongzhi(username=scgw.IS_LOGIN, yhxxpath=yhxxpath) continue elif userchoice == "4": scgw.sy(yhxxpath=yhxxpath,spxxpath=spxxpath,gwqdpath=gwqdpath) continue elif userchoice == "5": scgw.getspfl(spflpath=spflpath, spxxpath=spxxpath) while True: dqyh = scgw.getdqyh(yhxxpath) ye = dqyh.get("ye"); scgw.gw(yhxxpath=yhxxpath,spxxpath=spxxpath,gwqdpath=gwqdpath,gwqdlist=gwqdlist); choice = input("是否继续购买(y/n)"); if choice.lower() != 'y': print("感谢您的购物,期待您的下次光临!!!"); hj=scgw.sy(yhxxpath, spxxpath, gwqdpath); # 这一步会进行结账,所以我们进行返回余额 dqyh["ye"] = ye-hj; qdinfo["gmyh"] = dqyh.get("name"); qdinfo["ddsj"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") qdinfo["sp"] = gwqdlist; qdinfo["ye"] = ye-hj; scgw.xlh(xlhnr=qdinfo,filepath=gwqdpath) break; continue; elif userchoice == "6": spbm = input("输入新增商品编码") name = input("输入新增商品名称") jg = int(input("输入新增商品价格")) sl = int(input("输入新增商品数量")) fl = input("输入新增商品分类") spxx = {"spbm": spbm, "name": name, "jg": jg, "sl": sl, "zt": "1", "fl": fl, "gm": ""} scgw.xzxxlist(xzxx=spxx, wjlj=spxxpath) continue elif userchoice == "7": spfl = {} flbm = input("输入新增商品分类编码") flmc = input("输入新增商品分类名称") if flbm.strip() and flmc.strip(): spfl = {flbm: flmc} scgw.xzdmdic(xzxxdic=spfl, wjlj=spflpath) continue elif userchoice == "8": yhjb = {} jbbm = input("输入新增用户级别编码") jbmc = input("输入新增用户级别名称") if jbbm.strip() and jbmc.strip(): yhjb = {jbbm: jbmc} scgw.xzdmdic(xzxxdic=yhjb, wjlj=yhjbpath) continue elif userchoice == "9": zt = {} ztbm = input("输入新增状态编码") ztmc = input("输入新增状态名称") if ztbm.strip() and ztmc.strip(): zt = {ztbm: ztmc} scgw.xzdmdic(xzxxdic=zt, wjlj=ztpath) continue elif userchoice == "10": 查看当前打折商品 elif userchoice == "11": 修改商品信息 elif userchoice == "12": scgw.IS_LOGIN=False; # 取消登录状态就可以了 print("退出登录成功") continue elif userchoice == "13": choice = input("确实要退出系统吗(y/n)") if choice == "y": break; else: continue elif userchoice == "14": print("将要对系统基础信息进行初始化,请勿重复使用") scgw.chushihua(yhxxpath, spxxpath, spflpath, yhjbpath, ztpath) else: scgw.getspfl(spflpath=spflpath, spxxpath=spxxpath) while True: dqyh = scgw.getdqyh(yhxxpath) ye = dqyh.get("ye"); scgw.gw(yhxxpath=yhxxpath, spxxpath=spxxpath, gwqdpath=gwqdpath, gwqdlist=gwqdlist); choice = input("是否继续购买(y/n)"); if choice.lower() != 'y': print("感谢您的购物,期待您的下次光临!!!"); hj = scgw.sy(yhxxpath, spxxpath, gwqdpath); # 这一步会进行结账,所以我们进行返回余额 dqyh["ye"] = ye - hj; qdinfo["gmyh"] = dqyh.get("name"); qdinfo["ddsj"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") qdinfo["sp"] = gwqdlist; qdinfo["ye"] = ye - hj; scgw.xlh(xlhnr=qdinfo, filepath=gwqdpath) break; continue;