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
2fe2eb4b
Commit
2fe2eb4b
authored
Jun 15, 2021
by
wanli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
fe8c0256
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
158 additions
and
8 deletions
+158
-8
tools/build_out/application/signal_manager.py
tools/build_out/application/signal_manager.py
+1
-0
tools/build_out/controllers/__init__.py
tools/build_out/controllers/__init__.py
+1
-0
tools/build_out/controllers/app.py
tools/build_out/controllers/app.py
+1
-1
tools/build_out/controllers/area.py
tools/build_out/controllers/area.py
+1
-1
tools/build_out/controllers/login.20210615193736.py
tools/build_out/controllers/login.20210615193736.py
+59
-0
tools/build_out/controllers/login.py
tools/build_out/controllers/login.py
+1
-1
tools/build_out/controllers/package.py
tools/build_out/controllers/package.py
+1
-1
tools/build_out/controllers/user.py
tools/build_out/controllers/user.py
+1
-1
tools/build_out/models/login.py
tools/build_out/models/login.py
+12
-0
tools/build_out/views/login.py
tools/build_out/views/login.py
+13
-1
tools/config.json
tools/config.json
+16
-1
tools/gen_code.py
tools/gen_code.py
+50
-0
tools/templates/controller.tpl
tools/templates/controller.tpl
+1
-1
No files found.
tools/build_out/application/signal_manager.py
View file @
2fe2eb4b
...
...
@@ -21,6 +21,7 @@ class SignalManager(object):
actionGetListUser
=
PySignal
()
actionGetUser
=
PySignal
()
actionPutUser
=
PySignal
()
actionPostLogin
=
PySignal
()
actionGetListLogin
=
PySignal
()
actionGetLogin
=
PySignal
()
...
...
tools/build_out/controllers/__init__.py
View file @
2fe2eb4b
...
...
@@ -26,6 +26,7 @@ def initConnect():
signalManager
.
actionGetListUser
.
connect
(
userManager
.
getList
)
signalManager
.
actionGetUser
.
connect
(
userManager
.
get
)
signalManager
.
actionPutUser
.
connect
(
userManager
.
put
)
signalManager
.
actionPostLogin
.
connect
(
loginManager
.
post
)
signalManager
.
actionGetListLogin
.
connect
(
loginManager
.
getList
)
signalManager
.
actionGetLogin
.
connect
(
loginManager
.
get
)
...
...
tools/build_out/controllers/app.py
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class AppResource(object):
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
AppModel
.
query
.
filter
(
AppModel
.
a
reaName
==
params
.
get
(
'areaN
ame'
))
.
first
()
result
=
AppModel
.
query
.
filter
(
AppModel
.
a
pp_name
==
params
.
get
(
'app_n
ame'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
...
...
tools/build_out/controllers/area.py
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class AreaResource(object):
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
AreaModel
.
query
.
filter
(
AreaModel
.
area
Name
==
params
.
get
(
'areaNam
e'
))
.
first
()
result
=
AreaModel
.
query
.
filter
(
AreaModel
.
area
Code
==
params
.
get
(
'areaCod
e'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
...
...
tools/build_out/controllers/login.20210615193736.py
0 → 100644
View file @
2fe2eb4b
from
datetime
import
datetime
from
application.app
import
db
from
models.login
import
LoginModel
from
webcreator.utils
import
ResponseCode
,
response_result
class
LoginResource
(
object
):
def
__init__
(
self
):
super
()
.
__init__
()
def
get
(
self
,
params
):
# handle business
filters
=
[]
result
=
LoginModel
.
query
.
filter
(
*
filters
)
.
order_by
(
LoginModel
.
areaId
)
.
paginate
(
params
.
get
(
'page'
,
1
),
params
.
get
(
'pageSize'
,
10
),
error_out
=
False
)
return
result
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
LoginModel
.
query
.
filter
(
LoginModel
.
user
==
params
.
get
(
'user'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
result
.
update_date
=
datetime
.
now
()
db
.
session
.
commit
()
print
(
params
.
get
(
"account"
),
params
.
get
(
"password"
))
return
response_result
(
ResponseCode
.
OK
)
elif
result
and
result
.
is_delete
==
False
:
return
response_result
(
ResponseCode
.
EXISTS_ERROR
)
result
=
LoginModel
(
**
params
)
db
.
session
.
add
(
result
)
db
.
session
.
commit
()
return
response_result
(
ResponseCode
.
OK
)
def
put
(
self
,
id
,
params
,
jwt
=
None
):
# handle business
result
=
LoginModel
.
query
.
get
(
id
)
if
not
result
:
return
response_result
(
ResponseCode
.
NO_DATA
)
if
params
:
for
key
,
value
in
params
.
items
():
if
value
!=
None
:
setattr
(
result
,
key
,
value
)
result
.
update_by
=
jwt
[
'id'
]
result
.
update_date
=
datetime
.
now
()
db
.
session
.
commit
()
else
:
return
response_result
(
ResponseCode
.
PARAM_NULL
)
def
delete
(
self
,
id
,
jwt
=
None
):
# handle business
result
=
LoginModel
.
query
.
get
(
id
)
if
not
result
:
return
response_result
(
ResponseCode
.
NO_DATA_FOUND
)
else
:
result
.
update_by
=
jwt
[
'id'
]
result
.
update_date
=
datetime
.
now
()
result
.
is_delete
=
True
db
.
session
.
delete
(
result
)
db
.
session
.
commit
()
loginManager
=
LoginResource
()
\ No newline at end of file
tools/build_out/controllers/login.py
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class LoginResource(object):
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
LoginModel
.
query
.
filter
(
LoginModel
.
areaName
==
params
.
get
(
'areaName
'
))
.
first
()
result
=
LoginModel
.
query
.
filter
(
LoginModel
.
user
==
params
.
get
(
'user
'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
...
...
tools/build_out/controllers/package.py
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class PackageResource(object):
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
PackageModel
.
query
.
filter
(
PackageModel
.
a
reaName
==
params
.
get
(
'areaName
'
))
.
first
()
result
=
PackageModel
.
query
.
filter
(
PackageModel
.
a
pp
==
params
.
get
(
'app
'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
...
...
tools/build_out/controllers/user.py
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class UserResource(object):
def
post
(
self
,
params
,
jwt
=
None
):
# handle business
result
=
UserModel
.
query
.
filter
(
UserModel
.
a
reaName
==
params
.
get
(
'areaN
ame'
))
.
first
()
result
=
UserModel
.
query
.
filter
(
UserModel
.
a
pp_name
==
params
.
get
(
'app_n
ame'
))
.
first
()
if
result
and
result
.
is_delete
:
result
.
is_delete
=
False
result
.
update_by
=
jwt
[
'id'
]
...
...
tools/build_out/models/login.py
View file @
2fe2eb4b
...
...
@@ -39,6 +39,18 @@ class LoginModel(PrimaryModel):
}
class
PostLoginSchema
(
ma
.
SQLAlchemySchema
):
class
Meta
:
# unknown = INCLUDE # 未知字段默认包含
# unknown = EXCLUDE # 未知字段默认排除
model
=
LoginModel
account
=
fields
.
String
(
required
=
True
,
length
=
64
)
password
=
fields
.
String
(
required
=
True
,
length
=
64
)
postLoginSchema
=
PostLoginSchema
()
postLoginsSchema
=
PostLoginSchema
(
many
=
True
)
class
GetListLoginSchema
(
ma
.
SQLAlchemySchema
):
class
Meta
:
# unknown = INCLUDE # 未知字段默认包含
...
...
tools/build_out/views/login.py
View file @
2fe2eb4b
...
...
@@ -3,7 +3,7 @@ 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.login
import
getListLoginSchema
,
getLoginSchema
from
models.login
import
postLoginSchema
,
getListLoginSchema
,
getLoginSchema
from
webcreator.response
import
ResponseCode
,
response_result
class
LoginResourceList
(
Resource
):
...
...
@@ -29,6 +29,18 @@ class LoginResourceList(Resource):
current_app
.
logger
.
error
(
e
)
return
response_result
(
ResponseCode
.
DB_ERROR
)
def
post
(
self
):
try
:
json_payload
=
request
.
json
data
=
postLoginSchema
.
load
(
json_payload
)
result
=
signalManager
.
actionPostLogin
.
emit
(
**
data
)
json_dumps
=
postLoginSchema
.
dump
(
result
)
return
jsonify
(
json_dumps
),
200
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
response_result
(
ResponseCode
.
DB_ERROR
)
class
LoginResource
(
Resource
):
def
__init__
(
self
):
pass
...
...
tools/config.json
View file @
2fe2eb4b
...
...
@@ -997,7 +997,22 @@
"path"
:
""
,
"endpoint"
:
""
,
"params"
:
[
{
"name"
:
"account"
,
"dataType"
:
"String"
,
"location"
:
"args"
,
"length"
:
64
,
"default"
:
null
,
"required"
:
true
},
{
"name"
:
"password"
,
"dataType"
:
"String"
,
"location"
:
"args"
,
"length"
:
64
,
"default"
:
null
,
"required"
:
true
}
]
},
"getList"
:
{
...
...
tools/gen_code.py
View file @
2fe2eb4b
...
...
@@ -3,6 +3,8 @@ from jinja2 import Environment, FileSystemLoader
import
json
import
os
import
re
import
hashlib
import
time
'''
流程:
...
...
@@ -11,6 +13,37 @@ import re
三、自动运行项目
'''
# 比较两个文件内容是否相同,这里没有使用md5内容摘要算法,MD5算法的缺点是,针对大文件,计算耗时。虽然咱们这里不存在大文件,但是条条大路通罗马嘛,试试其他方法也挺好。
def
cmp_file
(
file1
,
file2
):
f1
=
os
.
stat
(
file1
)
f2
=
os
.
stat
(
file2
)
if
f1
.
st_size
!=
f2
.
st_size
:
return
False
buf_size
=
8
*
1024
with
open
(
file1
,
"rb"
)
as
fp1
,
open
(
file2
,
"rb"
)
as
fp2
:
while
True
:
buf1
=
fp1
.
read
(
buf_size
)
buf2
=
fp2
.
read
(
buf_size
)
if
buf1
!=
buf2
:
return
False
# 这里表示文件读完了
if
not
buf1
or
not
buf2
:
return
True
def
cmp_md5
(
contnet1
,
content2
):
m1
=
hashlib
.
md5
()
m1
.
update
(
bytearray
(
contnet1
,
'utf-8'
))
m2
=
hashlib
.
md5
()
m2
.
update
(
bytearray
(
content2
,
'utf-8'
))
return
m1
.
hexdigest
()
==
m2
.
hexdigest
()
# 将字符串首字母转换成大写字母
def
convertFirstLetterUpper
(
text_str
):
# return text_str.capitalize()
...
...
@@ -70,13 +103,30 @@ def handleRender(result, tpl, target_file, **kwargs):
jinja_tpl
=
jinja_env
.
get_template
(
tpl
)
content
=
jinja_tpl
.
render
({
"config"
:
result
,
**
kwargs
})
# print("############", output_dir)
target_file
=
os
.
sep
.
join
([
output_dir
,
target_file
])
if
not
os
.
path
.
exists
(
os
.
path
.
dirname
(
target_file
)):
os
.
makedirs
(
os
.
path
.
dirname
(
target_file
))
# 这里需要比较目标文件夹是否已经存在同名文件,如果存在,则需要比较两个文件内容是否一致
# 如果不一致时,则需要给旧的文件打上时间戳,作为备份文件
# 具体流程:
# 先将原来文件重命名,然后新的内容写入到重命名的文件中
# 最后比较两个文件内容是否一致,如果一致,则删除重命名的那个旧的备份文件
tmp_file
=
""
if
os
.
path
.
exists
(
target_file
)
and
os
.
stat
(
target_file
)
.
st_size
>
0
:
n
,
e
=
os
.
path
.
splitext
(
target_file
)
tmp_file
=
"{}.{}{}"
.
format
(
n
,
time
.
strftime
(
"
%
Y
%
m
%
d
%
H
%
M
%
S"
,
time
.
localtime
()),
e
)
os
.
rename
(
target_file
,
tmp_file
)
with
open
(
target_file
,
'w'
,
encoding
=
'utf-8'
)
as
f
:
f
.
write
(
content
)
if
cmp_file
(
tmp_file
,
target_file
)
==
True
:
os
.
remove
(
tmp_file
)
def
parseConfig
(
config
):
# 解析配置文件
for
cfg
in
config
.
get
(
"apis"
):
...
...
tools/templates/controller.tpl
View file @
2fe2eb4b
...
...
@@ -16,7 +16,7 @@ class {{ config['name'] | letterUpper }}Resource(object):
def post(self, params, jwt=None):
# handle business
result = {{ config['name'] | letterUpper }}Model.query.filter({{ config['name'] | letterUpper }}Model.
areaName == params.get('areaName
')).first()
result = {{ config['name'] | letterUpper }}Model.query.filter({{ config['name'] | letterUpper }}Model.
{{ config["model"]["fields"][0]["name"] }} == params.get('{{ config["model"]["fields"][0]["name"] }}
')).first()
if result and result.is_delete:
result.is_delete = False
result.update_by = jwt['id']
...
...
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