Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webserver_nangaoclub
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
张逸博
webserver_nangaoclub
Commits
3a720bf4
Commit
3a720bf4
authored
Apr 09, 2024
by
zhangyibo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
我也不知道改了什么2024.04.09
parent
450e8544
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
203 additions
and
44 deletions
+203
-44
app.py
app.py
+200
-44
models.py
models.py
+3
-0
No files found.
app.py
View file @
3a720bf4
import
os
from
flask
import
Flask
,
render_template
,
redirect
,
url_for
,
request
from
flask
import
Flask
,
render_template
,
redirect
,
url_for
,
request
from
flask_login
import
LoginManager
,
UserMixin
,
login_user
,
logout_user
,
login_required
,
current_user
from
flask_login
import
LoginManager
,
UserMixin
,
login_user
,
logout_user
,
login_required
,
current_user
from
models
import
db
,
User
,
SQLAlchemy
,
Games
,
SeasonPlayers
,
Seasons
from
models
import
db
,
User
,
SQLAlchemy
,
Games
,
SeasonPlayers
,
Seasons
from
sqlalchemy
import
desc
,
or_
,
and_
from
sqlalchemy
import
desc
,
or_
,
and_
from
werkzeug.utils
import
secure_filename
import
datetime
import
datetime
import
uuid
# import json
# import json
current_season
=
1
current_season
=
1
...
@@ -102,7 +105,71 @@ def register():
...
@@ -102,7 +105,71 @@ def register():
def
get_current_user
():
# 获取当前登录用户信息
def
get_current_user
():
# 获取当前登录用户信息
if
current_user
==
None
:
if
current_user
==
None
:
return
{
"status"
:
"LOGOUT"
}
return
{
"status"
:
"LOGOUT"
}
return
{
"status"
:
"SUCCESS"
,
"user_id"
:
current_user
.
id
,
"username"
:
current_user
.
username
,
"is_su"
:
current_user
.
is_su
,
"is_member"
:
current_user
.
is_member
,
"real_name"
:
current_user
.
real_name
,
"profile_file"
:
current_user
.
profile_file
}
return
{
"status"
:
"SUCCESS"
,
"user_id"
:
current_user
.
id
,
"username"
:
current_user
.
username
,
"is_su"
:
current_user
.
is_su
,
"is_member"
:
current_user
.
is_member
,
"real_name"
:
current_user
.
real_name
,
"profile_file"
:
current_user
.
profile_file
,
"background_file"
:
current_user
.
background_file
}
@
app
.
route
(
'/api/setAvatar'
,
methods
=
[
'POST'
])
def
set_avatar
():
user_avatar
=
request
.
files
.
get
(
'avatar'
)
extension
=
user_avatar
.
filename
.
split
(
'.'
)[
-
1
]
.
lower
()
if
extension
not
in
[
'jpg'
,
'gif'
,
'png'
,
'jepg'
]:
return
{
"status"
:
"FAILED"
}
unique_filename
=
str
(
uuid
.
uuid4
())
+
'.'
+
extension
filename
=
secure_filename
(
unique_filename
)
user_avatar
.
save
(
os
.
path
.
join
(
"/home/zyb/clubdata/avatar/"
,
filename
))
user
=
User
.
query
.
filter_by
(
id
=
current_user
.
get_id
())
.
first
()
user
.
profile_file
=
"/avatar/"
+
filename
try
:
db
.
session
.
commit
()
return
{
"status"
:
"SUCCESS"
,
"new_avatar_path"
:
"/avatar/"
+
filename
}
except
:
db
.
session
.
rollback
()
return
{
"status"
:
"FAILED"
}
@
app
.
route
(
'/api/setBackground'
,
methods
=
[
'POST'
])
def
set_background
():
user_background
=
request
.
files
.
get
(
'background'
)
extension
=
user_background
.
filename
.
split
(
'.'
)[
-
1
]
.
lower
()
if
extension
not
in
[
'jpg'
,
'gif'
,
'png'
,
'jepg'
]:
return
{
"status"
:
"FAILED"
}
unique_filename
=
str
(
uuid
.
uuid4
())
+
'.'
+
extension
filename
=
secure_filename
(
unique_filename
)
user_background
.
save
(
os
.
path
.
join
(
"/home/zyb/clubdata/userBackground/"
,
filename
))
user
=
User
.
query
.
filter_by
(
id
=
current_user
.
get_id
())
.
first
()
user
.
background_file
=
"/userBackground/"
+
filename
try
:
db
.
session
.
commit
()
return
{
"status"
:
"SUCCESS"
,
"new_background_path"
:
"/userBackground/"
+
filename
}
except
:
db
.
session
.
rollback
()
return
{
"status"
:
"FAILED"
}
# @app.route('/api/winrate', methods=['GET'])
# def winrate():
# user_id = current_user.id
# total_games = Games.query.filter(or_(Games.player1_id == user_id, Games.player2_id == user_id)).count()
# if total_games == 0:
# return {'status': 'SUCCESS', 'winrate': 0.0}
# wins = Games.query.filter(((Games.player1_id == user_id) & (Games.score1 > Games.score2)) |
# ((Games.player2_id == user_id) & (Games.score2 > Games.score1))).count()
# winrate = (wins / total_games) * 100
# return {'status': 'SUCCESS', 'winrate': int(winrate)}
@
app
.
route
(
'/api/setUserinform'
,
methods
=
[
'POST'
])
def
set_userinform
():
data
=
request
.
get_json
()
username
=
data
.
get
(
'user_name'
)
psword
=
data
.
get
(
"user_password"
)
user
=
User
.
query
.
filter_by
(
id
=
current_user
.
get_id
())
.
first
()
if
username
!=
None
:
user
.
username
=
username
if
psword
!=
None
:
user
.
password
=
psword
try
:
db
.
session
.
commit
()
return
{
"status"
:
"SUCCESS"
}
except
:
db
.
session
.
rollback
()
return
{
"status"
:
"FAILED"
}
@
app
.
route
(
'/api/setMembers'
,
methods
=
[
'POST'
])
@
app
.
route
(
'/api/setMembers'
,
methods
=
[
'POST'
])
def
su_set_members
():
def
su_set_members
():
...
@@ -130,50 +197,51 @@ def su_set_members():
...
@@ -130,50 +197,51 @@ def su_set_members():
@
app
.
route
(
'/api/games'
,
methods
=
[
'GET'
])
@
app
.
route
(
'/api/games'
,
methods
=
[
'GET'
])
def
get_games
():
# 获取最近比赛列表
def
get_games
():
# 获取最近比赛列表
season_id
=
request
.
args
.
get
(
"season_id"
)
season_id
=
request
.
args
.
get
(
"season_id"
)
pages
=
request
.
args
.
get
(
"pages"
)
#
pages = request.args.get("pages")
player
=
request
.
args
.
get
(
"player"
)
player
=
request
.
args
.
get
(
"player"
)
if
season_id
==
"0"
:
if
season_id
==
"0"
:
season_id
=
current_season
season_id
=
current_season
if
pages
is
None
:
#
if pages is None:
return
{
"status"
:
"FAILED"
}
#
return {"status":"FAILED"}
else
:
#
else:
pages
=
int
(
pages
)
#
pages = int(pages)
# games = Games.query.all()
# games = Games.query.all()
lim
=
10
#
lim = 10
if
season_id
is
None
and
player
is
None
:
if
season_id
is
None
and
player
is
None
:
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
slice
((
pages
-
1
)
*
lim
,(
pages
)
*
lim
)
.
all
()
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
all
()
elif
season_id
is
not
None
and
player
is
None
:
elif
season_id
is
not
None
and
player
is
None
:
season_id
=
int
(
season_id
)
season_id
=
int
(
season_id
)
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
Games
.
season_id
==
season_id
)
.
slice
((
pages
-
1
)
*
lim
,(
pages
)
*
lim
)
.
all
()
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
Games
.
season_id
==
season_id
)
.
all
()
elif
season_id
is
None
and
player
is
not
None
:
elif
season_id
is
None
and
player
is
not
None
:
player
=
int
(
player
)
player
=
int
(
player
)
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
or_
(
Games
.
player1_id
==
player
,
Games
.
player2_id
==
player
))
.
slice
((
pages
-
1
)
*
lim
,(
pages
)
*
lim
)
.
all
()
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
or_
(
Games
.
player1_id
==
player
,
Games
.
player2_id
==
player
))
.
all
()
elif
season_id
is
not
None
and
player
is
not
None
:
elif
season_id
is
not
None
and
player
is
not
None
:
season_id
=
int
(
season_id
)
season_id
=
int
(
season_id
)
player
=
int
(
player
)
player
=
int
(
player
)
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
and_
(
Games
.
season_id
==
season_id
,
or_
(
Games
.
player1_id
==
player
,
Games
.
player2_id
==
player
)))
.
slice
((
pages
-
1
)
*
lim
,(
pages
)
*
lim
)
.
all
()
games
=
Games
.
query
.
order_by
(
desc
(
Games
.
game_date
))
.
filter
(
and_
(
Games
.
season_id
==
season_id
,
or_
(
Games
.
player1_id
==
player
,
Games
.
player2_id
==
player
)))
.
all
()
else
:
else
:
return
{
"status"
:
"FAILED"
}
return
{
"status"
:
"FAILED"
}
game_list
=
[]
game_list
=
[]
for
game
in
games
:
for
game
in
games
:
game_info
=
{}
if
game
.
enable
==
True
:
game_info
[
'id'
]
=
game
.
id
game_info
=
{}
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M'
)
game_info
[
'id'
]
=
game
.
id
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y/
%
m/
%
d'
)
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'score1'
]
=
game
.
score1
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
game_info
[
'player2_id'
]
=
game
.
player2_id
game_info
[
'score1'
]
=
game
.
score1
game_info
[
'player2_real_name'
]
=
game
.
player2
.
real_name
game_info
[
'player2_id'
]
=
game
.
player2_id
game_info
[
'player2_profile_file'
]
=
game
.
player2
.
profile_file
game_info
[
'player2_real_name'
]
=
game
.
player2
.
real_name
game_info
[
'score2'
]
=
game
.
score2
game_info
[
'player2_profile_file'
]
=
game
.
player2
.
profile_file
game_info
[
'season_name'
]
=
game
.
season
.
season_name
game_info
[
'score2'
]
=
game
.
score2
game_list
.
append
(
game_info
)
game_info
[
'season_name'
]
=
game
.
season
.
season_name
game_list
.
append
(
game_info
)
return
{
"status"
:
"SUCCESS"
,
"Games"
:
game_list
}
return
{
"status"
:
"SUCCESS"
,
"Games"
:
game_list
}
...
@@ -191,7 +259,7 @@ def get_game_detail(): # 获取比赛详情
...
@@ -191,7 +259,7 @@ def get_game_detail(): # 获取比赛详情
game_info
[
"status"
]
=
"SUCCESS"
game_info
[
"status"
]
=
"SUCCESS"
game_info
[
'id'
]
=
game
.
id
game_info
[
'id'
]
=
game
.
id
# game_info['game_date'] = str(game.game_date)
# game_info['game_date'] = str(game.game_date)
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
-
%
m-
%
d
%
H:
%
M
'
)
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
/
%
m/
%
d
'
)
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
...
@@ -205,11 +273,11 @@ def get_game_detail(): # 获取比赛详情
...
@@ -205,11 +273,11 @@ def get_game_detail(): # 获取比赛详情
game_info
[
'laucher_id'
]
=
game
.
laucher_id
game_info
[
'laucher_id'
]
=
game
.
laucher_id
game_info
[
'laucher_real_name'
]
=
game
.
laucher
.
real_name
game_info
[
'laucher_real_name'
]
=
game
.
laucher
.
real_name
game_info
[
'laucher_profile_file'
]
=
game
.
laucher
.
profile_file
game_info
[
'laucher_profile_file'
]
=
game
.
laucher
.
profile_file
game_info
[
'lauch_date'
]
=
game
.
lauch_date
.
strftime
(
'
%
Y
-
%
m-
%
d
%
H:
%
M
'
)
game_info
[
'lauch_date'
]
=
game
.
lauch_date
.
strftime
(
'
%
Y
/
%
m/
%
d
'
)
game_info
[
'confirmer_id'
]
=
game
.
confirmer_id
game_info
[
'confirmer_id'
]
=
game
.
confirmer_id
game_info
[
'confirmer_real_name'
]
=
game
.
confirmer
.
real_name
game_info
[
'confirmer_real_name'
]
=
game
.
confirmer
.
real_name
game_info
[
'confirmer_profile_file'
]
=
game
.
confirmer
.
profile_file
game_info
[
'confirmer_profile_file'
]
=
game
.
confirmer
.
profile_file
game_info
[
'confirm_date'
]
=
game
.
confirm_date
.
strftime
(
'
%
Y
-
%
m-
%
d
%
H:
%
M
'
)
game_info
[
'confirm_date'
]
=
game
.
confirm_date
.
strftime
(
'
%
Y
/
%
m/
%
d
'
)
game_info
[
'game_type'
]
=
game
.
game_type
game_info
[
'game_type'
]
=
game
.
game_type
return
game_info
return
game_info
...
@@ -218,22 +286,15 @@ def get_game_detail(): # 获取比赛详情
...
@@ -218,22 +286,15 @@ def get_game_detail(): # 获取比赛详情
@
app
.
route
(
'/api/players'
,
methods
=
[
'GET'
])
@
app
.
route
(
'/api/players'
,
methods
=
[
'GET'
])
def
get_players
():
# 获取队员(赛季积分排序)
def
get_players
():
# 获取队员(赛季积分排序)
season_id
=
request
.
args
.
get
(
"season_id"
)
season_id
=
request
.
args
.
get
(
"season_id"
)
pages
=
request
.
args
.
get
(
"pages"
)
myplayer_id
=
request
.
args
.
get
(
"player_id"
)
lim
=
10
if
season_id
is
None
:
if
season_id
is
None
:
season_id
=
current_season
season_id
=
current_season
else
:
else
:
season_id
=
int
(
season_id
)
season_id
=
int
(
season_id
)
if
myplayer_id
==
None
:
if
pages
is
None
:
players
=
SeasonPlayers
.
query
.
filter_by
(
season_id
=
season_id
)
.
order_by
(
desc
(
SeasonPlayers
.
score
))
.
all
()
return
{
"status"
:
"FAILED"
}
else
:
else
:
pages
=
int
(
pages
)
players
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
season_id
,
SeasonPlayers
.
player_id
==
myplayer_id
))
.
all
()
players
=
SeasonPlayers
.
query
.
filter_by
(
season_id
=
season_id
)
.
order_by
(
desc
(
SeasonPlayers
.
score
))
.
slice
((
pages
-
1
)
*
lim
,(
pages
)
*
lim
)
.
all
()
player_list
=
[]
player_list
=
[]
for
player
in
players
:
for
player
in
players
:
player_info
=
{}
player_info
=
{}
...
@@ -244,18 +305,20 @@ def get_players(): # 获取队员(赛季积分排序)
...
@@ -244,18 +305,20 @@ def get_players(): # 获取队员(赛季积分排序)
player_info
[
'player_id'
]
=
player
.
player_id
player_info
[
'player_id'
]
=
player
.
player_id
player_info
[
'player_real_name'
]
=
player
.
player
.
real_name
player_info
[
'player_real_name'
]
=
player
.
player
.
real_name
player_info
[
'player_profile_file'
]
=
player
.
player
.
profile_file
player_info
[
'player_profile_file'
]
=
player
.
player
.
profile_file
player_info
[
'winrate'
]
=
player
.
winrate
player_info
[
'total_games'
]
=
player
.
total_games
player_list
.
append
(
player_info
)
player_list
.
append
(
player_info
)
return
{
"status"
:
"SUCCESS"
,
"Players"
:
player_list
}
return
{
"status"
:
"SUCCESS"
,
"Players"
:
player_list
}
@
app
.
route
(
'/api/lauchGame'
,
methods
=
[
'POST'
])
@
app
.
route
(
'/api/lau
n
chGame'
,
methods
=
[
'POST'
])
def
lauch_game
():
# 发起比赛
def
lauch_game
():
# 发起比赛
game_info
=
request
.
get_json
()
game_info
=
request
.
get_json
()
new_game
=
Games
()
new_game
=
Games
()
new_game
.
game_type
=
1
new_game
.
game_type
=
1
new_game
.
game_date
=
datetime
.
datetime
.
strptime
(
game_info
[
'game_date'
],
"
%
Y
-
%
m-
%
d
%
H:
%
M
"
)
# 时间转换
new_game
.
game_date
=
datetime
.
datetime
.
strptime
(
game_info
[
'game_date'
],
"
%
Y
/
%
m/
%
d
"
)
# 时间转换
new_game
.
player1_id
=
game_info
.
get
(
'player1_id'
)
new_game
.
player1_id
=
game_info
.
get
(
'player1_id'
)
new_game
.
score1
=
game_info
.
get
(
'score1'
)
new_game
.
score1
=
game_info
.
get
(
'score1'
)
new_game
.
player2_id
=
game_info
.
get
(
'player2_id'
)
new_game
.
player2_id
=
game_info
.
get
(
'player2_id'
)
...
@@ -289,8 +352,11 @@ def confirm_game(): # 审核比赛
...
@@ -289,8 +352,11 @@ def confirm_game(): # 审核比赛
if
game_confirm
:
if
game_confirm
:
game
.
confirm_date
=
datetime
.
datetime
.
now
()
game
.
confirm_date
=
datetime
.
datetime
.
now
()
game
.
enable
=
True
game
.
enable
=
True
update_scores
(
game
)
update_winrate
(
game
)
else
:
else
:
game
.
lauch_date
=
None
game
.
lauch_date
=
None
game
.
confirm_date
=
datetime
.
datetime
.
now
()
try
:
try
:
db
.
session
.
commit
()
db
.
session
.
commit
()
return
{
"status"
:
"SUCCESS"
}
return
{
"status"
:
"SUCCESS"
}
...
@@ -298,6 +364,35 @@ def confirm_game(): # 审核比赛
...
@@ -298,6 +364,35 @@ def confirm_game(): # 审核比赛
db
.
session
.
rollback
()
db
.
session
.
rollback
()
return
{
"status"
:
"FAILED"
}
return
{
"status"
:
"FAILED"
}
def
update_scores
(
game
):
if
game
.
score1
>
game
.
score2
:
winner_id
=
game
.
player1_id
elif
game
.
score1
<
game
.
score2
:
winner_id
=
game
.
player2_id
else
:
return
season_player
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
game
.
season_id
,
SeasonPlayers
.
player_id
==
winner_id
))
.
first
()
season_player
.
score
+=
1
try
:
db
.
session
.
commit
()
except
:
db
.
session
.
rollback
()
def
update_winrate
(
game
):
# total_game = Games.query.filter(or_(Games.player1_id == game.player1_id, Games.player2_id == game.player2_id)).count()
season_player1
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
game
.
season_id
,
SeasonPlayers
.
player_id
==
game
.
player1_id
))
.
first
()
season_player2
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
game
.
season_id
,
SeasonPlayers
.
player_id
==
game
.
player2_id
))
.
first
()
season_player1
.
total_games
+=
1
season_player2
.
total_games
+=
1
season_player1
.
winrate
=
int
((
season_player1
.
score
/
season_player1
.
total_games
)
*
100
)
season_player2
.
winrate
=
int
((
season_player2
.
score
/
season_player2
.
total_games
)
*
100
)
try
:
db
.
session
.
commit
()
except
:
db
.
session
.
rollback
()
@
app
.
route
(
'/api/lauchedGames'
,
methods
=
[
'GET'
])
@
app
.
route
(
'/api/lauchedGames'
,
methods
=
[
'GET'
])
def
get_lauched_game
():
# 获取审核中比赛列表
def
get_lauched_game
():
# 获取审核中比赛列表
games
=
Games
.
query
.
filter
(
and_
(
Games
.
confirmer_id
==
current_user
.
id
,
Games
.
confirm_date
==
None
))
.
order_by
(
desc
(
Games
.
lauch_date
))
games
=
Games
.
query
.
filter
(
and_
(
Games
.
confirmer_id
==
current_user
.
id
,
Games
.
confirm_date
==
None
))
.
order_by
(
desc
(
Games
.
lauch_date
))
...
@@ -305,7 +400,7 @@ def get_lauched_game(): # 获取审核中比赛列表
...
@@ -305,7 +400,7 @@ def get_lauched_game(): # 获取审核中比赛列表
for
game
in
games
:
for
game
in
games
:
game_info
=
{}
game_info
=
{}
game_info
[
'id'
]
=
game
.
id
game_info
[
'id'
]
=
game
.
id
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
-
%
m-
%
d
%
H:
%
M
'
)
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
/
%
m/
%
d
'
)
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
...
@@ -320,12 +415,12 @@ def get_lauched_game(): # 获取审核中比赛列表
...
@@ -320,12 +415,12 @@ def get_lauched_game(): # 获取审核中比赛列表
@
app
.
route
(
'/api/myLauchedGames'
,
methods
=
[
'GET'
])
@
app
.
route
(
'/api/myLauchedGames'
,
methods
=
[
'GET'
])
def
get_my_lauched_game
():
# 获取发起审核比赛列表
def
get_my_lauched_game
():
# 获取发起审核比赛列表
games
=
Games
.
query
.
filter
(
and_
(
Games
.
laucher_id
==
current_user
.
id
,
Games
.
enable
==
False
))
.
order_by
(
desc
(
Games
.
game_date
))
games
=
Games
.
query
.
filter
(
and_
(
Games
.
laucher_id
==
current_user
.
id
))
.
order_by
(
desc
(
Games
.
game_date
))
game_list
=
[]
game_list
=
[]
for
game
in
games
:
for
game
in
games
:
game_info
=
{}
game_info
=
{}
game_info
[
'id'
]
=
game
.
id
game_info
[
'id'
]
=
game
.
id
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
-
%
m-
%
d
%
H:
%
M
'
)
game_info
[
'game_date'
]
=
game
.
game_date
.
strftime
(
'
%
Y
/
%
m/
%
d
'
)
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_id'
]
=
game
.
player1_id
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_real_name'
]
=
game
.
player1
.
real_name
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
game_info
[
'player1_profile_file'
]
=
game
.
player1
.
profile_file
...
@@ -335,7 +430,12 @@ def get_my_lauched_game(): # 获取发起审核比赛列表
...
@@ -335,7 +430,12 @@ def get_my_lauched_game(): # 获取发起审核比赛列表
game_info
[
'player2_profile_file'
]
=
game
.
player2
.
profile_file
game_info
[
'player2_profile_file'
]
=
game
.
player2
.
profile_file
game_info
[
'score2'
]
=
game
.
score2
game_info
[
'score2'
]
=
game
.
score2
game_info
[
'season_name'
]
=
game
.
season
.
season_name
game_info
[
'season_name'
]
=
game
.
season
.
season_name
game_info
[
'status'
]
=
'WAITING'
if
game
.
lauch_date
is
not
None
else
"REJECT"
if
game
.
enable
:
game_info
[
'status'
]
=
'PASSED'
elif
game
.
lauch_date
is
not
None
:
game_info
[
'status'
]
=
'WAITING'
else
:
game_info
[
'status'
]
=
"REJECT"
game_list
.
append
(
game_info
)
game_list
.
append
(
game_info
)
return
{
"status"
:
"SUCCESS"
,
"Games"
:
game_list
}
return
{
"status"
:
"SUCCESS"
,
"Games"
:
game_list
}
# @app.after_request
# @app.after_request
...
@@ -346,6 +446,62 @@ def get_my_lauched_game(): # 获取发起审核比赛列表
...
@@ -346,6 +446,62 @@ def get_my_lauched_game(): # 获取发起审核比赛列表
# response.headers.add('Access-Control-Allow-Credentials', 'true')
# response.headers.add('Access-Control-Allow-Credentials', 'true')
# return response
# return response
@
app
.
route
(
'/api/player_ranking'
,
methods
=
[
'GET'
])
def
getplayer_ranking
():
# 获取队员(赛季积分排序)
season_id
=
request
.
args
.
get
(
"season_id"
)
if
season_id
is
None
:
season_id
=
current_season
else
:
season_id
=
int
(
season_id
)
players_1
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
season_id
,
SeasonPlayers
.
group
==
1
))
.
order_by
(
desc
(
SeasonPlayers
.
winrate
))
.
all
()
player_list_1
=
[]
for
player_1
in
players_1
:
player_info
=
{}
player_info
[
'season_id'
]
=
player_1
.
season_id
player_info
[
'season_name'
]
=
player_1
.
season
.
season_name
player_info
[
'score'
]
=
player_1
.
score
player_info
[
'group'
]
=
player_1
.
group
player_info
[
'player_id'
]
=
player_1
.
player_id
player_info
[
'player_real_name'
]
=
player_1
.
player
.
real_name
player_info
[
'player_profile_file'
]
=
player_1
.
player
.
profile_file
player_info
[
'winrate'
]
=
player_1
.
winrate
player_info
[
'total_games'
]
=
player_1
.
total_games
player_list_1
.
append
(
player_info
)
players_2
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
season_id
,
SeasonPlayers
.
group
==
2
))
.
order_by
(
desc
(
SeasonPlayers
.
winrate
))
.
all
()
player_list_2
=
[]
for
player_2
in
players_2
:
player_info
=
{}
player_info
[
'season_id'
]
=
player_2
.
season_id
player_info
[
'season_name'
]
=
player_2
.
season
.
season_name
player_info
[
'score'
]
=
player_2
.
score
player_info
[
'group'
]
=
player_2
.
group
player_info
[
'player_id'
]
=
player_2
.
player_id
player_info
[
'player_real_name'
]
=
player_2
.
player
.
real_name
player_info
[
'player_profile_file'
]
=
player_2
.
player
.
profile_file
player_info
[
'winrate'
]
=
player_2
.
winrate
player_info
[
'total_games'
]
=
player_2
.
total_games
player_list_2
.
append
(
player_info
)
players_3
=
SeasonPlayers
.
query
.
filter
(
and_
(
SeasonPlayers
.
season_id
==
season_id
,
SeasonPlayers
.
group
==
3
))
.
order_by
(
desc
(
SeasonPlayers
.
winrate
))
.
all
()
player_list_3
=
[]
for
player_3
in
players_3
:
player_info
=
{}
player_info
[
'season_id'
]
=
player_3
.
season_id
player_info
[
'season_name'
]
=
player_3
.
season
.
season_name
player_info
[
'score'
]
=
player_3
.
score
player_info
[
'group'
]
=
player_3
.
group
player_info
[
'player_id'
]
=
player_3
.
player_id
player_info
[
'player_real_name'
]
=
player_3
.
player
.
real_name
player_info
[
'player_profile_file'
]
=
player_3
.
player
.
profile_file
player_info
[
'winrate'
]
=
player_3
.
winrate
player_info
[
'total_games'
]
=
player_3
.
total_games
player_list_3
.
append
(
player_info
)
return
{
"status"
:
"SUCCESS"
,
"Group_1"
:
player_list_1
,
"Group_2"
:
player_list_2
,
"Group_3"
:
player_list_3
}
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
with
app
.
app_context
():
with
app
.
app_context
():
db
.
create_all
()
db
.
create_all
()
...
...
models.py
View file @
3a720bf4
...
@@ -11,6 +11,7 @@ class User(db.Model,UserMixin):
...
@@ -11,6 +11,7 @@ class User(db.Model,UserMixin):
is_member
=
db
.
Column
(
db
.
Boolean
,
unique
=
False
,
nullable
=
False
,
default
=
False
)
is_member
=
db
.
Column
(
db
.
Boolean
,
unique
=
False
,
nullable
=
False
,
default
=
False
)
real_name
=
db
.
Column
(
db
.
String
(
80
),
unique
=
False
,
nullable
=
True
)
real_name
=
db
.
Column
(
db
.
String
(
80
),
unique
=
False
,
nullable
=
True
)
profile_file
=
db
.
Column
(
db
.
String
(
120
),
unique
=
False
,
nullable
=
True
)
profile_file
=
db
.
Column
(
db
.
String
(
120
),
unique
=
False
,
nullable
=
True
)
background_file
=
db
.
Column
(
db
.
String
(
120
),
unique
=
False
,
nullable
=
True
)
class
Seasons
(
db
.
Model
):
class
Seasons
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
...
@@ -55,5 +56,7 @@ class SeasonPlayers(db.Model):
...
@@ -55,5 +56,7 @@ class SeasonPlayers(db.Model):
season
=
db
.
relationship
(
"Seasons"
,
foreign_keys
=
[
season_id
])
season
=
db
.
relationship
(
"Seasons"
,
foreign_keys
=
[
season_id
])
score
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
,
default
=
0
)
score
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
,
default
=
0
)
group
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
)
group
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
)
total_games
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
,
default
=
0
)
winrate
=
db
.
Column
(
db
.
Integer
,
unique
=
False
,
nullable
=
False
,
default
=
0
)
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