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)
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)
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)
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)
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})
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)
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)
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)
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)
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)
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
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)
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)
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)
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)
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)
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})
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)
def get_books(): start, count = paginate() q = request.args.get('q', '') books = Book.get_books(q, start, count) return jsonify(books)
def get_paginate(): start, count = paginate() q = request.args.get('q', None) models = Member.get_paginate_models(start, count, q, throw=True) return models
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)
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)
def get_classics(): start, count = paginate() classics = Classic.get_paginate_models(start, count) return jsonify(classics)
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)
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)