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
8d66a5dd
Commit
8d66a5dd
authored
Jul 12, 2021
by
wanli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
d0df130e
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
162 additions
and
34 deletions
+162
-34
tools/build_out/application/config.py
tools/build_out/application/config.py
+3
-3
tools/build_out/controllers/app.py
tools/build_out/controllers/app.py
+31
-5
tools/build_out/controllers/area.py
tools/build_out/controllers/area.py
+3
-3
tools/build_out/controllers/login.py
tools/build_out/controllers/login.py
+1
-3
tools/build_out/controllers/package.py
tools/build_out/controllers/package.py
+109
-13
tools/build_out/controllers/user.py
tools/build_out/controllers/user.py
+9
-1
tools/build_out/models/app.py
tools/build_out/models/app.py
+1
-1
tools/build_out/models/area.py
tools/build_out/models/area.py
+1
-1
tools/build_out/models/login.py
tools/build_out/models/login.py
+1
-1
tools/build_out/models/package.py
tools/build_out/models/package.py
+1
-1
tools/build_out/models/user.py
tools/build_out/models/user.py
+1
-1
tools/templates/model.tpl
tools/templates/model.tpl
+1
-1
No files found.
tools/build_out/application/config.py
View file @
8d66a5dd
'''
'''
Author: your name
Author: your name
Date: 2021-06-30 17:43:46
Date: 2021-06-30 17:43:46
LastEditTime: 2021-07-12
01:19:46
LastEditTime: 2021-07-12
10:45:38
LastEditors: Please set LastEditors
LastEditors: Please set LastEditors
Description: In User Settings Edit
Description: In User Settings Edit
FilePath:
\
evm-store
\t
ools
\b
uild_out
\a
pplication
\
config.py
FilePath:
\
evm-store
\t
ools
\b
uild_out
\a
pplication
\
config.py
...
@@ -13,7 +13,7 @@ import multiprocessing
...
@@ -13,7 +13,7 @@ import multiprocessing
MODE
=
'develop'
# develop: 开发模式; production: 生产模式
MODE
=
'develop'
# develop: 开发模式; production: 生产模式
class
ProductionConfig
(
object
):
class
ProductionConfig
(
object
):
EPK_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files
\
epks"
EPK_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files
\
\
epks"
UPLOAD_ROOT_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files"
UPLOAD_ROOT_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files"
UPLOAD_ALLOWED
=
set
([
'doc'
,
'docs'
,
'csv'
,
'xls'
,
'xlsx'
])
UPLOAD_ALLOWED
=
set
([
'doc'
,
'docs'
,
'csv'
,
'xls'
,
'xlsx'
])
BIND
=
'127.0.0.1:3000'
BIND
=
'127.0.0.1:3000'
...
@@ -52,7 +52,7 @@ class ProductionConfig(object):
...
@@ -52,7 +52,7 @@ class ProductionConfig(object):
class
DevelopConfig
(
object
):
class
DevelopConfig
(
object
):
EPK_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files
\
epks"
EPK_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files
\
\
epks"
UPLOAD_ROOT_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files"
UPLOAD_ROOT_DIR
=
"D:
\\
projects
\\
scriptiot
\\
evm_app_store_files"
UPLOAD_ALLOWED
=
set
([
'doc'
,
'docs'
,
'csv'
,
'xls'
,
'xlsx'
])
UPLOAD_ALLOWED
=
set
([
'doc'
,
'docs'
,
'csv'
,
'xls'
,
'xlsx'
])
BIND
=
'127.0.0.1:3000'
BIND
=
'127.0.0.1:3000'
...
...
tools/build_out/controllers/app.py
View file @
8d66a5dd
...
@@ -151,6 +151,7 @@ class AppResource(object):
...
@@ -151,6 +151,7 @@ class AppResource(object):
if
not
user
:
if
not
user
:
return
False
,
ResponseCode
.
USER_NOT_EXISTS
return
False
,
ResponseCode
.
USER_NOT_EXISTS
# 判断下app是否存在
# result = Apps.select(app_name=data.get("app_name"), is_delete=False).count()
# result = Apps.select(app_name=data.get("app_name"), is_delete=False).count()
# if result < 1:
# if result < 1:
# return False, "app_name has been exists."
# return False, "app_name has been exists."
...
@@ -218,16 +219,41 @@ class AppResource(object):
...
@@ -218,16 +219,41 @@ class AppResource(object):
# return True, ResponseCode.HTTP_SUCCESS
# return True, ResponseCode.HTTP_SUCCESS
def
put
(
self
,
uuid
,
params
,
jwt
=
{}):
def
put
(
self
,
uuid
,
params
,
jwt
=
{}):
user
=
UserModel
.
query
.
filter
(
UserModel
.
id
==
params
.
get
(
'user'
))
.
one_or_none
()
if
not
user
:
return
False
,
ResponseCode
.
USER_NOT_EXISTS
# handle business
# handle business
result
=
AppModel
.
query
.
filter
(
AppModel
.
uuid
==
uuid
)
.
first
()
app
=
AppModel
.
query
.
filter
(
AppModel
.
uuid
==
uuid
)
.
first
()
if
not
result
:
if
not
app
:
return
None
,
ResponseCode
.
HTTP_NOT_FOUND
return
None
,
ResponseCode
.
HTTP_NOT_FOUND
if
params
:
if
params
:
# 更新文件
if
params
.
get
(
"app_files"
):
for
a
in
params
.
get
(
"app_files"
):
res
=
AnnexModel
(
app
=
app
,
title
=
a
.
get
(
"filename"
),
path
=
a
.
get
(
"filepath"
),
size
=
a
.
get
(
"filesize"
),
create_by
=
user
,
create_at
=
datetime
.
now
(),
update_by
=
user
,
update_at
=
datetime
.
now
())
db
.
session
.
add
(
res
)
db
.
session
.
flush
()
db
.
session
.
commit
()
params
.
pop
(
"app_files"
)
# 更新icon
if
params
.
get
(
"app_icon"
):
condition
=
{
'update_by'
:
user
,
'update_at'
:
datetime
.
now
()
}
if
params
.
get
(
"app_icon"
)
.
get
(
"filename"
):
condition
.
update
({
"title"
:
params
.
get
(
"app_icon"
)
.
get
(
"filename"
)})
if
params
.
get
(
"app_icon"
)
.
get
(
"filepath"
):
condition
.
update
({
"path"
:
params
.
get
(
"app_icon"
)
.
get
(
"filepath"
)})
if
params
.
get
(
"app_icon"
)
.
get
(
"filesize"
):
condition
.
update
({
"size"
:
params
.
get
(
"app_icon"
)
.
get
(
"filesize"
)})
params
.
pop
(
"app_icon"
)
for
key
,
value
in
params
.
items
():
for
key
,
value
in
params
.
items
():
if
value
!=
None
:
setattr
(
result
,
key
,
value
)
if
value
!=
None
:
setattr
(
app
,
key
,
value
)
result
.
update_by
=
jwt
.
get
(
"id"
,
""
)
app
.
update_by
=
jwt
.
get
(
"id"
,
""
)
result
.
update_date
=
datetime
.
now
()
app
.
update_date
=
datetime
.
now
()
db
.
session
.
commit
()
db
.
session
.
commit
()
return
True
,
ResponseCode
.
HTTP_SUCCESS
return
True
,
ResponseCode
.
HTTP_SUCCESS
else
:
else
:
...
...
tools/build_out/controllers/area.py
View file @
8d66a5dd
'''
'''
Author: your name
Author: your name
Date: 2021-06-30 18:03:41
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-
09 16:35:34
LastEditTime: 2021-07-
12 11:31:06
LastEditors:
your name
LastEditors:
Please set LastEditors
Description: In User Settings Edit
Description: In User Settings Edit
FilePath:
\
evm-store
\t
ools
\b
uild_out
\
controllers
\a
rea.py
FilePath:
\
evm-store
\t
ools
\b
uild_out
\
controllers
\a
rea.py
'''
'''
...
@@ -10,7 +10,7 @@ from datetime import datetime
...
@@ -10,7 +10,7 @@ from datetime import datetime
from
application.app
import
db
from
application.app
import
db
from
models.area
import
AreaModel
from
models.area
import
AreaModel
from
webcreator.log
import
logger
from
webcreator.log
import
logger
from
webcreator.response
import
ResponseCode
,
response_result
from
webcreator.response
import
ResponseCode
class
AreaResource
(
object
):
class
AreaResource
(
object
):
def
__init__
(
self
):
def
__init__
(
self
):
...
...
tools/build_out/controllers/login.py
View file @
8d66a5dd
...
@@ -3,9 +3,7 @@
...
@@ -3,9 +3,7 @@
import
json
import
json
from
datetime
import
datetime
from
datetime
import
datetime
from
flask_jwt_extended
import
(
from
flask_jwt_extended
import
(
create_access_token
,)
jwt_required
,
get_jwt_identity
,
create_access_token
)
from
application.app
import
db
from
application.app
import
db
from
models.login
import
LoginModel
from
models.login
import
LoginModel
from
models.user
import
UserModel
from
models.user
import
UserModel
...
...
tools/build_out/controllers/package.py
View file @
8d66a5dd
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-12 11:11:49
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath:
\
evm-store
\t
ools
\b
uild_out
\
controllers
\
package.py
'''
#!/usr/bin/env python
#!/usr/bin/env python
# -*- coding: utf_8 -*-
# -*- coding: utf_8 -*-
import
os
import
re
import
shutil
from
datetime
import
datetime
from
datetime
import
datetime
from
application.app
import
db
from
application.app
import
db
,
config
from
models.annex
import
AnnexModel
from
models.app
import
AppModel
from
models.user
import
UserModel
from
models.package
import
PackageModel
from
models.package
import
PackageModel
from
webcreator.utils.epk
import
EpkApp
from
webcreator.log
import
logger
from
webcreator.log
import
logger
from
webcreator.response
import
ResponseCode
,
response_result
from
webcreator.response
import
ResponseCode
class
PackageResource
(
object
):
class
PackageResource
(
object
):
def
__init__
(
self
):
def
__init__
(
self
):
...
@@ -27,21 +42,102 @@ class PackageResource(object):
...
@@ -27,21 +42,102 @@ class PackageResource(object):
if
result
:
if
result
:
return
result
,
ResponseCode
.
HTTP_SUCCESS
return
result
,
ResponseCode
.
HTTP_SUCCESS
return
None
,
ResponseCode
.
HTTP_NOT_FOUND
user
=
UserModel
.
query
.
filter
(
id
=
params
.
get
(
'user'
))
.
onr_or_none
()
if
not
user
:
return
False
,
ResponseCode
.
USER_NOT_EXISTS
temp
=
{}
if
user
.
role
==
"administrator"
:
temp
.
update
({
"is_delete"
:
False
})
else
:
temp
.
update
({
"create_by"
:
user
.
id
,
"is_delete"
:
False
})
if
"scope_type"
in
params
and
params
.
get
(
"scope_type"
)
==
"list"
:
result
=
PackageModel
.
query
.
filter_by
(
**
temp
)
.
order_by
(
PackageModel
.
create_at
.
desc
())
temp
=
[]
for
item
in
result
:
temp
.
append
({
"name"
:
item
.
app
.
app_name
,
"uuid"
:
str
(
item
.
uuid
)
})
return
temp
,
len
(
temp
),
"get build_logs {}."
.
format
(
"success"
if
temp
else
"fail"
)
result
=
PackageModel
.
query
.
filter_by
(
**
temp
)
.
order_by
(
PackageModel
.
create_at
.
desc
())
.
paginate
(
params
.
get
(
"pagenum"
,
1
),
params
.
get
(
"pagesize"
,
10
),
error_out
=
False
)
if
result
.
total
and
len
(
result
.
items
):
temp
=
[]
for
item
in
result
.
items
:
t
=
item
.
to_dict
()
t
.
update
({
"create_at"
:
item
.
create_at
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
if
item
.
create_at
else
None
,
"update_at"
:
item
.
update_at
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
if
item
.
update_at
else
None
,
})
temp
.
append
(
t
)
return
(
temp
,
result
.
total
),
ResponseCode
.
HTTP_SUCCESS
return
result
,
ResponseCode
.
HTTP_NO_DATA
def
post
(
self
,
params
,
jwt
=
{}):
def
post
(
self
,
params
,
jwt
=
{}):
# 判断用户是否存在
user
=
UserModel
.
query
.
filter
(
UserModel
.
id
==
params
.
get
(
'user'
))
if
not
user
:
return
False
,
ResponseCode
.
USER_NOT_EXISTS
# 判断app是否存在
app
=
AppModel
.
query
.
filter
(
AppModel
.
id
==
params
.
get
(
"app"
))
if
not
app
:
return
False
,
ResponseCode
.
HTTP_NOT_FOUND
# 根据应用查找有哪些源文件
source_files
=
AnnexModel
.
query
.
filter
(
AnnexModel
.
app
==
app
.
id
)
.
all
()
if
not
source_files
:
return
None
,
ResponseCode
.
HTTP_NO_DATA
dir_format
=
"{}-{}-{}"
.
format
(
app
.
app_name
,
app
.
app_version
,
datetime
.
now
()
.
strftime
(
"
%
Y
%
m
%
d
%
H
%
M
%
S"
))
upload_dir
=
os
.
sep
.
join
([
config
.
UPLOAD_ROOT_DIR
,
"uploads"
,
"evueapps"
])
target_dir
=
os
.
sep
.
join
([
upload_dir
,
user
.
account
,
dir_format
])
dest_dir
=
os
.
sep
.
join
([
target_dir
,
"src"
])
if
not
os
.
path
.
exists
(
dest_dir
):
os
.
makedirs
(
dest_dir
)
app_files
=
[]
for
sf
in
source_files
:
target_file
=
os
.
sep
.
join
([
config
.
UPLOAD_ROOT_DIR
,
sf
.
path
])
filename
=
os
.
path
.
basename
(
target_file
)
name
,
suffix
=
os
.
path
.
splitext
(
filename
)
name
=
re
.
sub
(
r"_\d{14}$"
,
""
,
name
)
dst_file
=
os
.
path
.
normpath
(
os
.
sep
.
join
([
dest_dir
,
name
+
suffix
]))
shutil
.
move
(
os
.
path
.
normpath
(
target_file
),
dst_file
)
app_files
.
append
([
sf
.
id
,
dst_file
])
# 打包成EPK文件
app_info
=
{}
params
=
{
'appName'
:
app
.
app_name
,
'appDir'
:
dest_dir
,
'appVersion'
:
app
.
app_version
,
'output'
:
target_dir
}
if
user
.
role
==
"administrator"
or
user
.
role
==
"community"
:
params
[
'algorithm'
]
=
"h"
epk
=
EpkApp
(
**
params
)
app_info
=
epk
.
pack
()
if
app_info
:
app_info
[
'md5'
]
=
str
(
app_info
[
'md5'
])
# 更新数据库对应文件路径
# for sf in source_files:
# for af in app_files:
# if sf.id == af[0]:
# t = os.path.normpath(af[1].replace(config.UPLOAD_ROOT_DIR, "")).replace('\\', '/')
# sf.set(path=t)
# db.session.flush()
# db.session.commit()
epk_path
=
os
.
sep
.
join
([
target_dir
.
replace
(
config
.
UPLOAD_ROOT_DIR
,
""
),
"{}.epk"
.
format
(
app
.
app_name
)])
.
replace
(
'
\\
'
,
'/'
)
# handle business
# handle business
result
=
PackageModel
.
query
.
filter
(
PackageModel
.
app
==
params
.
get
(
'app'
))
.
first
()
#
result = PackageModel.query.filter(PackageModel.app == params.get('app')).first()
if
result
and
result
.
is_delete
:
#
if result and result.is_delete:
result
.
is_delete
=
False
#
result.is_delete = False
result
.
update_by
=
jwt
.
get
(
"id"
,
""
)
#
result.update_by = jwt.get("id", "")
result
.
update_date
=
datetime
.
now
()
#
result.update_date = datetime.now()
db
.
session
.
commit
()
#
db.session.commit()
return
True
,
ResponseCode
.
HTTP_SUCCESS
#
return True, ResponseCode.HTTP_SUCCESS
elif
result
and
result
.
is_delete
==
False
:
#
elif result and result.is_delete == False:
return
False
,
ResponseCode
.
HTTP_INVAILD_REQUEST
#
return False, ResponseCode.HTTP_INVAILD_REQUEST
result
=
PackageModel
(
**
params
)
result
=
PackageModel
(
app
=
app
.
id
,
file_path
=
epk_path
,
package_info
=
app_info
,
app_version
=
params
.
get
(
"app_version"
),
create_by
=
user
.
id
,
create_at
=
datetime
.
now
(),
update_by
=
user
.
id
,
update_at
=
datetime
.
now
()
)
db
.
session
.
add
(
result
)
db
.
session
.
add
(
result
)
db
.
session
.
commit
()
db
.
session
.
commit
()
return
True
,
ResponseCode
.
HTTP_SUCCESS
return
True
,
ResponseCode
.
HTTP_SUCCESS
...
...
tools/build_out/controllers/user.py
View file @
8d66a5dd
'''
Author: your name
Date: 2021-06-30 18:03:41
LastEditTime: 2021-07-12 11:32:08
LastEditors: your name
Description: In User Settings Edit
FilePath:
\
evm-store
\t
ools
\b
uild_out
\
controllers
\
user.py
'''
#!/usr/bin/env python
#!/usr/bin/env python
# -*- coding: utf_8 -*-
# -*- coding: utf_8 -*-
...
@@ -5,7 +13,7 @@ from datetime import datetime
...
@@ -5,7 +13,7 @@ from datetime import datetime
from
application.app
import
db
from
application.app
import
db
from
models.user
import
UserModel
from
models.user
import
UserModel
from
webcreator.log
import
logger
from
webcreator.log
import
logger
from
webcreator.response
import
ResponseCode
,
response_result
from
webcreator.response
import
ResponseCode
class
UserResource
(
object
):
class
UserResource
(
object
):
def
__init__
(
self
):
def
__init__
(
self
):
...
...
tools/build_out/models/app.py
View file @
8d66a5dd
...
@@ -40,7 +40,7 @@ class AppModel(PrimaryModel):
...
@@ -40,7 +40,7 @@ class AppModel(PrimaryModel):
def
__repr__
(
self
):
def
__repr__
(
self
):
return
'<AppModel
%
r>'
%
(
self
.
app_name
)
return
'<AppModel
%
r>'
%
(
self
.
app_name
)
def
to_
json
(
self
):
def
to_
dict
(
self
):
return
{
return
{
'app_name'
:
self
.
app_name
,
'app_name'
:
self
.
app_name
,
'app_icon'
:
self
.
app_icon
,
'app_icon'
:
self
.
app_icon
,
...
...
tools/build_out/models/area.py
View file @
8d66a5dd
...
@@ -31,7 +31,7 @@ class AreaModel(PrimaryModel):
...
@@ -31,7 +31,7 @@ class AreaModel(PrimaryModel):
def
__repr__
(
self
):
def
__repr__
(
self
):
return
'<AreaModel
%
r>'
%
(
self
.
areaCode
)
return
'<AreaModel
%
r>'
%
(
self
.
areaCode
)
def
to_
json
(
self
):
def
to_
dict
(
self
):
return
{
return
{
'areaCode'
:
self
.
areaCode
,
'areaCode'
:
self
.
areaCode
,
'areaName'
:
self
.
areaName
,
'areaName'
:
self
.
areaName
,
...
...
tools/build_out/models/login.py
View file @
8d66a5dd
...
@@ -41,7 +41,7 @@ class LoginModel(PrimaryModel):
...
@@ -41,7 +41,7 @@ class LoginModel(PrimaryModel):
def
__repr__
(
self
):
def
__repr__
(
self
):
return
'<LoginModel
%
r>'
%
(
self
.
user
)
return
'<LoginModel
%
r>'
%
(
self
.
user
)
def
to_
json
(
self
):
def
to_
dict
(
self
):
return
{
return
{
'login_at'
:
self
.
login_at
,
'login_at'
:
self
.
login_at
,
'user_agent'
:
self
.
user_agent
,
'user_agent'
:
self
.
user_agent
,
...
...
tools/build_out/models/package.py
View file @
8d66a5dd
...
@@ -50,7 +50,7 @@ class PackageModel(PrimaryModel):
...
@@ -50,7 +50,7 @@ class PackageModel(PrimaryModel):
def
__repr__
(
self
):
def
__repr__
(
self
):
return
'<PackageModel
%
r>'
%
(
self
.
app
)
return
'<PackageModel
%
r>'
%
(
self
.
app
)
def
to_
json
(
self
):
def
to_
dict
(
self
):
return
{
return
{
'app_version'
:
self
.
app_version
,
'app_version'
:
self
.
app_version
,
'package_info'
:
self
.
package_info
,
'package_info'
:
self
.
package_info
,
...
...
tools/build_out/models/user.py
View file @
8d66a5dd
...
@@ -39,7 +39,7 @@ class UserModel(PrimaryModel):
...
@@ -39,7 +39,7 @@ class UserModel(PrimaryModel):
def
__repr__
(
self
):
def
__repr__
(
self
):
return
'<UserModel
%
r>'
%
(
self
.
username
)
return
'<UserModel
%
r>'
%
(
self
.
username
)
def
to_
json
(
self
):
def
to_
dict
(
self
):
return
{
return
{
'username'
:
self
.
username
,
'username'
:
self
.
username
,
'account'
:
self
.
account
,
'account'
:
self
.
account
,
...
...
tools/templates/model.tpl
View file @
8d66a5dd
...
@@ -31,7 +31,7 @@ class {{ config['name'] | letterUpper }}Model(PrimaryModel):
...
@@ -31,7 +31,7 @@ class {{ config['name'] | letterUpper }}Model(PrimaryModel):
def __repr__(self):
def __repr__(self):
return '
<
{{
config
['
name
']
|
letterUpper
}}
Model
%
r
>
' % (self.{{ config['model']['fields'][0]["name"] }})
return '
<
{{
config
['
name
']
|
letterUpper
}}
Model
%
r
>
' % (self.{{ config['model']['fields'][0]["name"] }})
def to_
json
(self):
def to_
dict
(self):
return {
return {
{%- for item in config['model']['fields'] %}
{%- for item in config['model']['fields'] %}
{%- if item.get("toJson") %}
{%- if item.get("toJson") %}
...
...
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