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
77b6b2ff
Commit
77b6b2ff
authored
Feb 24, 2023
by
xianyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
账户列表,导出接口
parent
4fe1640e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
22 deletions
+51
-22
crud.py
app/api/account/crud.py
+29
-15
schemas.py
app/api/account/schemas.py
+1
-1
views.py
app/api/account/views.py
+19
-4
account.py
models/account.py
+2
-2
No files found.
app/api/account/crud.py
View file @
77b6b2ff
from
datetime
import
datetime
import
pandas
as
pd
from
sqlalchemy
import
and_
from
sqlalchemy.orm
import
Session
from
app.api.account
import
schemas
...
...
@@ -94,7 +94,7 @@ def update_account_info(db: Session, old_data):
db
.
commit
()
def
get_finance_info
(
db
,
data
):
def
get_finance_info
(
db
,
data
,
is_list
=
None
):
"""账户财务信息"""
finance_condition
=
[]
finance_condition
.
append
(
AccountFinance
.
account_id
==
data
.
aid
)
...
...
@@ -102,16 +102,22 @@ def get_finance_info(db, data):
finance_condition
.
append
(
AccountFinance
.
create_time
>=
data
.
start_time
)
if
data
.
end_time
:
finance_condition
.
append
(
AccountFinance
.
create_time
<=
data
.
end_time
)
if
not
finance_condition
:
query_res
=
db
.
query
(
AccountFinance
)
.
all
()
return
[
i
.
to_dict
()
for
i
in
query_res
][::
-
1
]
try
:
get_finance_orm
=
db
.
query
(
AccountFinance
)
.
filter
(
and_
(
*
finance_condition
))
condition_data
=
db
.
execute
(
get_finance_orm
)
.
fetchall
()
serializer_info
=
[
i
[
0
]
.
to_dict
()
for
i
in
condition_data
]
serializer_info
.
reverse
()
except
Exception
as
e
:
print
(
e
)
return
[],
0
if
is_list
else
[]
# 判断是列表还是导出接口
if
is_list
:
return
serializer_info
[(
int
(
data
.
page
)
-
1
)
*
data
.
size
:
data
.
size
*
data
.
page
],
len
(
serializer_info
)
else
:
get_user_orm_sql
=
db
.
query
(
AccountFinance
)
.
filter
(
and_
(
*
finance_condition
))
query_res
=
db
.
execute
(
get_user_orm_sql
)
.
fetchall
()
return
[
i
[
0
]
.
to_dict
()
for
i
in
query_res
][::
-
1
]
return
serializer_info
def
get_finance_details
(
db
,
data
):
def
get_finance_details
(
db
,
data
,
is_list
=
None
):
"""账户财务明细"""
finance_condition
=
[]
if
data
.
type
or
data
.
type
==
0
:
...
...
@@ -122,10 +128,18 @@ def get_finance_details(db, data):
finance_condition
.
append
(
AccountFinanceDetails
.
create_time
>=
data
.
start_time
)
if
data
.
end_time
:
finance_condition
.
append
(
AccountFinanceDetails
.
create_time
<=
data
.
end_time
)
if
not
finance_condition
:
query_res
=
db
.
query
(
AccountFinanceDetails
)
.
all
()
return
[
i
.
to_dict
()
for
i
in
query_res
][::
-
1
]
try
:
get_details_orm
=
db
.
query
(
AccountFinanceDetails
)
.
filter
(
and_
(
*
finance_condition
))
condition_data
=
db
.
execute
(
get_details_orm
)
.
fetchall
()
serial_info
=
[
i
[
0
]
.
to_dict
()
for
i
in
condition_data
]
serial_info
.
reverse
()
except
Exception
as
e
:
print
(
e
)
return
[],
0
,
0
if
is_list
else
[]
# 判断是列表还是导出接口
if
is_list
:
df
=
pd
.
DataFrame
(
serial_info
)
count
=
df
[
'amount'
]
.
apply
(
lambda
x
:
x
)
.
sum
()
return
serial_info
[(
int
(
data
.
page
)
-
1
)
*
data
.
size
:
data
.
size
*
data
.
page
],
len
(
serial_info
),
count
else
:
get_user_orm_sql
=
db
.
query
(
AccountFinanceDetails
)
.
filter
(
and_
(
*
finance_condition
))
query_res
=
db
.
execute
(
get_user_orm_sql
)
.
fetchall
()
return
[
i
[
0
]
.
to_dict
()
for
i
in
query_res
][::
-
1
]
return
serial_info
app/api/account/schemas.py
View file @
77b6b2ff
...
...
@@ -38,4 +38,4 @@ class FinanceInfo(PublicModel):
class
FinanceDetails
(
PublicModel
):
type
:
Optional
[
int
]
=
None
gift_type
:
Optional
[
int
]
=
None
gift_type
:
Optional
[
str
]
=
None
app/api/account/views.py
View file @
77b6b2ff
...
...
@@ -2,6 +2,7 @@ from fastapi import Depends, APIRouter
from
sqlalchemy.orm
import
Session
from
app
import
get_db
from
app.api.account
import
schemas
,
crud
from
app.api.statement
import
crud
as
statement_crud
from
libs.result_format
import
HttpResultResponse
,
HttpMessage
router
=
APIRouter
()
...
...
@@ -43,12 +44,26 @@ def read_account(data: schemas.AccountUpdate, db: Session = Depends(get_db)):
@
router
.
post
(
"/finance/info"
)
def
finance_information
(
data
:
schemas
.
FinanceInfo
,
db
:
Session
=
Depends
(
get_db
)):
"""账户财务信息"""
res
=
crud
.
get_finance_info
(
db
,
data
)
return
HttpResultResponse
(
total
=
len
(
res
),
data
=
res
[
int
(
data
.
page
-
1
)
*
data
.
size
:
data
.
page
*
data
.
size
])
res
,
total
=
crud
.
get_finance_info
(
db
,
data
,
1
)
return
HttpResultResponse
(
total
=
total
,
data
=
res
[
int
(
data
.
page
-
1
)
*
data
.
size
:
data
.
page
*
data
.
size
])
@
router
.
post
(
"/finance/info/excel"
)
def
finance_info_excel
(
data
:
schemas
.
FinanceInfo
,
db
:
Session
=
Depends
(
get_db
)):
"""账户财务信息导出"""
statement_list
=
crud
.
get_finance_info
(
db
,
data
)
return
statement_crud
.
data_to_file
(
statement_list
,
"财务信息"
)
@
router
.
post
(
"/finance/details"
)
def
finance_details
(
data
:
schemas
.
FinanceDetails
,
db
:
Session
=
Depends
(
get_db
)):
"""账户财务明细"""
res
=
crud
.
get_finance_details
(
db
,
data
)
return
HttpResultResponse
(
total
=
len
(
res
),
data
=
res
[
int
(
data
.
page
-
1
)
*
data
.
size
:
data
.
page
*
data
.
size
])
res
,
total
,
count
=
crud
.
get_finance_details
(
db
,
data
,
1
)
return
HttpResultResponse
(
total
=
total
,
data
=
res
,
count
=
count
)
@
router
.
post
(
"/finance/details/excel"
)
def
finance_info_excel
(
data
:
schemas
.
FinanceDetails
,
db
:
Session
=
Depends
(
get_db
)):
"""账户财务明细导出"""
statement_list
=
crud
.
get_finance_details
(
db
,
data
)
return
statement_crud
.
data_to_file
(
statement_list
,
"财务明细"
)
models/account.py
View file @
77b6b2ff
...
...
@@ -48,8 +48,8 @@ class AccountFinance(Base, SerializerMixin):
account_tag
=
Column
(
String
(
255
),
comment
=
"账户标识"
)
account_uuid
=
Column
(
String
(
100
),
comment
=
"账户uuid"
)
balance
=
Column
(
String
(
255
),
comment
=
"当日余额"
)
income
=
Column
(
Float
,
comment
=
"当日入账"
)
output
=
Column
(
Float
,
comment
=
"当日出账"
)
income
=
Column
(
Float
,
default
=
0
,
comment
=
"当日入账"
)
output
=
Column
(
Float
,
default
=
0
,
comment
=
"当日出账"
)
create_time
=
Column
(
DateTime
,
comment
=
"创建时间"
)
__table_args__
=
{
'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