Esempio n. 1
0
  Created by Allen7D on 2020/6/15.
  ↓↓↓ 操作日志接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import oper_log as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate, time_interval
from app.core.db import db
from app.models.oper_log import OperLog
from app.dao.oper_log import OperLogDao
from app.libs.error_code import Success
from app.validators.forms import LogSearchValidator

__author__ = 'Allen7D'

api = Redprint(name='log/oper', module='操作日志管理', api_doc=api_doc, alias='cms_oper_log')


@api.route('/list/search', methods=['GET'])
@api.route_meta(auth='搜索操作日志', module='操作日志')
@api.doc(args=['g.query.page', 'g.query.size', 'g.query.start', 'g.query.end',
               'g.query.username', '*str.query.keyword'], auth=True)
@auth.group_required
def get_log_list_by_search():
    '''搜索操作日志(按人员&时间&内容)'''
    page, size = paginate()
    start, end = time_interval()
    user_name, keyword = LogSearchValidator().get_data('username', 'keyword')
    paginator = OperLogDao.get_log_list_by_search(page, size, start, end, user_name, keyword)
    return Success({
        'total': paginator.total,
Esempio n. 2
0
  ↓↓↓ 文章管理接口 ↓↓↓
"""
from flask import g

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import article as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.article import Article
from app.dao.article import ArticleDao
from app.libs.error_code import Success
from app.validators.article import ArticleValidator, ArticleTypeValidator

__author__ = 'Allen7D'

api = Redprint(name='article', module='文章管理', api_doc=api_doc, alias='cms_article')


@api.route('/list', methods=['GET'])
@api.doc(args=['query.type', 'g.query.page', 'g.query.size'])
def get_article_list():
    '''查询文章列表'''
    type = ArticleTypeValidator().get_data('type')
    page, size = paginate()
    articles = ArticleDao.get_article_list(type, page, size)
    return Success(articles)


@api.route('/latest', methods=['GET'])
@api.doc(args=['query.type', 'g.query.page', 'g.query.size'])
def get_latest_article_list():
Esempio n. 3
0
  Created by Allen7D on 2019/6/27.
  ↓↓↓ 管理员接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.core.token_auth import auth
from app.core.utils import paginate
from app.core.logger import Logger
from app.models.user import User
from app.dao.user import UserDao
from app.libs.enums import OperTyepEnum
from app.libs.error_code import Success
from app.validators.forms import ResetPasswordValidator, UpdateAdminValidator

__author__ = 'Allen7D'

api = Redprint(name='user', module='用户管理', api_doc=None, alias='cms_user')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询用户列表', module='用户')
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
@auth.group_required
def get_user_list():
    '''查询用户列表(分页)'''
    page, size = paginate()
    rv = UserDao.get_user_list(page, size)
    return Success(rv)


@api.route('/<int:uid>', methods=['GET'])
@api.route_meta(auth='查询用户详情', module='用户')
Esempio n. 4
0
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import file as api_doc
from app.extensions.file.local_uploader import LocalUploader
from app.extensions.file.qiniu_uploader import QiniuUploader
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.file import File
from app.dao.file import FileDao
from app.service.file import FileService
from app.libs.error_code import Success
from app.validators.forms import UploadFileValidator, FileParentIDValidator, IDCollectionValidator, \
    CreateFileValidator, UpdateFileValidator, MoveOrCopyFileValidator

__author__ = 'Allen7D'

api = Redprint(name='file', module='文件管理', api_doc=api_doc, alias='cms_file')


@api.route('/types', methods=['GET'])
@api.doc()
def get_file_types():
    '''支持的文件类型'''
    types = list(current_app.config['FILE']['INCLUDE'])
    return Success({
        'items': types
    })


@api.route('/<id>', methods=['POST'])
@api.route_meta(auth='上传文件', module='文件')
@api.doc(args=['g.path.parent_id'], auth=True)
Esempio n. 5
0
"""
from flask import g

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import notice as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.notice import Notice
from app.dao.notice import NoticeDao
from app.libs.error_code import Success
from app.validators.forms import CreateNoticeValidator, UpdateNoticeValidator, IDCollectionValidator

__author__ = 'Allen7D'

api = Redprint(name='notice',
               module='通知(公告)',
               api_doc=api_doc,
               alias='cms_notice')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询通知列表', module='通知(公告)')
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
@auth.group_required
def get_notice_list():
    '''查询通知列表'''
    page, size = paginate()
    paginator = Notice.query.filter_by().paginate(page=page,
                                                  per_page=size,
                                                  error_out=True)
    return Success({
        'total': paginator.total,
Esempio n. 6
0
"""
  Created by Mohan on 2020/5.
  ↓↓↓ 权限组路由管理接口 ↓↓↓
"""
from flask import request

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import menu as api_doc
from app.core.token_auth import auth
from app.libs.error_code import Success
from app.dao.menu import MenuDao
from app.validators.forms import MenuGroupIdValidator

__author__ = 'Mohan'

api = Redprint(name='menu', module='菜单管理', api_doc=api_doc, alias='cms_menu')


@api.route('', methods=['GET'])
@api.doc(args=['query.group_id'], auth=True)
@auth.admin_required
def get_routes():
    """根据权限组ID, 获取菜单"""
    gid = MenuGroupIdValidator().group_id.data
    return Success(MenuDao.get_routes(gid))


@api.route('', methods=['PUT'])
@api.doc(args=['body.routes', 'body.group_id'], auth=True)
@auth.admin_required
def delete_route():
Esempio n. 7
0
from flask import request

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import admin as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.dao.admin import AdminDao
from app.models.user import User
from app.dao.user import UserDao
from app.libs.error_code import Success
from app.validators.forms import ResetPasswordValidator, CreateAdminValidator

__author__ = 'Allen7D'

api = Redprint(name='admin',
               module='管理员管理',
               api_doc=api_doc,
               alias='cms_admin')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询管理员列表', module='管理员', mount=False)
@api.doc(args=['g.query.page', 'g.query.size', 'query.group_id'], auth=True)
@auth.admin_required
def get_admin_list():
    '''查询管理员列表'''
    page, size = paginate()
    group_id = int(request.args.get('group_id'))  # 可选
    rv = AdminDao.get_admin_list(group_id=group_id, page=page, size=size)
    return Success(rv)

Esempio n. 8
0
  ↓↓↓ 页面元素管理接口 ↓↓↓
"""
from app.core.error import Success
from app.extensions.api_docs.cms import element as api_doc
from app.extensions.api_docs.redprint import Redprint
from app.dao.element import ElementDao
from app.models.element import Element
from app.core.utils import paginate
from app.validators.element import ElementValidator, Group2ElementValidator, RouteIdValidator
from app.validators.forms import IDCollectionValidator, GroupIdValidator
from app.core.token_auth import auth

__author__ = 'Chai'

api = Redprint(name='element',
               module='页面元素管理',
               api_doc=api_doc,
               alias='cms_element')


@api.route('', methods=['POST'])
@api.route_meta(auth='新增页面元素', module='页面元素', mount=False)
@api.doc(args=['body.name', 'body.sign', 'body.route_id'], auth=True)
@auth.admin_required
def create_element():
    '''新增页面元素'''
    form = ElementValidator().dt_data
    ElementDao.create_element(form)
    return Success(error_code=1)


@api.route('/deploy', methods=['PUT'])
Esempio n. 9
0
"""
from flask import g

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import order as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.service.order import OrderService
from app.models.order import Order
from app.dao.order import OrderDao
from app.libs.error_code import Success
from app.validators.forms import OrderPlaceValidator, OrderIDValidator

__author__ = 'Allen7D'

api = Redprint(name='order', module='订单', api_doc=api_doc)


@api.route('', methods=['POST'])
@api.doc(auth=True)
@auth.login_required
def place_order():
    '''提交订单'''
    products = OrderPlaceValidator().validate_for_api().products.data
    status = OrderService().palce(uid=g.user.id, o_products=products)
    return Success(status)


@api.route('', methods=['GET'])
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
@auth.login_required
Esempio n. 10
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2020/6/16.
  ↓↓↓ 服务监控接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import server as api_doc
from app.core.token_auth import auth
from app.libs.server import Server
from app.libs.error_code import Success

__author__ = 'Allen7D'

api = Redprint(name='server',
               module='服务监控',
               api_doc=api_doc,
               alias='cms_server')


@api.route('', methods=['GET'])
@api.route_meta(auth='查询服务器信息', module='服务监控')
@api.doc(auth=True)
# @auth.group_required
def get_server_info():
    '''查询服务器信息'''
    server = Server()
    return Success({
        'system': server.system,  # 系统
        'cpu': server.cpu,  # CPU
        'memory': server.memory,  # 内存
        'disk': server.disk,  # 硬盘
Esempio n. 11
0
"""
  Created by Allen7D on 2020/6/30.
  ↓↓↓ Banner接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import banner as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.banner import Banner
from app.dao.banner import BannerDao
from app.libs.error_code import Success, BannerException

__author__ = 'Allen7D'

api = Redprint(name='banner',
               module='轮播图管理',
               api_doc=api_doc,
               alias='cms_banner')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询轮播图列表', module='轮播图')
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
@auth.group_required
def get_banner_list():
    '''查询订单列表'''
    page, size = paginate()
    banner_list = BannerDao.get_list(page=page, size=size)
    return Success(banner_list)


@api.route('/<int:id>', methods=['GET'])
Esempio n. 12
0
# from flask import Flask
# app = Flask(__name__)
# @app.route('/')
# def hello_world():
#     return 'Hello World!'

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import pay as api_doc

api = Redprint(name='hello', module='测试示例', api_doc=api_doc)


@api.route('/all', methods=['GET'])
@api.doc(auth=True)  #  可以显示接口调用和测试
# @auth.login_required
def get_pre_order():
    '''查询预订单'''
    # order_id = IDMustBePositiveIntValidator().nt_data.id
    # pay_service = PayService(order_id)
    # pay_service.pay()
    # Success()
    return 'Hello World!'
Esempio n. 13
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2018/6/16.
  ↓↓↓ Banner接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import banner as api_doc
from app.models.banner import Banner
from app.libs.error_code import Success, BannerException

__author__ = 'Allen7D'

api = Redprint(name='banner', module='首页轮播图', api_doc=api_doc)


@api.route('/<int:id>', methods=['GET'])
@api.doc(args=['g.path.banner_id'])
def get_banner(id):
    '''查询首页轮播图'''
    banner = Banner.query.filter_by(id=id).first_or_404(e=BannerException)
    return Success(banner)
Esempio n. 14
0
  Created by Allen7D on 2020/6/28.
  ↓↓↓ 异常日志接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import login_log as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate, time_interval
from app.core.db import db
from app.models.error_log import ErrorLog
from app.libs.error_code import Success
from app.validators.forms import IDCollectionValidator

__author__ = 'Allen7D'

api = Redprint(name='log/error',
               module='异常日志管理',
               api_doc=api_doc,
               alias='cms_error_log')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询异常日志列表', module='异常日志')
@api.doc(args=['g.query.page', 'g.query.size', 'g.query.start', 'g.query.end'],
         auth=True)
@auth.group_required
def get_log_list():
    '''查询异常日志列表'''
    page, size = paginate()
    start, end = time_interval()
    return Success()

Esempio n. 15
0
  Created by Allen7D on 2020/6/15.
  ↓↓↓ 登录日志接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import login_log as api_doc
from app.core.db import db
from app.core.token_auth import auth
from app.core.utils import paginate, time_interval
from app.models.login_log import LoginLog
from app.dao.login_log import LoginLogDao
from app.libs.error_code import Success

__author__ = 'Allen7D'

api = Redprint(name='log/login',
               module='登录日志管理',
               api_doc=api_doc,
               alias='cms_login_log')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询登录日志列表', module='登录日志')
@api.doc(args=['g.query.page', 'g.query.size', 'g.query.start', 'g.query.end'],
         auth=True)
@auth.group_required
def get_log_list():
    '''查询登录日志列表'''
    page, size = paginate()
    start, end = time_interval()
    paginator = LoginLogDao.get_log_list(page, size, start, end)
    return Success({
        'total': paginator.total,
Esempio n. 16
0
"""
  Created by Allen7D on 2018/6/17.
  ↓↓↓ 主题接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import theme as api_doc
from app.core.token_auth import auth
from app.core.utils import get_request_args, paginate
from app.models.theme import Theme
from app.dao.theme import ThemeDao
from app.libs.error_code import Success
from app.validators.forms import IDCollectionValidator

__author__ = 'Allen7D'

api = Redprint(name='theme', module='主题', api_doc=api_doc)


@api.route('', methods=['GET'])
@api.doc(args=['theme_ids'])
def get_simple_list():
    '''基于一组id的主题
    只查询存在的id,不存在的则不返回结果
    :arg /theme?ids=id1,id2,id3,...
    :return: 一组theme模型
    '''
    ids = IDCollectionValidator().validate_for_api().ids.data
    themes = Theme.query.filter(Theme.id.in_(ids)).all()
    return Success({'items': themes})

Esempio n. 17
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2020/6/11.
  ↓↓↓ 字典管理接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import dict as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.dict import Dict
from app.libs.error_code import Success
from app.validators.forms import DictTypeValidator, UpdateDictValidator, CreateDictValidator

__author__ = 'Allen7D'

api = Redprint(name='dict', module='字典数据', api_doc=api_doc, alias='cms_dict')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询字典数据列表', module='字典数据')
@api.doc(args=['g.query.page', 'g.query.size', 'query.type'], auth=True)
@auth.group_required
def get_dict_list():
    '''查询字典数据列表'''
    page, size = paginate()
    type = DictTypeValidator().get_data('type')
    paginator = Dict.query.filter_by(type=type).paginate(page=page,
                                                         per_page=size,
                                                         error_out=True)
    return Success({
        'total': paginator.total,
Esempio n. 18
0
"""
  Created by Allen7D on 2018/6/17.
  ↓↓↓ 产品接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import product as api_doc
from app.core.token_auth import auth
from app.models.product import Product
from app.dao.product import ProductDao
from app.libs.error_code import Success
from app.core.utils import paginate
from app.validators.forms import CountValidator, CategoryIDValidator, ReorderValidator

__author__ = 'Allen7D'

api = Redprint(name='product', module='产品', api_doc=api_doc)


@api.route('/recent', methods=['GET'])
@api.doc(args=['count'])
def get_recent():
    '''最新的商品'''
    count = CountValidator().validate_for_api().count.data
    rv = ProductDao.get_most_recent(count=count)
    return Success(rv)


@api.route('/all/by_category', methods=['GET'])
@api.doc(args=['g.query.category_id'])
def get_all_by_category():
    '''查询类别下所有商品'''
Esempio n. 19
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2020/6/30.
  ↓↓↓ BannerItem接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import banner_item as api_doc
from app.core.token_auth import auth
from app.models.banner_item import BannerItem
from app.libs.error_code import Success, BannerException

__author__ = 'Allen7D'

api = Redprint(name='banner_item',
               module='轮播子图管理',
               api_doc=api_doc,
               alias='cms_banner_item')


@api.route('/<int:id>', methods=['GET'])
@api.doc(args=['g.path.banner_item_id'])
def get_banner_item(id):
    '''查询轮播子图'''
    banner_item = BannerItem.query.filter_by(id=id).first_or_404(
        e=BannerException)
    return Success(banner_item)


@api.route('', methods=['POST'])
@api.route_meta(auth='新建轮播子图', module='轮播子图')
@api.doc(args=[], auth=True)
Esempio n. 20
0
"""
  Created by Allen7D on 2020/5/18.
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import order as api_doc
from app.core.token_auth import auth
from app.core.utils import get_request_args, paginate
from app.models.order import Order
from app.dao.order import OrderDao
from app.service.order import OrderService
from app.libs.error_code import Success
from app.validators.forms import TimeIntervalValidator, OrderIDValidator

__author__ = 'Allen7D'

api = Redprint(name='order', module='订单管理', api_doc=api_doc, alias='cms_order')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询订单列表', module='订单')
@api.doc(args=['g.query.page', 'g.query.size', 'g.query.start', 'g.query.end'], auth=True)
@auth.group_required
def get_order_list():
    '''查询订单列表'''
    page, size = paginate()
    time_validator = TimeIntervalValidator().nt_data
    paged_orders = OrderDao.get_summary(page=page,
                                        size=size,
                                        start=time_validator.start,
                                        end=time_validator.end)
    return Success(paged_orders)
Esempio n. 21
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2018/6/13.
  ↓↓↓ Token接口 ↓↓↓
"""
from flask import current_app

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import token as api_doc
from app.service.login_verify import LoginVerifyService
from app.libs.error_code import Success
from app.validators.forms import ClientValidator, TokenValidator

__author__ = 'Allen7D'

api = Redprint(name='token', module='令牌', api_doc=api_doc)


@api.route('', methods=['POST'])
@api.doc(args=['g.body.account', 'g.body.secret', 'g.body.type'],
         body_desc='''登录的基本信息: 账号、密码、登录类型:
                                                           - 用户名登录(type:100)
                                                           - 邮箱账号登录(type:101)
                                                           - 手机账号登录(type:102)
                                                           - 小程序登录(type:200)
                                                           - 微信扫码登录(type:201)'''
         )
def get_token():
    '''生成「令牌」(5种登录方式)'''
    form = ClientValidator().nt_data
    token = LoginVerifyService.get_token(account=form.account,
Esempio n. 22
0
  ↓↓↓ 权限组管理接口 ↓↓↓
"""

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import group as api_doc
from app.core.token_auth import auth
from app.core.utils import get_request_args
from app.models.group import Group
from app.dao.group import GroupDao
from app.libs.error_code import Success
from app.validators.forms import UpdateGroupValidator, MigrateUserValidator

__author__ = 'Allen7D'

api = Redprint(name='group',
               module='权限组管理',
               api_doc=api_doc,
               alias='cms_group')


@api.route('/all', methods=['GET'])
@api.route_meta(auth='查询所有权限组', module='管理员', mount=False)
@api.doc(auth=True)
@auth.admin_required
def get_all_group():
    '''查询所有权限组'''
    group_list = Group.get_all()
    return Success({'items': group_list})


@api.route('/<int:id>', methods=['GET'])
@api.doc(args=['g.path.group_id'], auth=True)
Esempio n. 23
0
"""
  Created by Allen7D on 2020/6/11.
  ↓↓↓ 字典管理接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import dict_type as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.dict_type import DictType
from app.libs.error_code import Success
from app.validators.forms import UpdateDictTypeValidator, CreateDictTypeValidator

__author__ = 'Allen7D'

api = Redprint(name='dict/type',
               module='字典类型',
               api_doc=api_doc,
               alias='cms_dict_type')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询字典类型列表', module='字典类型')
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
@auth.group_required
def get_dict_type_list():
    '''查询字典类型列表'''
    page, size = paginate()
    paginator = DictType.query.filter_by().paginate(page=page,
                                                    per_page=size,
                                                    error_out=True)
    return Success({
        'total': paginator.total,
Esempio n. 24
0
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import user as api_doc
from app.core.token_auth import auth
from app.core.utils import get_request_args
from app.models.user import User
from app.dao.user import UserDao
from app.dao.auth import AuthDao
from app.dao.identity import IdentityDao
from app.libs.error_code import Success
from app.validators.forms import ChangePasswordValidator, \
    CreateUserValidator, UpdateUserValidator, UpdateAvatarValidator

__author__ = 'Allen7D'

api = Redprint(name='user', module='用户', api_doc=api_doc)


@api.route('', methods=['GET'])
@api.doc(auth=True)
@auth.login_required
def get_user():
    '''查询自身'''
    user = User.get(id=g.user.id)
    return Success(user)


@api.route('', methods=['POST'])
@api.doc(args=[
    'g.body.username', 'g.body.email', 'g.body.mobile', 'g.body.nickname',
    'g.body.password', 'g.body.confirm_password'
Esempio n. 25
0
"""
  Created by Allen7D on 2020/6/11.
  ↓↓↓ 参数配置接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import config as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.config import Config
from app.libs.error_code import Success
from app.validators.forms import CreateConfigValidator, UpdateConfigValidator, UpdateConfigValueValidator

__author__ = 'Allen7D'

api = Redprint(name='config',
               module='参数配置管理',
               api_doc=api_doc,
               alias='cms_config')


@api.route('/list', methods=['GET'])
@api.route_meta(auth='查询参数配置列表', module='参数')
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
def get_config_list():
    '''查询参数配置列表'''
    page, size = paginate()
    paginator = Config.query.filter_by().paginate(page=page,
                                                  per_page=size,
                                                  error_out=True)
    return Success({
        'total': paginator.total,
        'current_page': paginator.page,
Esempio n. 26
0
"""
  Created by Allen7D on 2020/3/24.
  ↓↓↓ 权限管理接口 ↓↓↓
"""
from flask import request

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import auth as api_doc
from app.core.token_auth import auth
from app.dao.auth import AuthDao
from app.libs.error_code import Success
from app.validators.forms import AuthsValidator

__author__ = 'Allen7D'

api = Redprint(name='auth', module='权限管理', api_doc=api_doc, alias='cms_auth')


@api.route('/all', methods=['GET'])
@api.route_meta(auth='查询所有可分配的权限', module='管理员', mount=False)
@api.doc(auth=True)
@auth.admin_required
def get_auths():
    '''查询所有可分配的权限'''
    auths = AuthDao.get_auths()
    return Success(auths)


@api.route('/by_group', methods=['GET'])
@api.route_meta(auth='查询权限组的所有权限', module='管理员', mount=False)
@api.doc(args=['g.query.group_id'], auth=True)
Esempio n. 27
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2018/6/17.
  ↓↓↓ 类别接口 ↓↓↓
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import category as api_doc
from app.core.token_auth import auth
from app.core.utils import paginate
from app.models.category import Category
from app.libs.error_code import Success

__author__ = 'Allen7D'

api = Redprint(name='category', module='产品类别', api_doc=api_doc)


@api.route('/all', methods=['GET'])
@api.doc()
def get_all_category():
    '''查询所有「产品类别」'''
    category_list = Category.query.all()
    return Success(category_list)


@api.route('/list', methods=['GET'])
@api.doc(args=['g.query.page', 'g.query.size'], auth=True)
def get_category_list():
    '''查询「产品类别」列表'''
    page, size = paginate()
Esempio n. 28
0
  ↓↓↓ 文件上传下载接口 ↓↓↓
  可以用来处理上传产品图片、Excel等
"""
from flask import request

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.cms import route as api_doc
from app.core.token_auth import auth
from app.libs.error_code import Success
from app.dao.route import RouteDao
from app.models.route import Route
from app.validators.forms import RouteNodeValidator, RouteNodeWithoutIdValidator

__author__ = 'Mohan'

api = Redprint(name='route', module='路由管理', api_doc=api_doc, alias='cms_route')


@api.route('/tree', methods=['GET'])
@api.doc(auth=True)
@auth.admin_required
def get_all_route_tree():
    """获取所有路由结构"""
    route_root = RouteDao.get_all_route_tree()
    route_tree = route_root['children']
    return Success(route_tree)


@api.route('/tree/with_element', methods=['GET'])
@api.doc(auth=True)
@auth.admin_required
Esempio n. 29
0
  Created by Allen7D on 2018/6/25.
  ↓↓↓ 配送信息接口 ↓↓↓
"""
from flask import g

from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import address as api_doc
from app.core.token_auth import auth
from app.models.address import Address
from app.dao.address import AddressDao
from app.libs.error_code import Success
from app.validators.forms import CreateOrUpdateAddressValidator

__author__ = 'Allen7D'

api = Redprint(name='address', module='配送信息', api_doc=api_doc)


@api.route('/all', methods=['GET'])
@api.doc(auth=True)
@auth.login_required
def get_all_address():
    '''查询所有「配送信息」'''
    address_list = Address.query.filter_by(user_id=g.user.id).all_by_wrap()
    return Success(address_list)


@api.route('/<int:id>', methods=['GET'])
@api.doc(args=['g.path.address_id'], auth=True)
@auth.login_required
def get_address(id):
Esempio n. 30
0
# _*_ coding: utf-8 _*_
"""
  Created by Allen7D on 2019/4/4.
  ↓↓↓ 支付接口 ↓↓↓
  「pay接口」只能用户访问,CMS管理员不能访问
"""
from app.extensions.api_docs.redprint import Redprint
from app.extensions.api_docs.v1 import pay as api_doc
from app.core.token_auth import auth
from app.service.pay import PayService
from app.libs.error_code import Success
from app.validators.forms import IDMustBePositiveIntValidator

__author__ = 'Allen7D'

api = Redprint(name='pay', module='支付', api_doc=api_doc)


@api.route('/pre_order', methods=['POST'])
@api.doc(auth=True)
@auth.login_required
def get_pre_order():
    '''查询预订单'''
    order_id = IDMustBePositiveIntValidator().nt_data.id
    pay_service = PayService(order_id)
    pay_service.pay()
    Success()


@api.route('/notify', methods=['POST'])
@api.doc(auth=True)