예제 #1
0
def set():
    if request.method == "GET":
        resp_data = {}
        req = request.args
        id = int( req.get( "id",0 ) )
        reback_url = UrlManager.buildUrl("/member/index")
        if id < 1:
            return redirect(reback_url)

        info = Member.query.filter_by(id=id).first()
        if not info:
            return redirect(reback_url)

        if info.status != 1:
            return redirect(reback_url)

        resp_data['info'] = info
        resp_data['current'] = 'index'
        return ops_render( "member/set.html",resp_data )

    resp = { 'code':200,'msg':'操作成功~~','data':{} }
    req = request.values
    id = req['id'] if 'id' in req else 0
    nickname = req['nickname'] if 'nickname' in req else ''
    if nickname is None or len( nickname ) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的姓名~~"
        return jsonify( resp )

    member_info = Member.query.filter_by(id=id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "指定会员不存在~~"
        return jsonify(resp)

    member_info.nickname = nickname
    member_info.updated_time = getCurrentDate()
    db.session.add( member_info )
    db.session.commit()
    return jsonify( resp )
예제 #2
0
def login():
    if request.method == "GET":
        g.current_user = check_login()
        if g.current_user:
            return redirect(UrlManager.buildUrl("/blog"))
        return ops_render("SignIn/index.html")

    resp = {'code': 200, 'msg': '登录成功~~', 'data': {}}
    req = request.values
    login_name = req['login_name'] if 'login_name' in req else ''
    login_pwd = req['login_pwd'] if 'login_pwd' in req else ''

    if login_name is None or len(login_name) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入正确的登录用户名~~"
        return jsonify(resp)

    if login_pwd is None or len(login_pwd) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入正确的邮箱密码~~"
        return jsonify(resp)

    user_info = User.query.filter_by(login_name=login_name).first()
    if not user_info:
        resp['code'] = -1
        resp['msg'] = "请输入正确的登录用户名~~"
        return jsonify(resp)

    if user_info.login_pwd != UserService.genePwd(login_pwd,
                                                  user_info.login_salt):
        resp['code'] = -1
        resp['msg'] = "请输入正确的登录用户名和密码-2~~"
        return jsonify(resp)

    g.current_user = user_info
    response = make_response(json.dumps({'code': 200, 'msg': '登录成功~~'}))
    response.set_cookie(app.config['AUTH_COOKIE_NAME'], '%s#%s' %
                        (UserService.geneAuthCode(user_info), user_info.uid),
                        60 * 60 * 24 * 120)  # 保存120天
    return response
예제 #3
0
def before_request():
    return
    ignore_urls = app.config["IGNORE_URLS"]
    path = request.path

    pattern = re.compile("%s" % "|".join(ignore_urls))
    if pattern.match(path):
        return

    if "/test" in path:
        return

    # 微信小程序用户
    if "/wechat" in path:
        member_info = check_user_login()
        g.member_info = None
        if not member_info:
            resp = {"code": -1, "msg": "未登录", "data": {}}
            return jsonify(resp)
        g.member_info = member_info
        return

    # 后台管理员
    user_info = check_admin_login()
    g.current_user = None
    if not user_info:
        return redirect(UrlManager.buildUrl("/admin/login"))
    else:

        now = datetime.datetime.now()
        now = getFormatDate(date=now)
        if now > user_info.expiretime:
            msg = "登录超时,请重新登录"
            return render_template("admin/login.html", msg=msg)
        elif user_info.status == 0:
            msg = "账号已禁用,请联系管理员"
            return render_template("admin/login.html", msg=msg)
        else:
            g.current_user = user_info
            return
예제 #4
0
def getFoodInfo():
    resp_data = {}
    req = request.args
    food_id = int(req.get('id', 0))
    print(food_id)
    reback_url = UrlManager.buildUrl("/")
    if food_id < 1:
        return redirect(reback_url)

    # food_info = FoodSaleChangeLog.query.filter_by(id=food_id).all()
    food = Food.query.filter_by(id=food_id).first()
    date_from = food.date_from.__str__()
    print(date_from)
    date_to = food.date_to.__str__()
    print(date_to)
    rs = db.session.query(
        FoodSaleChangeLog.community_name, func.sum(
            FoodSaleChangeLog.quantity)).filter_by(food_id=food_id).filter(
                FoodSaleChangeLog.created_time >= date_from).filter(
                    FoodSaleChangeLog.created_time <= date_to).group_by(
                        FoodSaleChangeLog.community_name).all()

    print(rs)

    sum_quantity = 0
    stat_list = []
    for row in rs:
        sum_quantity = sum_quantity + row[1]
        temp_data = {}
        temp_data['community_name'] = row[0]
        temp_data['quantity'] = row[1].__str__()
        stat_list.append(temp_data)

    if not rs:
        return redirect(reback_url)

    resp_data['sum_quantity'] = sum_quantity
    resp_data['stat_list'] = stat_list
    return ops_render("index/info.html", resp_data)
def before_request():
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']

    path = request.path
    pattern = re.compile('|'.join(ignore_check_login_urls))
    if pattern.match(path):
        return

    pattern = re.compile('|'.join(ignore_urls))
    if pattern.match(path):
        return

    user_info = check_login()
    g.current_user = None
    if user_info:
        g.current_user = user_info  #渲染变量

    if not user_info:
        return redirect(UrlManager.buildUrl('/user/login'))

    return
예제 #6
0
def info():
    """
    详情页面
    """
    resp_data = {}  # json对象
    req = request.args  # 只取get参数
    # req = request.values # 获取参数。request.values将所有参数拼装好,放到一个字典里面
    uid = int(req.get('id', 0))  # 默认值 0
    reback_url = UrlManager.buildUrl("/account/index")  # 反回列表页面
    if uid < 1:  # 如果id<1,即用户不存在
        return redirect(reback_url)  # 回到列表页面

    info = User.query.filter_by(uid=uid).first()  # 查询这个用户id是否存在
    if not info:  # 如果没有这个用户信息
        return redirect(reback_url)

    access_list = AppAccessLog.query.filter_by(uid=uid).order_by(
        AppAccessLog.id.desc()).limit(10).all()
    resp_data['info'] = info  # 用户信息存在,则传给前台页面
    resp_data['access_list'] = access_list

    return ops_render("account/info.html", resp_data)
예제 #7
0
def info():
    resp_data = {}
    req = request.args
    id = int(req.get("id", 0))
    reback_url = UrlManager.buildUrl("/member/index")
    if id < 1:
        return redirect(reback_url)

    info = Member.query.filter_by(id=id).first()
    if not info:
        return redirect(reback_url)

    pay_order_list = PayOrder.query.filter_by( member_id = id ).filter( PayOrder.status.in_( [-8,1] ) )\
        .order_by( PayOrder.id.desc() ).all()
    comment_list = MemberComments.query.filter_by(member_id=id).order_by(
        MemberComments.id.desc()).all()

    resp_data['info'] = info
    resp_data['pay_order_list'] = pay_order_list
    resp_data['comment_list'] = comment_list
    resp_data['current'] = 'index'
    return render_template_ops("member/info.html", resp_data)
예제 #8
0
def info():
    resp_data = {}
    req = request.values
    id = int(req['id']) if 'id' in req else 0

    reback_url = UrlManager.buildUrl("/finance/index")

    if id < 1:
        return redirect(reback_url)

    pay_order_info = PayOrder.query.filter_by(id=id).first()
    if not pay_order_info:
        return redirect(reback_url)

    member_info = Member.query.filter_by(id=pay_order_info.member_id).first()
    if not member_info:
        return redirect(reback_url)

    order_item_list = PayOrderItem.query.filter_by(
        pay_order_id=pay_order_info.id).all()
    data_order_item_list = []
    if order_item_list:
        product_map = getDictFilterField(
            Product, Product.id, "id",
            selectFilterObj(order_item_list, "product_id"))
        for item in order_item_list:
            tmp_product_info = product_map[item.product_id]
            tmp_data = {
                "quantity": item.quantity,
                "price": item.price,
                "name": tmp_product_info.name
            }
            data_order_item_list.append(tmp_data)

    resp_data['pay_order_info'] = pay_order_info
    resp_data['pay_order_items'] = data_order_item_list
    resp_data['member_info'] = member_info
    resp_data['current'] = 'index'
    return ops_render("finance/pay_info.html", resp_data)
예제 #9
0
def before_request():
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']
    path = request.path

    user_info = check_login()

    # g.current_user = None
    # if user_info:
    #     g.current_user = user_info

    pattern = re.compile('%s' % "|".join(ignore_check_login_urls))
    if pattern.match(path):
        return

    pattern = re.compile('%s' % "|".join(ignore_urls))
    if pattern.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl("/user/login"))
    return
예제 #10
0
def before_request():
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']
    path = request.path
    # 如果是静态文件就不用查询用户信息
    pattern = re.compile('|'.join(ignore_check_login_urls))
    if pattern.match(path):
        return
    user_info = check_login()

    # 登录成功之后设置一个user_info对象全局变量
    g.current_user = None
    if user_info:
        g.current_user = user_info
    # 登录之后url加入日志
    LogService.add_access_log()
    pattern = re.compile('%s' % "|".join(ignore_urls))
    if pattern.match(path):
        return
    if not user_info:
        return redirect(UrlManager.buildUrl('/user/login'))
    return
예제 #11
0
파일: Account.py 프로젝트: 462548187/order
def info():
    resp_data = {}
    req = request.values

    uid = int(req.get('id', 0))
    back_url = UrlManager.buildUrl('/account/index')

    if uid < 1:
        return redirect(back_url)

    user_info = User.query.filter_by(uid=uid).first()

    if not user_info:
        return redirect(back_url)

    # 按照id倒序排列,只显示10条数据
    access_list = AppAccessLog.query.filter_by(uid=uid).order_by(
        AppAccessLog.id.desc()).limit(10).all()
    resp_data['user_info'] = user_info
    resp_data['access_list'] = access_list

    return ops_render('/account/info.html', resp_data)
예제 #12
0
def before_request():
    path = request.path
    ignore_urls = app.config["IGNORE_URLS"]
    ignore_check_login_urls = app.config["IGNORE_CHECK_LOGIN_URLS"]
    user_info = check_login()
    g.current_user = None
    if user_info:
        g.current_user = user_info

    # 设置忽略静态资源 ^/static
    pattern = re.compile("%s" % "|".join(ignore_check_login_urls))
    if pattern.match(path):
        return

    # 设置/user/login得忽略规则,要用到正则表达式 ^/user/login
    pattern = re.compile("%s" % "|".join(ignore_urls))
    if pattern.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl("/user/login"))
    return
예제 #13
0
def info():
    resp_data = {}
    req = request.args
    uid = int(req.get('id', 0))

    reback_url = UrlManager.buildUrl('/account/index')
    if uid < 1:
        return redirect(reback_url)

    info = User.query.filter_by(uid=uid).first()

    #显示每个人的访问时间和访问地址
    query = AppAccessLog.query
    list = query.order_by(
        AppAccessLog.created_time.desc()).filter_by(uid=uid).all()[0:5]

    if not info:
        return redirect(reback_url)

    resp_data['info'] = info
    resp_data['list'] = list
    return ops_render('account/info.html', resp_data)
예제 #14
0
def before_request():
    # 跳过这些url的登录验证
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']
    path = request.path
    user_info = check_login()

    # 如果是静态文件就不要查询用户信息了
    pattern = re.compile('%s' % "|".join(ignore_check_login_urls))
    if pattern.match(path):
        return

    if '/api' in path:
        return

    user_info = check_login()
    g.current_user = None

    if not user_info:
        return redirect(UrlManager.buildUrl("/user/login"))

    return
예제 #15
0
def login():
    if request.method == "GET":
        if g.current_user:
            return redirect(UrlManager.buildUrl("/index"))
        return ops_render('login.html')

    result = {'code': 200, 'msg': '登录成功'}
    value = request.values
    login_name = value['login_name'] if 'login_name' in value else ''
    login_pwd = value['login_pwd'] if 'login_pwd' in value else ''

    if login_name is None or len(login_name) < 1:
        result['code'] = -1
        result['msg'] = 'error'
        return jsonify(result)

    if login_pwd is None or len(login_pwd) < 1:
        result['code'] = -1
        result['msg'] = 'error'
        return jsonify(result)

    user_info = S_User_Info.query.filter_by(UserName=login_name).first()
    if not user_info:
        result['code'] = -1
        result['msg'] = '账号错误'
        return jsonify(result)

    if user_info.UserPwd != login_pwd:
        result['code'] = -1
        result['msg'] = '密码错误'
        return jsonify(result)

    response = make_response(json.dumps(result))
    response.set_cookie(
        app.config['AUTH_COOKIE_NAME'],
        "%s#%s" % (UserService.geneAuthCode(user_info), user_info.Id))

    return response
예제 #16
0
def before_request():
    ignore_urls = app.config['IGNORE_URLS']
    api_ignore_urls = app.config['API_IGNORE_URLS']
    app_ignore_urls = app.config['APP_IGNORE_URLS']
    img_ignore_urls = app.config['IMG_IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']
    path = request.path
    pattern = re.compile('%s' % "|".join(ignore_check_login_urls))
    if pattern.match(path):
        return

    user_info = check_login()

    g.current_user = None
    if user_info:
        g.current_user = user_info
        session['uid'] = user_info.uid

    pattern = re.compile('%s' % "|".join(ignore_urls))
    if pattern.match(path):
        return

    pattern = re.compile('%s' % "|".join(api_ignore_urls))
    if pattern.match(path):
        return

    pattern = re.compile('%s' % "|".join(app_ignore_urls))
    if pattern.match(path):
        return

    pattern = re.compile('%s' % "|".join(img_ignore_urls))
    if pattern.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl("/login/"))

    return
예제 #17
0
def before_request():
    path = request.path
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']

    #设置忽略静态资源 ^/static
    pattern = re.compile('%s' % '|'.join(ignore_check_login_urls))
    if pattern.match(path):
        return

    user_info = check_login()
    g.current_user = None
    if user_info:
        g.current_user = user_info

    #设置/user/login的忽略规则。要用正则表达式
    pattern = re.compile('%s' % '|'.join(ignore_urls))
    if pattern.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl('/user/login'))
    return
예제 #18
0
def before_request():
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']

    path = request.path
    pattern = re.compile('%s' % "|".join(ignore_check_login_urls))
    if pattern.match(path):
        return

    user_info = check_login()
    g.current_user = user_info if user_info else None

    # 加入日志
    LogService.addAccessLog()

    pattern = re.compile('%s' % "||".join(ignore_urls))
    if pattern.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl("/user/login"))

    return
예제 #19
0
def set():
    if request.method == "GET":
        resp_data = {}
        input_id = request.args.get("id", 0, type=int)
        reback_url = UrlManager.buildUrl("/member/index")
        if input_id < 1:
            return redirect(reback_url)

        target_info = Member.query.filter_by(id=input_id).first()
        if not target_info:
            return redirect(reback_url)

        if target_info.status != 1:
            return redirect(reback_url)

        resp_data['info'] = target_info
        resp_data['current'] = 'index'
        return ops_render("member/set.html", **resp_data)

    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    input_id = ParamsValidator.GetORSetValue(req, 'id', value=0)
    nickname = ParamsValidator.GetORSetValue(req, 'nickname', value='')
    if nickname is None or len(nickname) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的姓名"
        return jsonify(resp)
    elif not Member.query.filter_by(id=input_id).first():
        resp['code'] = -1
        resp['msg'] = "指定会员不存在"
    else:
        member_info = Member.query.filter_by(id=input_id).first()
        member_info.nickname = nickname
        member_info.updated_time = getCurrentDate()
        db.session.add(member_info)
        db.session.commit()
    return jsonify(resp)
예제 #20
0
def before_request():
    ignore_urls = app.config["IGNORE_URLS"]
    ignore_check_login_urls = app.config["IGNORE_CHECK_LOGIN_URLS"]
    path = request.path

    # 忽略静态资源
    patten = re.compile('%s' % "|".join(ignore_check_login_urls))
    if patten.match(path):
        return

    user_info = check_login()
    g.current_user = None
    if user_info:
        g.current_user = user_info

    # 正则匹配路由
    patten = re.compile('%s' % "|".join(ignore_urls))
    if patten.match(path):
        return

    if not user_info:
        return redirect(UrlManager.buildUrl("/user/login"))

    return
예제 #21
0
파일: food.py 프로젝트: leeisefforts/mini
def info():
    resp_data = {}
    req = request.args
    id = int(req.get("id", 0))
    reback_url = UrlManager.buildUrl("/food/index")

    if id < 1:
        return redirect( reback_url )

    info = Food.query.filter_by( id =id ).first()
    if not info:
        return redirect( reback_url )

    stock_change_list = FoodStockChangeLog.query.filter( FoodStockChangeLog.food_id == id )\
        .order_by( FoodStockChangeLog.id.desc() ).all()

    sale_change_list = FoodSaleChangeLog.query.filter( FoodSaleChangeLog.food_id == id )\
        .order_by( FoodSaleChangeLog.id.desc() ).all()

    resp_data['info'] = info
    resp_data['stock_change_list'] = stock_change_list
    resp_data['sale_change_list'] = sale_change_list
    resp_data['current'] = 'index'
    return ops_render( "food/info.html",resp_data )
예제 #22
0
def before_request():
    path = request.path
    ignore_urls = app.config['IGNORE_URLS']
    ignore_check_login_urls = app.config['IGNORE_CHECK_LOGIN_URLS']
    pattern = re.compile("%s" % "|".join(ignore_check_login_urls))

    if pattern.match(path):
        return
    pattern = re.compile("%s" % "|".join(ignore_urls))
    if pattern.match(path):
        return

    if '/api' in path:
        return

    user_info = if_login()
    g.current_user = None
    if user_info:
        g.current_user = user_info
        # 加入日志
        LogService.addAccessLog()
    else:
        return redirect(UrlManager.buildUrl('/user/login'))
    return
예제 #23
0
파일: User.py 프로젝트: hote123456/order
def logout():
    response = make_response(redirect(UrlManager.buildUrl('/user/login')))
    response.delete_cookie(app.config['AUTH_COOKIE_NAME'])
    return response
예제 #24
0
def set():
    if request.method == "GET":
        resp_data = {}
        req = request.args
        id = int(req.get('id', 0))
        info = Good.query.filter_by(id=id).first()
        if info and info.status != 1:
            return redirect(UrlManager.buildUrl("/goods/index"))
        resp_data['info'] = info
        return ops_render("goods/set.html", resp_data)
    # POST
    resp = {'code': 200, 'msg': "操作成功", 'data': {}}
    req = request.values
    id = int(req['id']) if 'id' in req and req['id'] else 0
    cat_id = int(req['cat_id']) if 'cat_id' in req else 0
    name = req['name'] if 'name' in req else ''
    price = req['price'] if 'price' in req else ''
    main_image = req['main_image'] if 'main_image' in req else ''
    summary = req['summary'] if 'summary' in req else ''
    stock = int(req['stock']) if 'stock' in req else ''
    tags = req['tags'] if 'tags' in req else ''

    if cat_id < 1:
        resp['code'] = -1
        resp['msg'] = "请选择分类"
        return jsonify(resp)

    if name is None or len(name) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的名称"
        return jsonify(resp)

    if not price or len(price) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的价格"
        return jsonify(resp)
    price = Decimal(price).quantize(Decimal('0.00'))
    if price < 0:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的价格"
        return jsonify(resp)

    if main_image is None or len(main_image) < 3:
        resp['code'] = -1
        resp['msg'] = "请上传封面"
        return jsonify(resp)

    if summary is None or len(summary) < 3:
        resp['code'] = -1
        resp['msg'] = "请输入商品描述,不少于10个字符"
        return jsonify(resp)

    if stock < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的库存量"
        return jsonify(resp)

    if tags is None or len(tags) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入标签,便于搜索"
        return jsonify(resp)

    goods_info = Goods.query.filter_by(uid=id).first()
    before_stock = 0
    if goods_info:
        model_goods = goods_info
        before_stock = model_goods.stock
    else:
        model_goods = Goods()
        model_goods.status = 1
        # 插入格式化的时间
        model_goods.created_time = getCurrentDate()
    model_goods.cat_id = cat_id
    model_goods.name = name
    model_goods.price = price
    model_goods.main_image = main_image
    model_goods.summary = summary
    model_goods.stock = stock
    model_goods.tags = tags
    model_goods.updated_time = getCurrentDate()

    db.session.add(model_goods)
    db.session.commit()
    return jsonify(resp)
예제 #25
0
def set():
    if request.method == "GET":
        resp_data = {}
        req = request.args
        id = int(req.get('id', 0))
        info = Book.query.filter_by(book_id=id).first()
        if info and info.book_status != 1:
            return redirect(UrlManager.buildUrl("/book/index"))

        cat_list = BookCat.query.all()
        resp_data['info'] = info
        resp_data['cat_list'] = cat_list
        resp_data['current'] = 'index'
        return ops_render("book/set.html", resp_data)

    resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values
    id = int(req['id']) if 'id' in req and req['id'] else 0
    cat_id = int(req['cat_id']) if 'cat_id' in req else 0
    title = req['title'] if 'name' in req else ''
    price = req['price'] if 'price' in req else ''
    main_image = req['main_image'] if 'main_image' in req else ''
    desc = req['desc'] if 'desc' in req else ''
    stock = int(req['stock']) if 'stock' in req else ''
    tags = req['tags'] if 'tags' in req else ''

    if cat_id < 1:
        resp['code'] = -1
        resp['msg'] = "请选择分类~~"
        return jsonify(resp)

    if title is None or len(title) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的名称~~"
        return jsonify(resp)

    if not price or len(price) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的售卖价格~~"
        return jsonify(resp)

    price = Decimal(price).quantize(Decimal('0.00'))
    if price <= 0:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的售卖价格~~"
        return jsonify(resp)

    if main_image is None or len(main_image) < 3:
        resp['code'] = -1
        resp['msg'] = "请上传封面图~~"
        return jsonify(resp)

    if desc is None or len(desc) < 3:
        resp['code'] = -1
        resp['msg'] = "请输入图书描述,并不能少于10个字符~~"
        return jsonify(resp)

    if stock < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的库存量~~"
        return jsonify(resp)

    if tags is None or len(tags) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入标签,便于搜索~~"
        return jsonify(resp)
    book_info = Book.query.filter_by(book_id=id).first()
    before_stock = 0
    if book_info:
        model_book = book_info
        before_stock = model_book.stock
    else:
        model_book = Book()
        model_book.status = 1
        model_book.created_time = getCurrentDate()

    model_book.cat_id = cat_id
    model_book.book_title = title
    model_book.book_price = price
    model_book.book_main_image = main_image
    model_book.book_desc = desc
    model_book.book_stock = stock
    model_book.tags = tags
    model_book.updated_time = getCurrentDate()

    db.session.add(model_book)
    ret = db.session.commit()

    BookService.setStockChangeLog(model_book.id,
                                  int(stock) - int(before_stock), "后台修改")
    return jsonify(resp)
예제 #26
0
def logout():
    response = make_response(UrlManager.buildUrl("/user/login"))
    # 清空cookie内在字段
    response.delete_cookie(current_app.config['AUTH_COOKIE_NAME'])
    return response
예제 #27
0
def set():
    if request.method == 'GET':
        resp_data = {}
        req = request.args
        id = int(req.get('id', 0))
        info = Food.query.filter_by(id=id).first()
        if info and info.status != 1:
            return redirect(UrlManager.buildUrl('/food/index'))

        cat_list = FoodCat.query.all()
        resp_data['info'] = info
        resp_data['current'] = 'set'
        resp_data['cat_list'] = cat_list
        return ops_render("food/set.html", resp_data)
    elif request.method == 'POST':
        resp = {'code': 200, 'msg': '操作成功', 'data': {}}
        req = request.values
        id = int(req['id']) if ('id' in req and req['id']) else 0
        cat_id = int(req['cat_id']) if 'cat_id' in req else 0
        name = req['name'] if 'name' in req else ''
        price = req['price'] if 'price' in req else ''
        main_image = req['main_image'] if 'main_image' in req else ''
        summary = req['summary'] if 'summary' in req else ''
        stock = int(req['stock']) if 'stock' in req else ''
        tags = req['tags'] if 'tags' in req else ''
        price = Decimal(price).quantize(Decimal('0.00'))
        if cat_id < 1:
            resp['code'] = -1
            resp['msg'] = '请选择分类'
            return jsonify(resp)
        if name is None or len(name) < 1:
            resp['code'] = -1
            resp['msg'] = '请输入符合会犯的名称'
            return jsonify(resp)

        if price <= 0:
            resp['code'] = -1
            resp['msg'] = '请输入符合规范的售卖价格'
            return jsonify(resp)

        if main_image is None or len(main_image) < 3:
            resp['code'] = -1
            resp['msg'] = '请上传封面图'
            return jsonify(resp)

        if summary is None or len(summary) < 3:
            resp['code'] = -1
            resp['msg'] = "请输入图书描述,并不能少于10个字符"
            return jsonify(resp)

        if stock < 1:
            resp['code'] = -1
            resp['msg'] = '请输入符合规范的库存量'
            return jsonify(resp)

        if tags is None or len(tags) < 1:
            resp['code'] = -1
            resp['msg'] = '请输入标签,便于搜索'
            return jsonify(resp)

        food_info = Food.query.filter_by(id=id).first()
        before_stock = 0
        if food_info:
            model_food = food_info
            before_stock = model_food.stock
        else:
            model_food = Food()
            model_food.status = 1
            model_food.created_time = getCurrentDate()

        model_food.cat_id = cat_id
        model_food.name = name
        model_food.price = price
        model_food.main_image = main_image
        model_food.summary = summary
        model_food.stock = stock
        model_food.tags = tags
        model_food.updated_time = getCurrentDate()
        db.session.add(model_food)
        ret = db.session.commit()

        FoodService.setStockChangeLog(model_food.id,
                                      int(stock) - int(before_stock), "后台修改")

        # model_stock_change = FoodStockChangeLog()
        # model_stock_change.food_id = model_food.id
        # # 当前的库存减去未修改前的库存,减少的话就是负数,增加就是正数
        # model_stock_change.unit = int(stock) - int(before_stock)
        # model_stock_change.total_stock = stock
        # model_stock_change.note = ''
        # model_stock_change.created_time = getCurrentDate()
        # db.session.add(model_stock_change)
        # db.session.commit()
        return jsonify(resp)
예제 #28
0
파일: Food.py 프로젝트: ZhMingZh/Order
def set():
    if request.method == 'GET':
        resp_data = {}
        req = request.args
        ids = req.get('id', '')
        id = int(ids) if ids.isdigit() else 0
        food_info = Food.query.filter_by(id=id).first()
        if food_info and food_info.status != 1:
            return redirect(UrlManager.buildUrl('/food/index'))

        cat_list = FoodCat.query.all()
        resp_data['current'] = 'index'
        resp_data['cat_list'] = cat_list
        resp_data['food_info'] = food_info
        return ops_render('food/set.html', resp_data)

    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    id = int(req['id']) if 'id' in req and req['id'].isdigit() else 0
    cat_id = int(
        req['cat_id']) if 'cat_id' in req and req['cat_id'].isdigit() else 0
    name = req['name'] if 'name' in req else ''
    price = req['price'] if 'price' in req else 0
    main_image = req['main_image'] if 'main_image' in req else ''
    summary = req['summary'] if 'summary' in req else ''
    stock = int(
        req['stock']) if 'stock' in req and req['stock'].isdigit() else 0
    tags = req['tags'] if 'tags' in req else ''

    price = Decimal(price).quantize(Decimal('0.00'))

    if cat_id < 1:
        resp['code'] = -1
        resp['msg'] = '请选择分类'
        return jsonify(resp)

    if not name or len(name) < 1:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的名字'
        return jsonify(resp)

    if price <= 0:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的售卖价格'
        return jsonify(resp)

    if not main_image or len(main_image) < 3:
        resp['code'] = -1
        resp['msg'] = '请上传封面图'
        return jsonify(resp)

    if not summary or len(summary) < 10:
        resp['code'] = -1
        resp['msg'] = '请输入描述,并且不能少于10个字符'
        return jsonify(resp)

    if stock < 1:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的库存量'
        return jsonify(resp)

    if not tags or len(tags) < 1:
        resp['code'] = -1
        resp['msg'] = '请输入标签,便于搜索'
        return jsonify(resp)

    # has_food_name = Food.query.filter(Food.name==name).first()
    # if has_food_name:
    #     resp['code'] = -1
    #     resp['msg'] = '菜名已存在,请重新输入'
    #     return jsonify(resp)

    food_info = Food.query.filter_by(id=id).first()
    before_stock = 0

    if food_info:
        model_food = food_info
        before_stock = model_food.stock
    else:
        model_food = Food()
        model_food.created_time = getCurrentDate()

    model_food.cat_id = cat_id
    model_food.name = name
    model_food.main_image = main_image
    model_food.stock = stock
    model_food.price = price
    model_food.summary = summary
    model_food.tags = tags
    model_food.updated_time = getCurrentDate()

    db.session.add(model_food)
    db.session.commit()

    # model_stock_change = FoodStockChangeLog()
    # model_stock_change.food_id = model_food.id
    # model_stock_change.unit = model_food.stock - before_stock
    # model_stock_change.total_stock = stock
    # model_stock_change.note = ''
    # model_stock_change.created_time = getCurrentDate()
    #
    # db.session.add(model_stock_change)
    # db.session.commit()

    FoodService.setFoodStockChangeLog(model_food.id,
                                      int(stock) - int(before_stock), '后台修改')

    return jsonify(resp)
예제 #29
0
파일: Food.py 프로젝트: xiaoheng14/RapZ
def set():
    if request.method == 'GET':
        resp_data = {}
        req = request.args
        id = int(req.get('id', 0))
        info = Food.query.filter_by(id=id).first()
        if info and info.status != 1:
            return redirect(UrlManager.buildUrl("/food/index"))

        cat_list = FoodCat.query.all()
        resp_data['info'] = info
        resp_data['cat_list'] = cat_list
        resp_data['current'] = index
        return ops_render("food/set.html", resp_data)

    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    id = req['id'] if 'id' in req else 0
    cat_id = int(req['cat_id']) if 'cat_id' in req else 0
    name = req['name'] if 'name' in req else ''
    price = req['price'] if 'price' in req else ''
    main_image = req['main_image'] if 'main_image' in req else ''
    summary = req['summary'] if 'summary' in req else ''
    stock = int(req['stock']) if 'stock' in req else ''
    tags = req['tags'] if 'tags' in req else ''
    price = Decimal(price).quantize(Decimal('0.00'))

    if cat_id < 1:
        resp['code'] = -1
        resp['msg'] = '请选择分类~'
        return jsonify(resp)
    if name is None or len(name) < 1:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的名称'
        return jsonify(resp)
    if price <= 0:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的售卖价格~'
        return jsonify(resp)
    if main_image is None or len(main_image) < 3:
        resp['code'] = -1
        resp['msg'] = '请上传封面图'
        return jsonify(resp)
    if summary is None or len(summary) < 10:
        resp['code'] = -1
        resp['msg'] = '请输入图片描述,不能少于10个字符~'
        return jsonify(resp)
    if stock < 1:
        resp['code'] = -1
        resp['msg'] = '请输入符合规范的库存量'
        return jsonify(resp)
    if tags is None or len(tags) < 1:
        resp['code'] = -1
        resp['msg'] = '请输入标签,便于搜索~'
        return jsonify(resp)
    food_info = Food.query.filter_by(id=id).first()
    # 定义之前的库存变量为before_stock
    before_stock = 0
    if food_info:
        model_food = food_info
        before_stock = model_food.stock
    else:
        model_food = Food()
        model_food.status = 1
        model_food.created_time = getCurrentDate()

    model_food.cat_id = cat_id
    model_food.name = name
    model_food.price = price
    model_food.main_image = main_image
    model_food.summary = summary
    model_food.stock = stock
    model_food.tags = tags
    model_food.updated_time = getCurrentDate()

    db.session.add(model_food)
    db.session.commit()

    FoodService.setStockChangeLog(model_food.id,
                                  int(stock) - int(before_stock), '后台修改')

    return jsonify(resp)
예제 #30
0
def info():
    resp_data = {}
    req = request.args
    id = int( req.get( "id",0 ) )
    reback_url = UrlManager.buildUrl( "/member/index" )
    if id < 1:
        return redirect( reback_url )

    info = Member.query.filter_by( id =id ).first()
    if not info:
        return redirect( reback_url )

    # pay_order_list = PayOrder.query.filter_by( member_id = id ).filter( PayOrder.status.in_( [-8,1] ) )\
    #     .order_by( PayOrder.id.desc() ).all()
    comment_list = MemberComments.query.filter_by( member_id = id ).order_by( MemberComments.id.desc() ).all()
    data_comment_list=[]
    if comment_list:
        comment_lecture_ids = selectFilterObj(comment_list,"food_ids")
        comment_lecture_map = getDictFilterField(Food,Food.id,"id",comment_lecture_ids)

        for item in comment_list:
            tmp_com_lec_info = comment_lecture_map[int(item.food_ids)]
            # print("####")
            # print(comment_lecture_map)
            data_comment_list.append({
                'name':tmp_com_lec_info.name,
                'score':item.score,
                'content':item.content
                })




    #######计算学生完成讲座次数
    count=PayOrderItem.query.filter_by( member_id = id,comment_status=1 ).count()
    

    ######
    cat_mapping = getDictFilterField( FoodCat,FoodCat.id,"id",[] )
    lecture_list = PayOrderItem.query.filter_by(member_id=id,comment_status=1).all()
    data_lecture_list=[]
    if lecture_list:
        lecture_ids = selectFilterObj(lecture_list,"food_id")
        lecture_map = getDictFilterField(Food,Food.id,"id",lecture_ids)
        # lecture_info = {}
        for item in lecture_list:
            tmp_lec_info = lecture_map[item.food_id]
            data_lecture_list.append({
                'name':tmp_lec_info.name,
                'category':tmp_lec_info.cat_id,
                'speaker':item.speaker,
                'lecture_time':item.lecture_time
                })



    resp_data['cat_mapping'] = cat_mapping
    resp_data['count']=count
    resp_data['info'] = info
    resp_data['data_lecture_list'] = data_lecture_list
    resp_data['comment_list'] = data_comment_list
    resp_data['current'] = 'index'
    return ops_render( "member/info.html",resp_data )