Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lvsuo-pc
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhilin
lvsuo-pc
Commits
2a9d3c9e
Commit
2a9d3c9e
authored
Apr 24, 2025
by
liuyingkang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor(CovenantReceivePayment): 优化日期范围查询逻辑并添加日志记录
重构了日期范围查询条件,简化了逻辑并提高了可读性。同时,在关键步骤添加了日志记录以便于调试和追踪数据导出过程。
parent
b0c2fb23
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
23 deletions
+61
-23
app/Admin/Controllers/CovenantReceivePaymentController.php
+15
-12
app/Admin/Extensions/CovenantReceivePaymentExportExten.php
+46
-11
No files found.
app/Admin/Controllers/CovenantReceivePaymentController.php
View file @
2a9d3c9e
...
...
@@ -15,6 +15,7 @@
use
App\Admin\Actions\CovenantReceivePaymentExcel
;
use
Illuminate\Http\Request
;
use
Maatwebsite\Excel\Facades\Excel
;
use
App\Command\Log
;
class
CovenantReceivePaymentController
extends
AdminController
{
...
...
@@ -121,12 +122,12 @@ protected function grid()
$params
[
'principal'
]
=
request
()
->
input
(
'principal'
,
''
);
$received_at
=
[];
$received_at
[
'start'
]
=
request
()
->
input
(
'received_at.start'
)
?
request
()
->
input
(
'received_at.start'
)
.
"-01"
:
''
;
$received_at
[
'end'
]
=
request
()
->
input
(
'received_at.end'
)
?
request
()
->
input
(
'received_at.end'
)
.
"-31"
:
''
;
$received_at
[
'start'
]
=
request
()
->
input
(
'received_at.start'
)
?
request
()
->
input
(
'received_at.start'
)
:
''
;
$received_at
[
'end'
]
=
request
()
->
input
(
'received_at.end'
)
?
request
()
->
input
(
'received_at.end'
)
:
''
;
$invoiced_at
=
[];
$invoiced_at
[
'start'
]
=
request
()
->
input
(
'invoiced_at.start'
)
?
request
()
->
input
(
'invoiced_at.start'
)
.
"-01"
:
''
;
$invoiced_at
[
'end'
]
=
request
()
->
input
(
'invoiced_at.end'
)
?
request
()
->
input
(
'invoiced_at.end'
)
.
"-31"
:
''
;
$invoiced_at
[
'start'
]
=
request
()
->
input
(
'invoiced_at.start'
)
?
request
()
->
input
(
'invoiced_at.start'
)
:
''
;
$invoiced_at
[
'end'
]
=
request
()
->
input
(
'invoiced_at.end'
)
?
request
()
->
input
(
'invoiced_at.end'
)
:
''
;
// 导出按钮参数
$param
=
[
...
...
@@ -153,16 +154,18 @@ public function export(Request $request)
{
$filename
=
$request
->
get
(
'filename'
);
$param
=
json_decode
(
$request
->
get
(
'param'
),
true
);
Log
::
add
(
'debug2'
,
'导出数据:'
.
json_encode
(
$param
));
//获取筛选参数
$received_at
=
$invoiced_at
=
[];
$received_at
[
'start'
]
=
isset
(
$_GET
[
'received_at'
][
'start'
])
&&
$_GET
[
'received_at'
][
'start'
]
?
$_GET
[
'received_at'
][
'start'
]
.
"-01"
:
''
;
$received_at
[
'end'
]
=
isset
(
$_GET
[
'received_at'
][
'end'
])
&&
$_GET
[
'received_at'
][
'end'
]
?
$_GET
[
'received_at'
][
'end'
]
.
"-31"
:
''
;
$invoiced_at
[
'start'
]
=
isset
(
$_GET
[
'invoiced_at'
][
'start'
])
&&
$_GET
[
'invoiced_at'
][
'start'
]
?
$_GET
[
'invoiced_at'
][
'start'
]
.
"-01"
:
''
;
$invoiced_at
[
'end'
]
=
isset
(
$_GET
[
'invoiced_at'
][
'end'
])
&&
$_GET
[
'invoiced_at'
][
'end'
]
?
$_GET
[
'invoiced_at'
][
'end'
]
.
"-31"
:
''
;
// 如果参数中没有时间,再从GET请求中获取
if
(
empty
(
$param
[
'received_at'
][
'start'
]))
{
$param
[
'received_at'
][
'start'
]
=
isset
(
$_GET
[
'received_at'
][
'start'
])
&&
$_GET
[
'received_at'
][
'start'
]
?
$_GET
[
'received_at'
][
'start'
]
:
''
;
$param
[
'received_at'
][
'end'
]
=
isset
(
$_GET
[
'received_at'
][
'end'
])
&&
$_GET
[
'received_at'
][
'end'
]
?
$_GET
[
'received_at'
][
'end'
]
:
''
;
}
$param
[
'received_at'
]
=
$received_at
;
$param
[
'invoiced_at'
]
=
$invoiced_at
;
if
(
empty
(
$param
[
'invoiced_at'
][
'start'
]))
{
$param
[
'invoiced_at'
][
'start'
]
=
isset
(
$_GET
[
'invoiced_at'
][
'start'
])
&&
$_GET
[
'invoiced_at'
][
'start'
]
?
$_GET
[
'invoiced_at'
][
'start'
]
:
''
;
$param
[
'invoiced_at'
][
'end'
]
=
isset
(
$_GET
[
'invoiced_at'
][
'end'
])
&&
$_GET
[
'invoiced_at'
][
'end'
]
?
$_GET
[
'invoiced_at'
][
'end'
]
:
''
;
}
// 检查是否有输出缓冲区
while
(
ob_get_level
())
{
...
...
app/Admin/Extensions/CovenantReceivePaymentExportExten.php
View file @
2a9d3c9e
...
...
@@ -7,6 +7,7 @@
use
Maatwebsite\Excel\Concerns\WithHeadings
;
use
App\Models\CovenantReceivePayment
as
ModelsCovenantReceivePayment
;
use
App\Models\Covenant
as
ModelsCovenant
;
use
App\Command\Log
;
class
CovenantReceivePaymentExportExten
implements
FromCollection
,
WithHeadings
{
...
...
@@ -62,6 +63,8 @@ public function getList($param)
$received_at
=
$param
[
'received_at'
]
??
[];
$invoiced_at
=
$param
[
'invoiced_at'
]
??
[];
Log
::
add
(
'debug3'
,
'导出数据:'
.
json_encode
(
$param
));
// 构建基础SQL
$sql
=
"SELECT rp.cid, c.cname as covenant_name, c.ctype as covenant_type, c.number as covenant_num, c.principal, l.name as lname,
SUM(CASE WHEN rp.rtype = 2 THEN rp.invoiced_money ELSE 0 END) as invoice_amount,
...
...
@@ -85,21 +88,51 @@ public function getList($param)
$sql
.=
" AND c.principal LIKE '%"
.
$search
[
'principal'
]
.
"%'"
;
}
// 日期筛选
if
(
!
empty
(
$received_at
))
{
if
(
!
empty
(
$received_at
[
'start'
]))
{
$sql
.=
" AND rp.received_at >= '"
.
$received_at
[
'start'
]
.
"'"
;
// 处理日期范围查询条件
if
(
$invoiced_at
[
'start'
]
&&
$received_at
[
'start'
])
{
$in_start
=
$invoiced_at
[
'start'
]
??
''
;
$in_end
=
$invoiced_at
[
'end'
]
??
''
;
$re_start
=
$received_at
[
'start'
]
??
''
;
$re_end
=
$received_at
[
'end'
]
??
''
;
if
(
$in_start
&&
$re_start
)
{
if
(
$in_end
&&
$re_end
)
{
$sql
.=
" AND (rp.received_at BETWEEN '
$re_start
' AND '
$re_end
23:59:59'
OR rp.invoiced_at BETWEEN '
$in_start
' AND '
$in_end
23:59:59')"
;
}
else
{
if
(
$in_end
)
{
$sql
.=
" AND (rp.received_at >= '
$re_start
'
OR rp.invoiced_at BETWEEN '
$in_start
' AND '
$in_end
23:59:59')"
;
}
elseif
(
$re_end
)
{
$sql
.=
" AND (rp.invoiced_at >= '
$in_start
'
OR rp.received_at BETWEEN '
$re_start
' AND '
$re_end
23:59:59')"
;
}
else
{
$sql
.=
" AND (rp.invoiced_at >= '
$in_start
'
OR rp.received_at >= '
$re_start
')"
;
}
if
(
!
empty
(
$received_at
[
'end'
]))
{
$sql
.=
" AND rp.received_at <= '"
.
$received_at
[
'end'
]
.
"'"
;
}
}
if
(
!
empty
(
$invoiced_at
))
{
if
(
!
empty
(
$invoiced_at
[
'start'
]))
{
$sql
.=
" AND rp.invoiced_at >= '"
.
$invoiced_at
[
'start'
]
.
"'"
;
}
elseif
(
$invoiced_at
[
'start'
]
&&
!
$received_at
[
'start'
])
{
$start
=
$invoiced_at
[
'start'
]
??
''
;
$end
=
$invoiced_at
[
'end'
]
??
''
;
if
(
$start
)
{
if
(
$end
)
{
$sql
.=
" AND rp.received_at BETWEEN '
$start
' AND '
$end
23:59:59'"
;
}
else
{
$sql
.=
" AND rp.received_at >= '
$start
'"
;
}
}
}
elseif
(
$received_at
[
'start'
]
&&
!
$invoiced_at
[
'start'
])
{
$start
=
$received_at
[
'start'
]
??
''
;
$end
=
$received_at
[
'end'
]
??
''
;
if
(
$start
)
{
if
(
$end
)
{
$sql
.=
" AND rp.received_at BETWEEN '
$start
' AND '
$end
23:59:59'"
;
}
else
{
$sql
.=
" AND rp.received_at >= '
$start
'"
;
}
if
(
!
empty
(
$invoiced_at
[
'end'
]))
{
$sql
.=
" AND rp.invoiced_at <= '"
.
$invoiced_at
[
'end'
]
.
"'"
;
}
}
...
...
@@ -107,6 +140,8 @@ public function getList($param)
$records
=
DB
::
select
(
$sql
);
Log
::
add
(
'debug4'
,
'导出数据:'
.
$sql
);
// 计算合计
$total_invoice_amount
=
0
;
$total_receipt_money
=
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