Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
financial-system
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
xianyang
financial-system
Commits
41ca6def
Commit
41ca6def
authored
Feb 17, 2023
by
xianyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
公会结算接口
parent
b0310bf0
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
84 additions
and
1 deletion
+84
-1
guild.py
app/api/statement/guild.py
+64
-0
views.py
app/api/statement/views.py
+7
-0
recharge.py
models/recharge.py
+13
-1
No files found.
app/api/statement/guild.py
0 → 100644
View file @
41ca6def
import
math
import
threading
import
pandas
as
pd
from
sqlalchemy
import
and_
,
func
from
sqlalchemy.orm
import
Session
from
models.recharge
import
Settlement
locka
=
threading
.
Lock
()
class
GuildSet
(
object
):
def
__init__
(
self
):
self
.
settlement_list
=
[]
def
dispose_guild_data
(
self
,
db
,
num
):
guild_list
=
[]
locka
.
acquire
()
once_res
=
db
.
query
(
Settlement
)
.
filter
()
.
offset
(
num
*
10
)
.
limit
(
10
)
.
all
()
locka
.
release
()
for
i
in
once_res
:
info_dict
=
i
.
to_dict
()
guild_list
.
append
(
info_dict
)
self
.
settlement_list
+=
guild_list
def
query_guild_data
(
self
,
db
):
msg_count
=
db
.
query
(
func
.
count
(
Settlement
.
id
))
.
scalar
()
num
=
math
.
ceil
(
msg_count
/
10
)
# 创建线程
ths
=
[]
for
x
in
range
(
num
):
ths
.
append
(
threading
.
Thread
(
target
=
self
.
dispose_guild_data
,
args
=
[
db
,
x
]))
for
y
in
range
(
num
):
ths
[
y
]
.
start
()
for
z
in
range
(
num
):
ths
[
z
]
.
join
()
return
self
.
settlement_list
def
get_guild_data
(
self
,
db
:
Session
,
param
):
"""公会结算"""
is_guild_filters
=
[]
if
param
.
guild_id
:
is_guild_filters
.
append
(
Settlement
.
guild_id
==
param
.
guild_id
)
if
param
.
status
or
param
.
status
==
0
:
is_guild_filters
.
append
(
Settlement
.
status
==
param
.
status
)
if
param
.
start_time
:
is_guild_filters
.
append
(
Settlement
.
update_time
>=
param
.
start_time
)
if
param
.
end_time
:
is_guild_filters
.
append
(
Settlement
.
update_time
<=
param
.
end_time
)
# 判断有无条件
try
:
if
len
(
is_guild_filters
)
>
0
:
get_user_orm_sql
=
db
.
query
(
Settlement
)
.
filter
(
and_
(
*
is_guild_filters
))
condition_data
=
db
.
execute
(
get_user_orm_sql
)
.
fetchall
()
guild_info
=
[
i
[
0
]
.
to_dict
()
for
i
in
condition_data
]
else
:
guild_info
=
self
.
query_guild_data
(
db
)
except
Exception
as
e
:
print
(
e
)
return
[],
0
# 判断是列表还是导出接口
guild_info
.
reverse
()
if
guild_info
:
return
guild_info
[(
int
(
param
.
page
)
-
1
)
*
param
.
size
:
param
.
size
*
param
.
page
],
len
(
guild_info
)
return
[],
0
app/api/statement/views.py
View file @
41ca6def
...
...
@@ -3,6 +3,7 @@ from app import get_db
from
fastapi
import
Depends
,
APIRouter
from
sqlalchemy.orm
import
Session
from
app.api.statement.crud
import
RechargeStatement
,
WithdrawStatement
from
app.api.statement.guild
import
GuildSet
from
libs.result_format
import
HttpResultResponse
router
=
APIRouter
()
...
...
@@ -35,3 +36,9 @@ def guild_withdrawal_list(data: schemas.GuildWithdrawalList, db: Session = Depen
guild_list
,
total
,
money
,
final_money
=
WithdrawStatement
()
.
get_guild_withdraw_cash
(
db
,
data
)
return
HttpResultResponse
(
total
=
total
,
count
=
float
(
money
),
actual_count
=
final_money
,
data
=
guild_list
)
@
router
.
post
(
"/guild/settlement"
)
def
guild_settlement_list
(
data
:
schemas
.
GuildWithdrawalList
,
db
:
Session
=
Depends
(
get_db
)):
"""公会结算"""
guild_list
,
total
=
GuildSet
()
.
get_guild_data
(
db
,
data
)
return
HttpResultResponse
(
total
=
total
,
data
=
guild_list
)
models/recharge.py
View file @
41ca6def
...
...
@@ -61,4 +61,16 @@ class GuildWC(Base, SerializerMixin):
class
Settlement
(
Base
,
SerializerMixin
):
"""公会结算"""
pass
__tablename__
=
"guild_settlement"
id
=
Column
(
Integer
,
primary_key
=
True
,
index
=
True
)
guild_id
=
Column
(
Integer
,
comment
=
"公会ID"
)
guild_name
=
Column
(
String
(
255
),
comment
=
"公会名称"
)
is_calculate
=
Column
(
String
(
10
),
comment
=
"是否结算"
)
is_settlement
=
Column
(
String
(
10
),
comment
=
"是否结款"
)
status
=
Column
(
Integer
,
comment
=
"状态,0待结算,1待结款,2已完成"
)
all_money
=
Column
(
Float
,
comment
=
"应结款"
)
account
=
Column
(
String
(
255
),
comment
=
"账号"
)
bank_name
=
Column
(
String
(
255
),
comment
=
"开户行名称"
)
bank_no
=
Column
(
String
(
255
),
comment
=
"户头名称"
)
create_time
=
Column
(
DateTime
,
comment
=
"申请结算时间"
)
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