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
1494f661
Commit
1494f661
authored
Mar 01, 2023
by
xianyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
报表-修复报表优化
parent
f0925b50
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
25 additions
and
12 deletions
+25
-12
schemas.py
app/api/account/schemas.py
+1
-1
crud.py
app/api/statement/crud.py
+13
-4
guild.py
app/api/statement/guild.py
+6
-4
views.py
app/api/statement/views.py
+1
-1
orm.py
libs/orm.py
+3
-1
recharge.py
models/recharge.py
+1
-1
No files found.
app/api/account/schemas.py
View file @
1494f661
...
...
@@ -45,5 +45,5 @@ class FixTable(BaseModel):
type
:
int
account_id
:
int
money
:
float
amount_type
:
str
amount_type
:
str
=
""
remark
:
str
app/api/statement/crud.py
View file @
1494f661
...
...
@@ -9,6 +9,7 @@ from starlette.responses import StreamingResponse
from
sqlalchemy.orm
import
Session
from
libs.functions
import
wrapper_out
from
libs.orm
import
QueryAllData
from
models.recharge
import
Recharge
,
UserWC
,
GuildWC
,
FinanceFixLog
locka
=
threading
.
Lock
()
...
...
@@ -215,9 +216,17 @@ class WithdrawStatement(object):
class
FinanceFix
(
object
):
@
staticmethod
@
wrapper_out
()
def
get_finance_fix_data
(
db
:
Session
,
data
):
"""财务修复"""
total
=
db
.
query
(
func
.
count
(
FinanceFixLog
.
id
))
.
scalar
()
output
=
db
.
query
(
FinanceFixLog
)
.
limit
(
data
.
page
*
data
.
size
)
.
offset
((
data
.
page
-
1
)
*
data
.
size
)
.
all
()
return
[
i
.
to_dict
()
for
i
in
output
],
total
# total = db.query(func.count(FinanceFixLog.id)).scalar()
# output = db.query(FinanceFixLog).order_by(FinanceFixLog.id.desc()).offset((data.page - 1) *
# data.size).limit(data.size).all()
# return [i.to_dict() for i in output], total
finance_filters
=
[]
if
data
.
get
(
"start_time"
):
finance_filters
.
append
(
FinanceFixLog
.
create_time
>=
data
.
get
(
"start_time"
)
+
" 00:00:00"
)
if
data
.
get
(
"end_time"
):
finance_filters
.
append
(
FinanceFixLog
.
create_time
<=
data
.
get
(
"end_time"
)
+
" 23:59:59"
)
querydata
,
count
=
QueryAllData
(
db
,
FinanceFixLog
,
data
,
finance_filters
)
.
query_data
()
data
=
[
QueryAllData
.
serialization
(
item
)
for
item
in
querydata
]
return
data
,
count
app/api/statement/guild.py
View file @
1494f661
...
...
@@ -123,9 +123,9 @@ def accout_list_data(db: Session, dbname, params):
if
params
.
get
(
"uuid"
):
accout_filters
.
append
(
dbname
.
uuid
==
params
.
get
(
"uuid"
))
if
params
.
get
(
"start_time"
):
accout_filters
.
append
(
dbname
.
create_time
>=
params
.
get
(
"start_time"
))
accout_filters
.
append
(
dbname
.
create_time
>=
params
.
get
(
"start_time"
)
+
" 00:00:00"
)
if
params
.
get
(
"end_time"
):
accout_filters
.
append
(
dbname
.
create_time
<=
params
.
get
(
"end_time"
))
accout_filters
.
append
(
dbname
.
create_time
<=
params
.
get
(
"end_time"
)
+
" 23:59:59"
)
querydata
,
count
=
QueryAllData
(
db
,
dbname
,
params
,
accout_filters
)
.
query_data
()
data
=
[
QueryAllData
.
serialization
(
item
)
for
item
in
querydata
]
return
data
,
count
...
...
@@ -139,8 +139,8 @@ def query_uuid_or_user_number(db: Session, param):
guild
=
db
.
query
(
Guild
)
.
filter
(
Guild
.
uuid
==
param
.
uuid
)
.
first
()
if
not
guild
:
return
{}
return
{
"nick_name"
:
"(公会)"
+
guild
.
guild_name
,
"user_number"
:
guild
.
id
}
return
{
"nick_name"
:
user
.
nick_name
,
"user_number"
:
user
.
user_id
}
return
{
"nick_name"
:
"(公会)"
+
guild
.
guild_name
,
"user_number"
:
guild
.
id
,
"is_guild"
:
1
}
return
{
"nick_name"
:
user
.
nick_name
,
"user_number"
:
user
.
user_id
,
"is_guild"
:
0
}
if
param
.
user_number
:
user
=
db
.
query
(
V2User
)
.
filter
(
V2User
.
user_number
==
param
.
user_number
)
.
first
()
return
{
"nick_name"
:
user
.
nick_name
,
"user_id"
:
user
.
user_id
,
"uuid"
:
user
.
uuid
}
...
...
@@ -188,6 +188,8 @@ def transfer_money(db: Session, param, h_list):
def
create_fix_table
(
db
:
Session
,
param
,
h_list
):
"""增加修复报表"""
user
=
query_token
(
db
,
h_list
)
if
param
.
type
==
0
:
param
.
amount_type
=
'consumable'
try
:
present
=
FinanceFixLog
(
type
=
param
.
type
,
account_id
=
param
.
account_id
,
money
=
param
.
money
,
remark
=
param
.
remark
,
operator
=
user
.
get
(
"username"
),
amount_type
=
param
.
amount_type
,
...
...
app/api/statement/views.py
View file @
1494f661
...
...
@@ -122,7 +122,7 @@ def guild_update_list(data: schemas.GuildUpdate, db: Session = Depends(get_db)):
@
router
.
post
(
"/finance/fix"
)
def
finance_fix
(
data
:
acc_schemas
.
PublicModel
,
db
:
Session
=
Depends
(
get_db
)):
"""账户修复报表"""
res
,
num
=
crud
.
FinanceFix
.
get_finance_fix_data
(
db
,
data
)
res
,
num
=
crud
.
FinanceFix
.
get_finance_fix_data
(
db
,
data
.
dict
(
exclude_none
=
True
)
)
return
HttpResultResponse
(
total
=
num
,
data
=
res
)
...
...
libs/orm.py
View file @
1494f661
...
...
@@ -23,13 +23,15 @@ class QueryAllData:
'''
if
self
.
params
==
{}:
queryData
=
self
.
db
.
query
(
self
.
dbname
)
.
filter
()
.
order_by
(
self
.
dbname
.
id
.
desc
())
.
all
()
count
=
self
.
db
.
query
(
func
.
count
(
self
.
dbname
.
id
))
.
scalar
()
elif
self
.
params_list
==
None
:
queryData
=
self
.
db
.
query
(
self
.
dbname
)
.
filter
()
.
order_by
(
self
.
dbname
.
id
.
desc
())
.
offset
(
(
int
(
self
.
page
)
-
1
)
*
self
.
limit
)
.
limit
(
self
.
limit
)
.
all
()
count
=
self
.
db
.
query
(
func
.
count
(
self
.
dbname
.
id
))
.
scalar
()
else
:
queryData
=
self
.
db
.
query
(
self
.
dbname
)
.
filter
(
and_
(
*
self
.
params_list
))
.
order_by
(
self
.
dbname
.
id
.
desc
())
.
offset
((
int
(
self
.
page
)
-
1
)
*
self
.
limit
)
.
limit
(
self
.
limit
)
.
all
()
count
=
self
.
db
.
query
(
func
.
count
(
self
.
dbname
.
id
))
.
scalar
()
count
=
self
.
db
.
query
(
func
.
count
(
self
.
dbname
.
id
))
.
filter
(
and_
(
*
self
.
params_list
))
.
scalar
()
return
queryData
,
count
def
query_filter
(
self
):
...
...
models/recharge.py
View file @
1494f661
...
...
@@ -108,7 +108,7 @@ class Fiaccount(Base, SerializerMixin):
beneficiary
=
Column
(
String
(
100
),
comment
=
"受益人"
)
description
=
Column
(
String
(
100
),
comment
=
"描述信息"
)
uuid
=
Column
(
String
(
60
),
comment
=
"用户id"
,
index
=
True
)
create_time
=
Column
(
Integer
,
comment
=
"创建时间"
)
create_time
=
Column
(
DateTime
,
comment
=
"创建时间"
)
config_key
=
Column
(
String
(
150
),
comment
=
"配置key,和api接口约定好的标识"
)
income
=
Column
(
Text
,
comment
=
"入账"
)
output
=
Column
(
Text
,
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