Procházet zdrojové kódy

增加调用定时任务接口,增加服务管理接口

zhangnaiwen před 2 roky
rodič
revize
6c9bac0b2d

+ 4 - 0
config/config.yml

@@ -13,6 +13,10 @@ RabbitMq:
   PASSWORD: aaaaaa  # 密码
   PASSWORD: aaaaaa  # 密码
   QUEUE: message # 队列
   QUEUE: message # 队列
 
 
+system_monitoring:
+  HOST: 121.43.55.7 # ip地址
+  POST: 2024 # 端口
+
 #redis:
 #redis:
 #  # redis配置
 #  # redis配置
 #  HOST: 192.168.2.35 # 使用容器运行服务时,该HOST信息无用,容器内部会自动获取redis容器的ip
 #  HOST: 192.168.2.35 # 使用容器运行服务时,该HOST信息无用,容器内部会自动获取redis容器的ip

+ 5 - 0
src/app/api/__init__.py

@@ -12,6 +12,8 @@ from app.api.information import ns as information
 from app.api.device import ns as device
 from app.api.device import ns as device
 from app.api.download import ns as download
 from app.api.download import ns as download
 from app.api.strategy import ns as strategy
 from app.api.strategy import ns as strategy
+from app.api.system_monitoring import ns as system_monitoring
+from app.api.server import ns as server
 
 
 api = Api(version='v1.0', title='operation_management_center', description='运营管理中心', doc='/api')
 api = Api(version='v1.0', title='operation_management_center', description='运营管理中心', doc='/api')
 
 
@@ -27,3 +29,6 @@ api.add_namespace(device)
 api.add_namespace(data)
 api.add_namespace(data)
 api.add_namespace(log)
 api.add_namespace(log)
 api.add_namespace(download)
 api.add_namespace(download)
+
+api.add_namespace(system_monitoring)
+api.add_namespace(server)

+ 0 - 2
src/app/api/device.py

@@ -13,11 +13,9 @@ from app.modle.device import DeviceType, SecurityDevice
 from app.utils.jwt_util import login_required
 from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
 from app.utils.util import to_dict
-from config import Config
 
 
 ns = Namespace('device', description='设备管理接口')
 ns = Namespace('device', description='设备管理接口')
 
 
-config = Config()
 device_type_list = reqparse.RequestParser(bundle_errors=True)
 device_type_list = reqparse.RequestParser(bundle_errors=True)
 device_type_list.add_argument(name='name', type=str, location='args', required=False, help='过滤设备类别名')
 device_type_list.add_argument(name='name', type=str, location='args', required=False, help='过滤设备类别名')
 
 

+ 0 - 3
src/app/api/organization.py

@@ -12,7 +12,6 @@ from app.modle.organization import Company, Department
 from app.utils.jwt_util import login_required
 from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
 from app.utils.util import to_dict
-from config import Config
 
 
 ns = Namespace('organization', description='组织管理接口')
 ns = Namespace('organization', description='组织管理接口')
 
 
@@ -21,8 +20,6 @@ company_list.add_argument(name='page_size', type=int, location='args', required=
 company_list.add_argument(name='page', type=int, location='args', required=False, help='页数')
 company_list.add_argument(name='page', type=int, location='args', required=False, help='页数')
 company_list.add_argument(name='name', type=str, location='args', required=False, help='过滤公司名')
 company_list.add_argument(name='name', type=str, location='args', required=False, help='过滤公司名')
 
 
-config = Config()
-
 
 
 @ns.route('/company_list')
 @ns.route('/company_list')
 class CompanyListApi(Resource):
 class CompanyListApi(Resource):

+ 36 - 0
src/app/api/server.py

@@ -0,0 +1,36 @@
+from flask import request, jsonify, current_app
+from flask_restx import Resource, Namespace, reqparse
+
+from app.defines import StatesCode
+from app.utils.jwt_util import login_required
+
+ns = Namespace('server', description='服务管理接口')
+
+
+@ns.route('/server_list')
+class ServerListApi(Resource):
+    method_decorators = [login_required]
+
+    @ns.doc(id='get_server_list', description='获取服务列表')
+    def get(self):
+        """服务列表"""
+
+        page_size = int(request.args.get('page_size', 20))
+        page = int(request.args.get('page', 1))
+
+        #  服务名称,简介,图片,安装状态
+        data = {
+            'name': '海康威视软件包',
+            'introduction': 'xxxxxxxx',
+            'picture': '',
+            'setup_status': True
+        }
+        return jsonify(code=StatesCode.SUCCESS, message='成功', data=data)
+
+
+# @ns.route('/search_server')
+# class SearchServerApi(Resource):
+#
+#     def get(self):
+#         """搜索服务"""
+#         pass

+ 2 - 0
src/app/api/strategy.py

@@ -7,6 +7,7 @@ from sqlalchemy.orm import Session
 
 
 from app.defines import StatesCode, Module, OperationType
 from app.defines import StatesCode, Module, OperationType
 from app.modle.strategy import MeetingRoom
 from app.modle.strategy import MeetingRoom
+from app.utils.jwt_util import login_required
 from app.utils.save_log import save_log
 from app.utils.save_log import save_log
 from app.utils.util import to_dict
 from app.utils.util import to_dict
 from config import Config
 from config import Config
@@ -18,6 +19,7 @@ config = Config()
 
 
 @ns.route('')
 @ns.route('')
 class StrategyList(Resource):
 class StrategyList(Resource):
+    method_decorators = [login_required]
 
 
     @ns.doc(description='获取策略配置')
     @ns.doc(description='获取策略配置')
     def get(self):
     def get(self):

+ 54 - 0
src/app/api/system_monitoring.py

@@ -0,0 +1,54 @@
+import requests
+from flask import request, jsonify
+from flask_restx import Resource, Namespace, reqparse
+
+from app.defines import StatesCode
+from app.utils.jwt_util import login_required
+from config import Config
+
+ns = Namespace('system_monitoring', description='系统监控')
+
+config = Config()
+
+job_list = reqparse.RequestParser(bundle_errors=True)
+job_list.add_argument(name='name', type=str, location='args', required=False, help='任务名称')
+job_list.add_argument(name='group', type=str, location='args', required=False, help='任务组名')
+job_list.add_argument(name='status', type=str, location='args', required=False, help='任务状态')
+job_list.add_argument(name='page_size', type=int, location='args', required=False, help='每页记录数量,默认:20')
+job_list.add_argument(name='page', type=int, location='args', required=False, help='第几页')
+
+
+@ns.route('/job_list')
+class TimedTaskApi(Resource):
+    method_decorators = [login_required]
+
+    @ns.doc(description='获取定时任务列表')
+    @ns.expect(job_list)
+    def get(self):
+        """获取定时任务列表"""
+
+        name = request.args.get('name')
+        group = request.args.get('group')
+        status = request.args.get('status')
+        page_size = int(request.args.get('page_size', 20))
+        page = int(request.args.get('page', 1))
+
+        data = {}
+
+        if name:
+            data['name'] = name
+        if group:
+            data['group'] = group
+        if status:
+            data['status'] = status
+        if page_size:
+            data['page_size'] = page_size
+        if page:
+            data['page'] = page
+
+        rep = requests.get(
+            'http://{host}:{post}/ioc-api/quartz_job/getJobList'.format(host=config.system_monitoring.HOST,
+                                                                        post=config.system_monitoring.POST
+                                                                        ), data=data, headers={'clientId': "99"}).json()
+
+        return jsonify(code=StatesCode.SUCCESS, message='成功', data=rep)