Пример #1
0
def get_paginate_by_status(status):
    member = get_current_member()
    start, count = paginate()
    res = Order.get_paginate(member.id, start, count, status, throw=True)
    for order in res['models']:
        order.hide('snap_address', 'snap_products')
    return jsonify(res)
Пример #2
0
def get_admin_users():
    start, count = paginate()
    group_id = request.args.get('group_id')
    condition = {
        'admin': UserAdmin.COMMON.value,
        'group_id': group_id
    } if group_id else {
        'admin': UserAdmin.COMMON.value
    }

    users = db.session.query(
        manager.user_model,
        manager.group_model.name).filter_by(soft=True, **condition).join(
            manager.group_model, manager.user_model.group_id ==
            manager.group_model.id).offset(start).limit(count).all()

    user_and_group = []
    for user, group_name in users:
        setattr(user, 'group_name', group_name)
        user._fields.append('group_name')
        user.hide('update_time')
        user_and_group.append(user)
        # 有分组的时候就加入分组条件
        # total_nums = get_total_nums(manager.user_model, is_soft=True, admin=UserAdmin.COMMON.value)
    total = get_total_nums(manager.user_model, is_soft=True, **condition)
    total_page = math.ceil(total / count)
    page = get_page_from_query()
    return json_res(count=count,
                    items=user_and_group,
                    page=page,
                    total=total,
                    total_page=total_page)
Пример #3
0
def get_all_file():
    # 1 img ,2 txt,3 audio,4 video
    form = GetGroupFile().validate_for_api()
    folder_id = int(form.folder_id.data)
    isDelete = int(form.isDelete.data)
    current_path = current_app.static_url_path
    site_domain = current_app.config.get('SITE_DOMAIN') \
        if current_app.config.get('SITE_DOMAIN') else 'http://127.0.0.1:2100'
    join_path = site_domain + current_path
    start, count = paginate()
    FileManage = FileMap[form.type.data]
    total = get_total_nums(FileManage, True)
    if (isDelete):
        FileObj = FileManage.query.filter(
            db.and_(FileManage.folder_id == folder_id, FileManage.delete_time
                    != None) if folder_id else FileManage.delete_time != None)
        paths = FileObj.order_by(
            db.desc('create_time')).offset(start).limit(count).all()
        total = get_total_nums(FileManage) - total
    else:
        FileObj = FileManage.query.filter(
            db.and_(FileManage.folder_id == folder_id, FileManage.delete_time
                    == None) if folder_id else FileManage.delete_time == None)
        paths = FileObj.order_by(
            db.desc('create_time')).offset(start).limit(count).all()
    for x in paths:
        x.path = x.path if re.search(r'http', x.path) else join_path + x.path

    total_page = math.ceil(total / count)
    page = get_page_from_query()
    return json_res(count=count,
                    items=paths,
                    page=page,
                    total=total,
                    total_page=total_page)
Пример #4
0
def get_admin_groups():
    start, count = paginate()
    groups = manager.group_model.query.filter().offset(start).limit(
        count).all()
    if groups is None:
        raise NotFound(msg='不存在任何权限组')

    for group in groups:
        auths = db.session.query(manager.auth_model.auth,
                                 manager.auth_model.module).filter_by(
                                     soft=False, group_id=group.id).all()

        auths = [{'auth': auth[0], 'module': auth[1]} for auth in auths]
        res = _split_modules(auths)
        setattr(group, 'auths', res)
        group._fields.append('auths')

    total = get_total_nums(manager.group_model)
    total_page = math.ceil(total / count)
    page = get_page_from_query()

    return json_res(count=count,
                    items=groups,
                    page=page,
                    total=total,
                    total_page=total_page)
Пример #5
0
def get_admin_users():
    start, count = paginate()
    group_id = request.args.get('group_id')
    condition = {
        'admin': UserAdmin.COMMON.value,
        'group_id': group_id
    } if group_id else {
        'admin': UserAdmin.COMMON.value
    }

    users = db.session.query(
        manager.user_model,
        manager.group_model.name).filter_by(soft=True, **condition).join(
            manager.group_model, manager.user_model.group_id ==
            manager.group_model.id).offset(start).limit(count).all()

    user_and_group = []
    for user, group_name in users:
        setattr(user, 'group_name', group_name)
        user._fields.append('group_name')
        user.hide('update_time', 'delete_time')
        user_and_group.append(user)
    # 有分组的时候就加入分组条件
    # total_nums = get_total_nums(manager.user_model, is_soft=True, admin=UserAdmin.COMMON.value)
    total_nums = get_total_nums(manager.user_model, is_soft=True, **condition)
    return jsonify({"collection": user_and_group, 'total_nums': total_nums})
Пример #6
0
def search_info():
    form = HistoryInfoForm().validate_for_api()
    keyword = request.args.get('keyword', default=None, type=str)
    if keyword is None or '':
        raise ParameterException(msg='搜索关键字不可为空')
    start, count = paginate()
    # logs = Log.query.filter(Log.message.like(f'%{keyword}%'))
    # res = OpenVPNLogInfo.query.filter(OpenVPNLogInfo.common_name.like((f'%{keyword}%')))
    res = OpenVPNLogInfo.query.filter(
        OpenVPNLogInfo.remote_ip.like(f"%{keyword}%"))
    if form.username.data:
        res = OpenVPNLogInfo.query.filter(
            OpenVPNLogInfo.common_name == form.username.data)
    if form.start.data and form.end.data:
        res = res.filter(
            OpenVPNLogInfo.starting_time.between(form.start.data,
                                                 form.end.data))
    total = res.count()
    res = res.order_by(
        text('starting_time desc')).offset(start).limit(count).all()
    total_page = math.ceil(total / count)
    page = get_page_from_query()
    if not res:
        res = []
    return json_res(page=page,
                    count=count,
                    total=total,
                    items=res,
                    total_page=total_page)
Пример #7
0
def get_users():
    start, count = paginate()
    users = OpenVPNUser.get_all(start, count)
    total = OpenVPNUser.get_total_nums()
    total_page = math.ceil(total / count)
    page = get_page_from_query()
    return json_res(count=count, page=page, total=total, total_page=total_page, items=users)
Пример #8
0
def get_info():
    start, count = paginate()
    info = OpenVPNLogInfo.get_all(start, count)
    total = OpenVPNLogInfo.get_total_nums()
    total_page = math.ceil(total / count)
    page = get_page_from_query()
    return json_res(count=count, page=page, total=total, total_page=total_page, items=info)
Пример #9
0
def get_paginate_by_theme(tid):
    start, count = paginate()
    q = request.args.get('q', None)
    res = Product.get_paginate_models(start, count, q, tid=tid, throw=True)
    for model in res['models']:
        model.hide('img_id', 'delete_time', 'category_id')
    return jsonify(res)
Пример #10
0
def get_episodes():
    start, count = paginate()
    q = request.args.get('q', None)
    episodes = Episode.get_paginate_models_with_img(start,
                                                    count,
                                                    q,
                                                    err_msg='相关句子不存在')
    return jsonify(episodes)
Пример #11
0
def get_paginate():
    start, count = paginate()
    q = request.args.get('q', None)
    models = MemberAddress.get_paginate_with_member(start,
                                                    count,
                                                    q,
                                                    throw=True)
    return models
Пример #12
0
def get_movies():
    start, count = paginate()
    q = request.args.get('q', None)
    movies = Movie.get_paginate_models_with_img(start,
                                                count,
                                                q,
                                                err_msg='相关电影不存在')
    return jsonify(movies)
Пример #13
0
def get_paginate():
    form = BannerItemType().validate_for_api()
    content_type = int(form.type.data)
    start, count = paginate()
    q = request.args.get('q', None)
    res = BannerItem.get_paginate_models(start, count, q, content_type, soft=False, throw=True)
    for model in res['models']:
        model._fields = ['image', 'banner', 'type_desc', 'content', 'id', 'delete_time']
    return jsonify(res)
Пример #14
0
def get_like_products():
    member = get_current_member()
    start, count = paginate()
    res = Like.get_like_products(member.id, start, count, throw=True)
    for model in res['models']:
        model._fields = [
            'id', 'name', 'old_price_str', 'price_str', 'summary', 'image'
        ]
    return jsonify(res)
Пример #15
0
def get_products_by_theme(tid):
    start, count = paginate()
    q = request.args.get('q', None)
    res = Product.get_paginate_models(start,
                                      count,
                                      q,
                                      tid=tid,
                                      soft=False,
                                      throw=True)
    products_with_themes(res['models'])
    return jsonify(res)
Пример #16
0
def get_comments():
    start, count = paginate()
    q = request.args.get('q', None)
    classic_type = int(request.args.get('type', None))
    if classic_type:
        validate_classic_type(classic_type)
    comments = Comment.get_paginate_models(start,
                                           count,
                                           classic_type,
                                           q,
                                           err_msg='相关评论不存在')
    return jsonify(comments)
Пример #17
0
def get_admin_groups():
    start, count = paginate()
    groups = manager.group_model.query.filter().offset(start).limit(
        count).all()
    if groups is None:
        raise NotFound(msg='不存在任何权限组')

    for group in groups:
        auths = db.session.query(manager.auth_model.auth,
                                 manager.auth_model.module).filter_by(
                                     soft=False, group_id=group.id).all()

        auths = [{'auth': auth[0], 'module': auth[1]} for auth in auths]
        res = _split_modules(auths)
        setattr(group, 'auths', res)
        group._fields.append('auths')

    total_nums = get_total_nums(manager.group_model)

    return jsonify({"collection": groups, 'total_nums': total_nums})
Пример #18
0
def get_paginate():
    form = DatetimeSection().validate_for_api()
    date_start = form.date_start.data
    date_end = form.date_end.data
    start, count = paginate()
    q = request.args.get('q', None)
    order_status = request.args.get('order_status', None)
    res = Order.get_paginate_with_member(start,
                                         count,
                                         q,
                                         order_status,
                                         date_start,
                                         date_end,
                                         throw=True)
    for model in res['models']:
        model._fields = [
            'member_id', 'member_name', 'member_avatarurl', 'id', 'order_no',
            'total_price_str', 'total_count', 'order_status_desc',
            'pay_time_format', 'create_time_str'
        ]
    return jsonify(res)
Пример #19
0
def get_books():
    start, count = paginate()
    q = request.args.get('q', '')
    books = Book.get_books(q, start, count)
    return jsonify(books)
Пример #20
0
def get_paginate():
    start, count = paginate()
    q = request.args.get('q', None)
    models = Member.get_paginate_models(start, count, q, throw=True)
    return models
Пример #21
0
def get_musics():
    start, count = paginate()
    q = request.args.get('q', None)
    musics = Music.get_paginate_models_with_img_voice(start, count, q, err_msg='相关音乐不存在')
    return jsonify(musics)
Пример #22
0
def get_members():
    start, count = paginate()
    q = request.args.get('q', None)
    members = Member.get_paginate_models(start, count, q, err_msg='相关会员不存在')
    return jsonify(members)
Пример #23
0
def get_classics():
    start, count = paginate()
    classics = Classic.get_paginate_models(start, count)
    return jsonify(classics)
Пример #24
0
def get_paginate():
    start, count = paginate()
    q = request.args.get('q', None)
    models = Category.get_pagiante(start, count, q, soft=False, throw=True)
    return jsonify(models)
Пример #25
0
def get_paginate():
    start, count = paginate()
    q = request.args.get('q', None)
    res = Banner.get_paginate_models(start, count, q, soft=False, throw=True)
    return jsonify(res)