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))
Exemple #2
0
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
Exemple #3
0
    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
Exemple #4
0
    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;