|
@@ -18,10 +18,12 @@ from config import Config
|
|
|
ns = Namespace('device', description='设备管理接口')
|
|
|
|
|
|
config = Config()
|
|
|
+device_type_list = reqparse.RequestParser(bundle_errors=True)
|
|
|
+device_type_list.add_argument(name='name', type=str, location='args', required=False, help='过滤设备类别名')
|
|
|
|
|
|
device_type = reqparse.RequestParser(bundle_errors=True)
|
|
|
-device_type.add_argument(name='id', type=str, location='form', required=True, help='设备类别id')
|
|
|
-device_type.add_argument(name='name', type=str, location='form', required=True, help='设备类别名称')
|
|
|
+device_type.add_argument(name='id', type=str, location='form', required=False, help='设备类别id')
|
|
|
+device_type.add_argument(name='name', type=str, location='form', required=False, help='设备类别名称')
|
|
|
|
|
|
|
|
|
@ns.route('/device_type')
|
|
@@ -29,19 +31,25 @@ class DeviceTypeApi(Resource):
|
|
|
method_decorators = [login_required]
|
|
|
|
|
|
@ns.doc(id='device_list', description='设备类别列表')
|
|
|
+ @ns.expect(device_type_list)
|
|
|
def get(self):
|
|
|
"""设备类型列表"""
|
|
|
|
|
|
+ name = request.args.get('name')
|
|
|
+
|
|
|
try:
|
|
|
with Session(current_app.engine) as session:
|
|
|
stmt = select(DeviceType)
|
|
|
+
|
|
|
+ if name:
|
|
|
+ stmt = stmt.where(DeviceType.type_name.like("%{}%".format(name)))
|
|
|
+
|
|
|
results = session.execute(stmt).scalars().all()
|
|
|
|
|
|
save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
|
|
|
return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
|
|
|
-
|
|
|
except Exception as e:
|
|
|
save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
|
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
@@ -59,7 +67,7 @@ class DeviceTypeApi(Resource):
|
|
|
try:
|
|
|
with Session(current_app.engine) as session:
|
|
|
stmt = insert(DeviceType).values(
|
|
|
- name=device_name
|
|
|
+ type_name=device_name
|
|
|
)
|
|
|
session.execute(stmt)
|
|
|
session.commit()
|
|
@@ -101,7 +109,10 @@ class DeviceTypeApi(Resource):
|
|
|
|
|
|
|
|
|
device_list = reqparse.RequestParser(bundle_errors=True)
|
|
|
-device_list.add_argument(name='id', type=str, location='args', required=True, help='设备类别id')
|
|
|
+device_list.add_argument(name='id', type=str, location='args', required=False, help='设备类别id')
|
|
|
+device_list.add_argument(name='name', type=str, location='args', required=False, help='过滤设备名')
|
|
|
+device_list.add_argument(name='page_size', type=int, location='args', required=False, help='每页记录数量,默认:20')
|
|
|
+device_list.add_argument(name='page', type=int, location='args', required=False, help='第几页')
|
|
|
|
|
|
|
|
|
@ns.route('/device_list')
|
|
@@ -114,13 +125,22 @@ class DeviceListApi(Resource):
|
|
|
"""获取设备列表"""
|
|
|
|
|
|
device_type_id = request.args.get('id')
|
|
|
+ device_name = request.args.get('name')
|
|
|
+ page_size = int(request.args.get('page_size', 20))
|
|
|
+ page = int(request.args.get('page', 1))
|
|
|
|
|
|
if device_type_id is None:
|
|
|
- return jsonify(code=StatesCode.PARA_ERROR, message='设备类别或设备类别id不能为空')
|
|
|
+ return jsonify(code=StatesCode.PARA_ERROR, message='设备类别id不能为空')
|
|
|
|
|
|
try:
|
|
|
with Session(current_app.engine) as session:
|
|
|
stmt = select(SecurityDevice).where(SecurityDevice.device_group == device_type_id)
|
|
|
+
|
|
|
+ if device_name:
|
|
|
+ stmt = stmt.where(SecurityDevice.device_name.like("%{}%".format(device_name)))
|
|
|
+
|
|
|
+ stmt = stmt.offset(page_size * (page - 1)).limit(page_size)
|
|
|
+
|
|
|
results = session.execute(stmt).scalars().all()
|
|
|
|
|
|
save_log(request, Module.DEVICE, OperationType.INQUIRE, StatesCode.SUCCESS)
|