Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
evm-store
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanli
evm-store
Commits
6a858248
Commit
6a858248
authored
Mar 24, 2021
by
wanli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
51fbe51a
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
118 additions
and
27 deletions
+118
-27
backend/app/signal_manager.py
backend/app/signal_manager.py
+7
-0
backend/controller/__init__.py
backend/controller/__init__.py
+8
-0
backend/controller/download_manager.py
backend/controller/download_manager.py
+56
-22
backend/controller/login_manager.py
backend/controller/login_manager.py
+37
-1
backend/model/download.py
backend/model/download.py
+1
-0
backend/model/user.py
backend/model/user.py
+1
-0
backend/view/download.py
backend/view/download.py
+8
-4
No files found.
backend/app/signal_manager.py
View file @
6a858248
...
@@ -74,6 +74,13 @@ class SignalManager(object):
...
@@ -74,6 +74,13 @@ class SignalManager(object):
actionGetAppLogsList
=
PySignal
()
actionGetAppLogsList
=
PySignal
()
actionUpdateAppLogs
=
PySignal
()
actionUpdateAppLogs
=
PySignal
()
# 用户登录日志
actionAddLoginLogs
=
PySignal
()
actionDeleteLoginLogs
=
PySignal
()
actionGetLoginLogs
=
PySignal
()
actionGetLoginLogsList
=
PySignal
()
actionUpdateLoginLogs
=
PySignal
()
# 系统菜单
# 系统菜单
actionAddMenu
=
PySignal
()
actionAddMenu
=
PySignal
()
actionDeleteMenu
=
PySignal
()
actionDeleteMenu
=
PySignal
()
...
...
backend/controller/__init__.py
View file @
6a858248
...
@@ -13,6 +13,7 @@ from .apps_manager import appsManager
...
@@ -13,6 +13,7 @@ from .apps_manager import appsManager
from
.menu_manager
import
menuManager
from
.menu_manager
import
menuManager
from
.device_manager
import
deviceManager
from
.device_manager
import
deviceManager
from
.download_manager
import
downloadManager
from
.download_manager
import
downloadManager
from
.login_logs_manager
import
loginLogsManager
from
.app_logs_manager
import
appLogsManager
from
.app_logs_manager
import
appLogsManager
from
.build_logs_manager
import
buildLogsManager
from
.build_logs_manager
import
buildLogsManager
...
@@ -49,6 +50,13 @@ def initConnect():
...
@@ -49,6 +50,13 @@ def initConnect():
signalManager
.
actionGetBuildLogList
.
connect
(
buildLogsManager
.
getList
)
signalManager
.
actionGetBuildLogList
.
connect
(
buildLogsManager
.
getList
)
signalManager
.
actionUpdateBuildLog
.
connect
(
buildLogsManager
.
update
)
signalManager
.
actionUpdateBuildLog
.
connect
(
buildLogsManager
.
update
)
# 用户登录记录
signalManager
.
actionAddLoginLogs
.
connect
(
loginLogsManager
.
add
)
signalManager
.
actionDeleteLoginLogs
.
connect
(
loginLogsManager
.
delete
)
signalManager
.
actionGetLoginLogs
.
connect
(
loginLogsManager
.
get
)
signalManager
.
actionGetLoginLogsList
.
connect
(
loginLogsManager
.
getList
)
signalManager
.
actionUpdateLoginLogs
.
connect
(
loginLogsManager
.
update
)
# 用户模块
# 用户模块
signalManager
.
actionAddUser
.
connect
(
userManager
.
add
)
signalManager
.
actionAddUser
.
connect
(
userManager
.
add
)
signalManager
.
actionDeleteUser
.
connect
(
userManager
.
delete
)
signalManager
.
actionDeleteUser
.
connect
(
userManager
.
delete
)
...
...
backend/controller/download_manager.py
View file @
6a858248
...
@@ -11,21 +11,50 @@ import logging
...
@@ -11,21 +11,50 @@ import logging
import
traceback
import
traceback
import
shutil
import
shutil
from
collections
import
OrderedDict
from
collections
import
OrderedDict
from
urllib.parse
import
urlparse
,
urljoin
import
urllib
from
urllib
import
parse
,
request
from
urllib.parse
import
urlparse
,
urljoin
,
urlencode
from
datetime
import
datetime
from
datetime
import
datetime
from
pony.orm
import
*
from
pony.orm
import
*
from
flask
import
request
from
flask
import
request
as
flask_request
from
app.setting
import
config
,
conf
from
app.setting
import
config
,
conf
from
model
import
fullStackDB
from
model
import
fullStackDB
from
model.download
import
AppDownload
from
model.download
import
AppDownload
from
model.device
import
Device
from
model.device
import
Device
from
model.apps
import
Apps
from
model.apps
import
Apps
from
model.user
import
User
from
model.user
import
User
from
utils
import
sql_filter
from
utils
import
sql_filter
,
ThreadMaker
from
utils.tools_epk
import
EpkApp
from
utils.tools_epk
import
EpkApp
logger
=
logging
.
getLogger
(
"DownloadManager"
)
logger
=
logging
.
getLogger
(
"DownloadManager"
)
@
ThreadMaker
def
update_download_information
(
ip
,
id
):
params
=
{
'ak'
:
'aZEAgYG8wKuLd6DS9BmCloGtfnGGkRMn'
,
'coor'
:
'bd09ll'
}
parameters
=
urllib
.
parse
.
urlencode
(
params
)
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
}
if
ip
!=
'127.0.0.1'
:
params
.
update
({
'ip'
:
ip
})
parameters
=
urllib
.
parse
.
urlencode
(
params
)
url
=
'http://api.map.baidu.com/location/ip'
req
=
request
.
Request
(
url
=
'
%
s
%
s
%
s'
%
(
url
,
'?'
,
parameters
),
headers
=
headers
)
ret
=
request
.
urlopen
(
req
)
.
read
()
jsonData
=
json
.
loads
(
ret
)
logger
.
info
(
jsonData
)
if
(
0
!=
jsonData
[
'status'
]):
return
None
with
db_session
:
down
=
AppDownload
.
get
(
id
=
id
)
if
down
:
down
.
set
(
address
=
jsonData
[
'address'
],
remarks
=
json
.
dumps
(
jsonData
[
'content'
],
ensure_ascii
=
False
))
commit
()
def
convert_url_to_local_path
(
url
):
def
convert_url_to_local_path
(
url
):
parsed_result
=
urlparse
(
url
)
parsed_result
=
urlparse
(
url
)
...
@@ -38,13 +67,13 @@ class DownloadManager(object):
...
@@ -38,13 +67,13 @@ class DownloadManager(object):
def
__init__
(
self
):
def
__init__
(
self
):
super
(
DownloadManager
,
self
)
.
__init__
()
super
(
DownloadManager
,
self
)
.
__init__
()
def
add
(
self
,
data
):
def
add
(
self
,
user
,
data
):
with
db_session
:
with
db_session
:
app
=
Apps
.
get
(
id
=
data
.
get
(
"app"
),
is_delete
=
False
)
app
=
Apps
.
get
(
id
=
data
.
get
(
"app"
),
is_delete
=
False
)
if
not
app
:
if
not
app
:
return
False
,
"app does not found"
return
False
,
"app does not found"
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
id
=
user
)
if
not
editor
:
if
not
editor
:
return
False
,
"current user is not exists"
return
False
,
"current user is not exists"
...
@@ -59,9 +88,9 @@ class DownloadManager(object):
...
@@ -59,9 +88,9 @@ class DownloadManager(object):
commit
()
commit
()
return
result
,
"add dictionary {}."
.
format
(
"success"
if
result
else
"fail"
)
return
result
,
"add dictionary {}."
.
format
(
"success"
if
result
else
"fail"
)
def
delete
(
self
,
uuid
):
def
delete
(
self
,
u
ser
,
u
uid
):
with
db_session
:
with
db_session
:
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
id
=
user
)
if
not
editor
:
if
not
editor
:
return
False
,
"current user is not exists"
return
False
,
"current user is not exists"
...
@@ -96,31 +125,36 @@ class DownloadManager(object):
...
@@ -96,31 +125,36 @@ class DownloadManager(object):
app
=
None
app
=
None
with
db_session
:
with
db_session
:
# 根据IMEI查找设备
# 根据IMEI查找设备
device
=
Device
.
select
()
.
where
(
imei
=
data
.
get
(
"imei"
))
.
first
()
# device = Device.select().where(imei=data.get("imei")).first()
logger
.
info
(
data
)
# logger.info(data)
if
not
device
:
# if not device:
return
False
,
"device not found"
# return False, "device not found"
# if not device.create_by:
# return False, "create user is null"
if
not
device
.
create_by
:
app
=
Apps
.
select
(
app_name
=
data
.
get
(
"id"
))
.
order_by
(
desc
(
Apps
.
create_at
))
return
False
,
"create user is null"
if
len
(
app
)
>
1
:
app
=
Apps
.
select
(
lambda
p
:
p
.
app_name
==
data
.
get
(
"id"
)
and
p
.
create_by
.
account
==
'evm'
)
.
order_by
(
desc
(
Apps
.
create_at
))
app
=
Apps
.
select
(
app_name
=
data
.
get
(
"id"
),
create_by
=
device
.
create_by
)
.
order_by
(
desc
(
Apps
.
create_at
))
.
first
()
if
not
app
:
if
not
app
:
return
False
,
"app not found"
return
False
,
"app not found"
app
=
app
[:]
epk_path
=
""
epk_path
=
""
if
app
.
app_build_log
:
if
app
[
0
]
.
app_build_log
:
epk_path
=
os
.
sep
.
join
([
os
.
getcwd
(),
app
.
app_build_log
.
app_path
])
epk_path
=
os
.
sep
.
join
([
os
.
getcwd
(),
app
[
0
]
.
app_build_log
.
app_path
])
if
not
os
.
path
.
exists
(
epk_path
):
if
not
os
.
path
.
exists
(
epk_path
):
return
False
,
"epk file not found"
return
False
,
"epk file not found"
if
app
:
down
=
AppDownload
(
app
=
app
[
0
],
imei
=
data
.
get
(
"imei"
))
AppDownload
(
app
=
app
,
imei
=
data
.
get
(
"imei"
))
commit
()
commit
()
if
down
:
ip
=
flask_request
.
remote_addr
update_download_information
(
ip
,
down
.
id
)
return
epk_path
,
"get dictionary {}."
.
format
(
"success"
if
epk_path
else
"no data"
)
return
epk_path
,
"get dictionary {}."
.
format
(
"success"
if
epk_path
else
"no data"
)
def
getList
(
self
,
data
):
def
getList
(
self
,
user
,
data
):
if
not
data
or
len
(
data
)
<=
0
:
if
not
data
or
len
(
data
)
<=
0
:
return
False
,
0
,
"parameters can not be null."
return
False
,
0
,
"parameters can not be null."
...
@@ -157,14 +191,14 @@ class DownloadManager(object):
...
@@ -157,14 +191,14 @@ class DownloadManager(object):
return
result
,
count
,
"get dictionary {}."
.
format
(
"success"
if
result
else
"fail"
)
return
result
,
count
,
"get dictionary {}."
.
format
(
"success"
if
result
else
"fail"
)
def
update
(
self
,
uuid
,
data
):
def
update
(
self
,
u
ser
,
u
uid
,
data
):
# 当参数为空时,直接返回错误
# 当参数为空时,直接返回错误
if
len
(
data
)
<=
0
or
(
len
(
data
.
keys
())
==
1
and
"id"
in
data
):
if
len
(
data
)
<=
0
or
(
len
(
data
.
keys
())
==
1
and
"id"
in
data
):
return
False
,
"parameters can not be null."
return
False
,
"parameters can not be null."
with
db_session
:
with
db_session
:
# 查询请求者是否存在
# 查询请求者是否存在
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
id
=
user
)
if
not
editor
:
if
not
editor
:
return
False
,
"current user is not exists"
return
False
,
"current user is not exists"
...
...
backend/controller/login_manager.py
View file @
6a858248
...
@@ -7,18 +7,51 @@ import types
...
@@ -7,18 +7,51 @@ import types
import
json
import
json
import
logging
import
logging
import
traceback
import
traceback
import
urllib
from
urllib
import
parse
,
request
from
urllib.parse
import
urlparse
,
urljoin
,
urlencode
from
datetime
import
datetime
from
datetime
import
datetime
from
threading
import
Thread
from
threading
import
Thread
from
werkzeug.security
import
check_password_hash
from
werkzeug.security
import
check_password_hash
from
flask
import
request
as
flask_request
from
pony.orm
import
*
from
pony.orm
import
*
from
model
import
fullStackDB
from
model
import
fullStackDB
from
model.user
import
User
from
model.user
import
User
from
model.login_logs
import
LoginLogs
from
fullstack.login
import
Auth
from
fullstack.login
import
Auth
from
fullstack.response
import
ResponseCode
from
fullstack.response
import
ResponseCode
from
utils
import
md5_salt
from
utils
import
md5_salt
,
ThreadMaker
logger
=
logging
.
getLogger
(
"LoginManager"
)
logger
=
logging
.
getLogger
(
"LoginManager"
)
@
ThreadMaker
def
update_login_information
(
ip
,
user_id
):
params
=
{
'ak'
:
'aZEAgYG8wKuLd6DS9BmCloGtfnGGkRMn'
,
'coor'
:
'bd09ll'
}
parameters
=
urllib
.
parse
.
urlencode
(
params
)
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
}
if
ip
!=
'127.0.0.1'
:
params
.
update
({
'ip'
:
ip
})
parameters
=
urllib
.
parse
.
urlencode
(
params
)
url
=
'http://api.map.baidu.com/location/ip'
req
=
request
.
Request
(
url
=
'
%
s
%
s
%
s'
%
(
url
,
'?'
,
parameters
),
headers
=
headers
)
ret
=
request
.
urlopen
(
req
)
.
read
()
jsonData
=
json
.
loads
(
ret
)
logger
.
info
(
jsonData
)
if
(
0
!=
jsonData
[
'status'
]):
return
None
with
db_session
:
user
=
User
.
get
(
id
=
user_id
)
if
not
user
:
return
LoginLogs
(
username
=
user
.
username
,
address
=
jsonData
[
'address'
],
create_by
=
user
,
remarks
=
json
.
dumps
(
jsonData
[
'content'
],
ensure_ascii
=
False
))
commit
()
class
LoginManager
(
object
):
class
LoginManager
(
object
):
'''
'''
...
@@ -51,6 +84,9 @@ class LoginManager(object):
...
@@ -51,6 +84,9 @@ class LoginManager(object):
if
result
.
is_delete
:
if
result
.
is_delete
:
return
False
,
ResponseCode
.
ACCOUNT_DISABLED
return
False
,
ResponseCode
.
ACCOUNT_DISABLED
update_login_information
(
flask_request
.
remote_addr
,
result
.
id
)
# 返回token
# 返回token
token
=
Auth
.
encode_auth_token
(
result
.
id
,
result
.
username
)
# 生成 token
token
=
Auth
.
encode_auth_token
(
result
.
id
,
result
.
username
)
# 生成 token
# setattr(result, 'token', token)
# setattr(result, 'token', token)
...
...
backend/model/download.py
View file @
6a858248
...
@@ -15,6 +15,7 @@ class AppDownload(db.Entity):
...
@@ -15,6 +15,7 @@ class AppDownload(db.Entity):
uuid
=
Required
(
uuid
.
UUID
,
unique
=
True
,
default
=
uuid
.
uuid1
,
index
=
True
)
uuid
=
Required
(
uuid
.
UUID
,
unique
=
True
,
default
=
uuid
.
uuid1
,
index
=
True
)
app
=
Optional
(
"Apps"
,
reverse
=
"app_download"
)
app
=
Optional
(
"Apps"
,
reverse
=
"app_download"
)
imei
=
Required
(
str
)
imei
=
Required
(
str
)
address
=
Optional
(
str
)
download_at
=
Required
(
datetime
,
default
=
datetime
.
now
)
download_at
=
Required
(
datetime
,
default
=
datetime
.
now
)
is_delete
=
Required
(
bool
,
default
=
False
)
is_delete
=
Required
(
bool
,
default
=
False
)
sort
=
Optional
(
int
,
size
=
32
,
default
=
0
)
sort
=
Optional
(
int
,
size
=
32
,
default
=
0
)
...
...
backend/model/user.py
View file @
6a858248
...
@@ -31,6 +31,7 @@ class User(db.Entity):
...
@@ -31,6 +31,7 @@ class User(db.Entity):
sort
=
Optional
(
int
,
size
=
32
,
default
=
0
)
sort
=
Optional
(
int
,
size
=
32
,
default
=
0
)
remarks
=
Optional
(
str
,
max_len
=
255
,
default
=
""
,
nullable
=
True
)
remarks
=
Optional
(
str
,
max_len
=
255
,
default
=
""
,
nullable
=
True
)
app_logs_creater
=
Set
(
'AppLogs'
,
reverse
=
'create_by'
)
app_logs_creater
=
Set
(
'AppLogs'
,
reverse
=
'create_by'
)
login_logs_creater
=
Set
(
'LoginLogs'
,
reverse
=
'create_by'
)
annex_creator
=
Set
(
'Annex'
,
reverse
=
'create_by'
)
annex_creator
=
Set
(
'Annex'
,
reverse
=
'create_by'
)
annex_updater
=
Set
(
'Annex'
,
reverse
=
'update_by'
)
annex_updater
=
Set
(
'Annex'
,
reverse
=
'update_by'
)
annex_deleter
=
Set
(
'Annex'
,
reverse
=
'delete_by'
)
annex_deleter
=
Set
(
'Annex'
,
reverse
=
'delete_by'
)
...
...
backend/view/download.py
View file @
6a858248
...
@@ -21,7 +21,8 @@ download_api = Blueprint("download_api", __name__, url_prefix="/api/v1/%s/downlo
...
@@ -21,7 +21,8 @@ download_api = Blueprint("download_api", __name__, url_prefix="/api/v1/%s/downlo
@
Auth
.
auth_required
@
Auth
.
auth_required
def
add
():
def
add
():
try
:
try
:
isSuccess
,
message
=
signalManager
.
actionAddDownload
.
emit
(
request
.
schema_data
)
user
=
request
.
current_user
.
get
(
"id"
)
isSuccess
,
message
=
signalManager
.
actionAddDownload
.
emit
(
user
,
request
.
schema_data
)
if
isSuccess
:
if
isSuccess
:
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
else
:
else
:
...
@@ -37,7 +38,8 @@ def add():
...
@@ -37,7 +38,8 @@ def add():
@
Auth
.
auth_required
@
Auth
.
auth_required
def
delete
(
id
):
def
delete
(
id
):
try
:
try
:
isSuccess
,
message
=
signalManager
.
actionDeleteDownload
.
emit
(
id
)
user
=
request
.
current_user
.
get
(
"id"
)
isSuccess
,
message
=
signalManager
.
actionDeleteDownload
.
emit
(
user
,
id
)
if
isSuccess
:
if
isSuccess
:
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
else
:
else
:
...
@@ -72,7 +74,8 @@ def get():
...
@@ -72,7 +74,8 @@ def get():
@
Auth
.
auth_required
@
Auth
.
auth_required
def
get_list
():
def
get_list
():
try
:
try
:
result
,
count
,
message
=
signalManager
.
actionGetDownloadList
.
emit
(
request
.
schema_data
)
user
=
request
.
current_user
.
get
(
"id"
)
result
,
count
,
message
=
signalManager
.
actionGetDownloadList
.
emit
(
user
,
request
.
schema_data
)
if
result
:
if
result
:
return
response_result
(
ResponseCode
.
OK
,
data
=
result
,
msg
=
message
,
count
=
count
)
return
response_result
(
ResponseCode
.
OK
,
data
=
result
,
msg
=
message
,
count
=
count
)
else
:
else
:
...
@@ -88,7 +91,8 @@ def get_list():
...
@@ -88,7 +91,8 @@ def get_list():
@
Auth
.
auth_required
@
Auth
.
auth_required
def
update
(
id
):
def
update
(
id
):
try
:
try
:
isSuccess
,
message
=
signalManager
.
actionUpdateDownload
.
emit
(
id
,
request
.
schema_data
)
user
=
request
.
current_user
.
get
(
"id"
)
isSuccess
,
message
=
signalManager
.
actionUpdateDownload
.
emit
(
user
,
id
,
request
.
schema_data
)
if
isSuccess
:
if
isSuccess
:
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
else
:
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment