Commit 6ddc5256 authored by wanli's avatar wanli

feat(): 新增两个接口

parent 8ac587bd
'''
Author: your name
Date: 2021-07-15 03:22:19
LastEditTime: 2021-07-20 10:07:12
LastEditTime: 2021-07-22 18:51:05
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\__init__.py
......@@ -20,6 +20,7 @@ from . import login
from . import device
from . import annex
from . import file
from . import menu
from . import monitorWatch
from . import monitorSystem
from . import monitorLvgl
......@@ -55,6 +56,9 @@ api.add_resource(user.UserResourceList, '/user')
api.add_resource(login.LoginResource, '/login/<string:uuid>')
api.add_resource(login.LoginResourceList, '/login')
api.add_resource(menu.MenuResource, '/menu/<string:uuid>')
api.add_resource(menu.MenuResourceList, '/menu')
api.add_resource(device.DeviceResource, '/device/<string:uuid>')
api.add_resource(device.DeviceResourceList, '/device')
......
'''
Author: your name
Date: 2021-07-15 09:33:39
LastEditTime: 2021-07-22 18:49:47
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\package.20210715165358.py
'''
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
from flask_jwt_extended import (jwt_required, get_jwt_identity)
from application.signal_manager import signalManager
from webcreator.log import logger
from webcreator.response import ResponseCode, response_result
class MenuResourceList(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
self.parser = RequestParser()
def get(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
logger.warn(json_payload)
return response_result(ResponseCode.HTTP_INVAILD_REQUEST)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
def post(self):
result = [
{
"id": "1044886626813353984",
"parentId": "0",
"name": "dashboard",
"path": "/dashboard",
"icon": "dashboard",
"leaf": False,
"children": [
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "analysis",
"path": "/dashboard/analysis",
"leaf": True,
"children": []
},
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "workplace",
"path": "/dashboard/workplace",
"leaf": True,
"children": []
}
]
},
{
"id": "1044886626813353984",
"parentId": "0",
"name": "system",
"path": "/system",
"icon": "setting",
"leaf": False,
"children": [
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "setting",
"path": "/system/setting",
"leaf": False,
"children": [
{
"id": "1044886630026190848",
"parentId": "1044886629921333248",
"name": "menu",
"path": "/system/setting/menu",
"leaf": True,
"children": []
},
{
"id": "1044886630122659840",
"parentId": "1044886629921333248",
"name": "module",
"path": "/system/setting/module",
"leaf": True,
"children": []
},
{
"id": "1044886630122659841",
"parentId": "1044886629921333248",
"name": "file-manager",
"path": "/system/setting/file-manager",
"leaf": True,
"children": []
}
]
},
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "role",
"path": "/system/role",
"leaf": True
},
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "admin",
"path": "/system/admin",
"leaf": True
}
]
},
{
"id": "1044886626813353984",
"icon": "shop",
"parentId": "0",
"name": "application",
"path": "/application",
"leaf": False,
"children": [
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "index",
"path": "/application/index",
"leaf": True,
"children": []
},
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "manager",
"path": "/application/manager",
"leaf": True,
"children": []
}
]
},
{
"id": "1044886626813353984",
"icon": "usb",
"parentId": "0",
"name": "device",
"path": "/device",
"leaf": False,
"children": [
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "index",
"path": "/device/index",
"leaf": True,
"children": []
}
]
},
{
"id": "1044886626813353984",
"icon": "tool",
"parentId": "0",
"name": "tools",
"path": "/tools",
"leaf": False,
"children": [
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "monitor",
"path": "/tools/monitor",
"leaf": True,
"children": []
},
{
"id": "1044886629921333248",
"parentId": "1044886626813353984",
"name": "index",
"path": "/tools/index",
"leaf": True,
"children": []
}
]
}
]
return response_result(ResponseCode.HTTP_SUCCESS, data=result)
class MenuResource(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser = RequestParser()
@jwt_required(locations=["headers"])
def get(self, uuid):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
print("========>", uuid, json_payload)
return response_result(ResponseCode.HTTP_NOT_FOUND)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.HTTP_SERVER_ERROR)
'''
Author: your name
Date: 2021-07-19 14:29:33
LastEditTime: 2021-07-22 17:51:55
LastEditTime: 2021-07-22 18:47:43
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\api.py
......@@ -176,7 +176,8 @@ class BuildAppResource(Resource):
# result = result_proxy.fetchall()
result = db.session.query(MyModel2).filter().all()
for item in result:
res = MonitorSystemModel.query.filter(MonitorSystemModel.id==item.id).first()
res = MonitorSystemModel.query.filter(
MonitorSystemModel.id == item.id).first()
if not res:
continue
res.is_delete = 0
......@@ -195,19 +196,23 @@ class BuildAppResource(Resource):
# print(item[3])
# 查找app,更新download_url
# app = AppModel.query.filter(AppModel.create_at >= datetime.strptime(item[6], "%Y-%m-%d %H:%M:%S.%f"), AppModel.create_at <= datetime.strptime(item[6], "%Y-%m-%d %H:%M:%S.%f") - timedelta(secondsd=2)).all()
print("====>", item.create_at, (datetime.strptime(item.create_at, "%Y-%m-%d %H:%M:%S.%f") + timedelta(seconds=2)).strftime("%Y-%m-%d %H:%M:%S"))
app = AppModel.query.filter(AppModel.create_at >= item.create_at, AppModel.create_at <= (datetime.strptime(item.create_at, "%Y-%m-%d %H:%M:%S.%f") + timedelta(seconds=2)).strftime("%Y-%m-%d %H:%M:%S")).first()
print("====>", item.create_at, (datetime.strptime(
item.create_at, "%Y-%m-%d %H:%M:%S.%f") + timedelta(seconds=2)).strftime("%Y-%m-%d %H:%M:%S"))
app = AppModel.query.filter(AppModel.create_at >= item.create_at, AppModel.create_at <= (datetime.strptime(
item.create_at, "%Y-%m-%d %H:%M:%S.%f") + timedelta(seconds=2)).strftime("%Y-%m-%d %H:%M:%S")).first()
if not app:
continue
print(app)
# 再判断是否存在于package中,不存在则插入
res = db.session.query(PackageModel).filter(PackageModel.file_path==item.app_path).limit(1).one_or_none()
res = db.session.query(PackageModel).filter(
PackageModel.file_path == item.app_path).limit(1).one_or_none()
if res:
app.download_url = item.app_path
res.app_version = item.app_version
db.session.flush()
else:
res = PackageModel(app=app.id, app_version=item.app_version, file_path=item.app_path, package_info=item.app_info, create_at=datetime.strptime(item.create_at, "%Y-%m-%d %H:%M:%S.%f"), create_by=item.create_by, update_at=datetime.strptime(item.create_at, "%Y-%m-%d %H:%M:%S.%f"), update_by=item.create_by)
res = PackageModel(app=app.id, app_version=item.app_version, file_path=item.app_path, package_info=item.app_info, create_at=datetime.strptime(
item.create_at, "%Y-%m-%d %H:%M:%S.%f"), create_by=item.create_by, update_at=datetime.strptime(item.create_at, "%Y-%m-%d %H:%M:%S.%f"), update_by=item.create_by)
db.session.add(res)
db.session.flush()
logger.info(res)
......@@ -219,12 +224,18 @@ class BuildAppResource(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR)
def post(self):
self.parser.add_argument("access_key", type=str, location="form", required=True)
self.parser.add_argument("app_name", type=str, location="form", required=True)
self.parser.add_argument("app_version", type=str, location="form", required=True)
self.parser.add_argument("category", type=str, location="form", required=True)
self.parser.add_argument("app_desc", type=str, location="form", required=False)
self.parser.add_argument("binfiles", type=FileStorage, location="files", required=True)
self.parser.add_argument(
"access_key", type=str, location="form", required=True)
self.parser.add_argument("app_name", type=str,
location="form", required=True)
self.parser.add_argument(
"app_version", type=str, location="form", required=True)
self.parser.add_argument("category", type=str,
location="form", required=True)
self.parser.add_argument("app_desc", type=str,
location="form", required=False)
self.parser.add_argument(
"binfiles", type=FileStorage, location="files", required=True)
args = self.parser.parse_args()
try:
......@@ -252,9 +263,10 @@ class BuildAppResource(Resource):
f.save(file_path.resolve().as_posix())
files.append(file_path.resolve().as_posix())
data.update({ 'host_url': request.host_url })
data.update({'host_url': request.host_url})
result, message = signalManager.actionApplicationBuild.emit(data, files)
result, message = signalManager.actionApplicationBuild.emit(
data, files)
if result:
return response_result(ResponseCode.HTTP_SUCCESS, data=result)
else:
......@@ -272,6 +284,75 @@ class CStringToolResource(Resource):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
self.parser = RequestParser()
def get(self):
result = {
"results": [
{
"gender": "female",
"name": {
"title": "Miss",
"first": "Candice",
"last": "Gonzales"
},
"location": {
"street": {
"number": 3007,
"name": "Northaven Rd"
},
"city": "Warragul",
"state": "Queensland",
"country": "Australia",
"postcode": 6657,
"coordinates": {
"latitude": "-87.1892",
"longitude": "91.2147"
},
"timezone": {
"offset": "-1:00",
"description": "Azores, Cape Verde Islands"
}
},
"email": "candice.gonzales@example.com",
"login": {
"uuid": "253648f6-1ba1-4196-aaf8-0b7a0a7f819b",
"username": "lazybear738",
"password": "wallet",
"salt": "TOehKzxN",
"md5": "01f4d04fbbdc7da7145c733e6d6fef77",
"sha1": "3c63e0f753b75c4bc141f49c4e8072d945beddc1",
"sha256": "102535a2f99c2dee933c1261bd3f70e042c628818a938e97a95391eabe0df252"
},
"dob": {
"date": "1970-03-01T16:04:10.320Z",
"age": 51
},
"registered": {
"date": "2013-07-27T18:45:18.202Z",
"age": 8
},
"phone": "06-4951-5747",
"cell": "0479-024-688",
"id": {
"name": "TFN",
"value": "046353523"
},
"picture": {
"large": "https://randomuser.me/api/portraits/women/3.jpg",
"medium": "https://randomuser.me/api/portraits/med/women/3.jpg",
"thumbnail": "https://randomuser.me/api/portraits/thumb/women/3.jpg"
},
"nat": "AU"
}
],
"info": {
"seed": "60ef4c21e9a77500",
"results": 1,
"page": 1,
"version": "1.3"
}
}
return response_result(ResponseCode.HTTP_SUCCESS, data=result)
@jwt_required(locations=["headers"])
def post(self):
self.parser.add_argument(
......@@ -338,6 +419,8 @@ class ObfuscatedCode(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取启动器接口
class LauncherResource(Resource):
def __init__(self) -> None:
super().__init__()
......@@ -372,6 +455,8 @@ class LauncherResource(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取App列表接口
class AppListResource(Resource):
def __init__(self) -> None:
super().__init__()
......@@ -452,6 +537,8 @@ class AppListResource(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取应用接口
class App(Resource):
def __init__(self) -> None:
super().__init__()
......@@ -473,9 +560,9 @@ class App(Resource):
if result:
result = result.to_dict()
result.update({'download': random.randint(1, 1000),
'like': random.randint(0, 100),
'timestamp': int(time.time()),
'meta_data': json.loads(result["meta_data"])})
'like': random.randint(0, 100),
'timestamp': int(time.time()),
'meta_data': json.loads(result["meta_data"])})
return response_result(message, data=result)
except ValidationError as e:
return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages)
......@@ -488,6 +575,8 @@ class App(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 获取应用信息接口
class AppInfo(Resource):
def __init__(self) -> None:
super().__init__()
......@@ -495,8 +584,10 @@ class AppInfo(Resource):
# 检查app是否为最新版本
def get(self):
self.parser.add_argument("uuid", type=str, location="args", required=True)
self.parser.add_argument("imei", type=str, location="args", required=True)
self.parser.add_argument(
"uuid", type=str, location="args", required=True)
self.parser.add_argument(
"imei", type=str, location="args", required=True)
args = self.parser.parse_args()
try:
......@@ -508,8 +599,8 @@ class AppInfo(Resource):
result, message = signalManager.actionCheckVersion.emit(data)
if result:
return { 'data': { 'status': 1, 'time': int(time.time()) }, 'version': None, 'downloadUrl': None }
return { 'data': { 'status': 0, 'time': int(time.time()) } }
return {'data': {'status': 1, 'time': int(time.time())}, 'version': None, 'downloadUrl': None}
return {'data': {'status': 0, 'time': int(time.time())}}
except ValidationError as e:
return response_result(ResponseCode.HTTP_INVAILD_REQUEST, data=e.messages)
except Exception as e:
......@@ -520,6 +611,8 @@ class AppInfo(Resource):
return response_result(ResponseCode.HTTP_SERVER_ERROR, data=data)
# 下载EPK文件接口
class DownloadEpk(Resource):
def __init__(self) -> None:
super().__init__()
......
'''
Author: your name
Date: 2021-07-15 09:33:39
LastEditTime: 2021-07-16 19:27:36
LastEditors: your name
Description: In User Settings Edit
FilePath: \evm-store\tools\build_out\views\package.20210715165358.py
'''
from flask import current_app, jsonify, request
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
from flask_jwt_extended import ( jwt_required, get_jwt_identity )
from application.signal_manager import signalManager
from models.package import getListPackageSchema, getListPackagesSchema, getPackageSchema
from webcreator.log import logger
from webcreator.response import ResponseCode, response_result
class PackageResourceList(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
self.parser = RequestParser()
def get(self):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
logger.warn(json_payload)
data = getListPackageSchema.load(json_payload)
result = signalManager.actionGetListPackage.emit(data)
json_dumps = getListPackageSchema.dump(result)
if result[0]:
json_dumps = getListPackagesSchema.dump(result[1])
logger.warn(json_dumps)
return response_result(ResponseCode.OK, data=json_dumps, count=result[2])
return response_result(ResponseCode.REQUEST_ERROR)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
class PackageResource(Resource):
def __init__(self):
pass
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser = RequestParser()
@jwt_required(locations=["headers"])
def get(self, uuid):
# 特殊参数,即不是从json获取参数的接口,可以将这个注释打开
# self.parser.add_argument("page", type=int, location="args", default=1)
# self.parser.add_argument("pageSize", type=int, location="args", default=15)
# args = self.parser.parse_args()
try:
json_payload = request.json
print("========>", uuid, json_payload)
data = getPackageSchema.load(json_payload)
result = signalManager.actionGetPackage.emit(uuid, data)
if result[0]:
json_dumps = getPackageSchema.dump(result[1])
return response_result(ResponseCode.OK, data=json_dumps)
return response_result(ResponseCode.NO_DATA)
except Exception as e:
current_app.logger.error(e)
return response_result(ResponseCode.DB_ERROR)
......@@ -112,7 +112,7 @@
src="https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png"
alt="avatar"
/>
<span class="name">EVM</span>
<span class="name">{{ userinfo.name }}</span>
</span>
<a-menu slot="overlay" class="menu">
......@@ -226,6 +226,9 @@ export default {
}
return className;
},
userinfo() {
return this.$store.state.frontend.login.userinfo
}
},
};
</script>
......@@ -167,9 +167,11 @@ const state = {
const actions = {
["getMenuNav"]({ commit, state }, config) {
state.loading = true;
console.log(config)
return new Promise((resolve, reject) => {
menuNav()
.then((response) => {
console.log(response)
// console.log(mock);
commit("setMenuNav", mock);
state.loading = false;
......
......@@ -233,11 +233,11 @@ export default {
methods: {
handleDownload(record) {
download(`${record.app_name}_${record.app_version}.epk`, record.file_path)
.then((res) => {
message.success(res.msg);
.then(() => {
message.success("下载成功")
})
.catch((err) => {
message.error(err.msg);
.catch(() => {
message.error("下载失败")
});
},
hadnleEdit(record) {
......@@ -261,7 +261,7 @@ export default {
message.success(res.msg);
if (res.code == 200) {
this.tableData.list = res.data.map(item => {
if (item.source == 1) item.source_text = "Frontend"
if (item.source == 0) item.source_text = "Frontend"
else item.source_text = "API"
return item;
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment