From 672258e594d1f2634f81f890458ffcc0e4966a5a Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Thu, 30 Oct 2025 13:35:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/FinStatisticsController.php | 44 +++++++++++++++++++ .../controller/FinReceiptController.php | 15 +++++++ app/common/service/FinReceiptService.php | 19 +++++++- config/route.php | 4 ++ 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 app/admin/controller/dashboard/FinStatisticsController.php diff --git a/app/admin/controller/dashboard/FinStatisticsController.php b/app/admin/controller/dashboard/FinStatisticsController.php new file mode 100644 index 0000000..a3d3f9b --- /dev/null +++ b/app/admin/controller/dashboard/FinStatisticsController.php @@ -0,0 +1,44 @@ +',0); + + $result = []; + //已认领数量 + $result['claimed_num'] = $query->count(); + //已认领金额 + $result['claimed_amount'] = $query->sum('amount'); + + + $query = FinReceipt::whereNull('payment_apply_id'); + + //未认领数量 + $result['unclaimed_num'] = $query->count(); + //未认领金额 + $result['unclaimed_amount'] = $query->sum('amount'); + + //已超时未认领数量 + $result['timeout'] = $query->where('created_at','<',time()-24*3600)->count(); + + return $this->success($result); + } catch (\Throwable $e) { + return $this->error($e->getMessage()); + } + } + +} \ No newline at end of file diff --git a/app/common/controller/FinReceiptController.php b/app/common/controller/FinReceiptController.php index d8ef9c2..4e9c574 100644 --- a/app/common/controller/FinReceiptController.php +++ b/app/common/controller/FinReceiptController.php @@ -147,4 +147,19 @@ class FinReceiptController extends BaseController } return $data; } + + /** + * 收款记录统计 + * @param Request $request + * @return \support\Response + */ + public function statistics(Request $request) + { + try { + $raw = $this->service->statistics(); + return $this->success($raw); + } catch (\Throwable $e) { + return $this->error($e->getMessage()); + } + } } \ No newline at end of file diff --git a/app/common/service/FinReceiptService.php b/app/common/service/FinReceiptService.php index 91db094..1f1c731 100644 --- a/app/common/service/FinReceiptService.php +++ b/app/common/service/FinReceiptService.php @@ -279,7 +279,7 @@ class FinReceiptService } /** - * 更新计算折让金额 + * 更新:绑定收款记录,计算折让金额 * @param Request $request * @param array $data * @param string $scene @@ -296,9 +296,24 @@ class FinReceiptService //折让金额 $payment = FinPaymentApply::where('id', $payment_apply_id)->first(); $receipt = FinReceipt::find($id); - $data['discount_amount'] = $payment->amount - $payment->amount ?? 0; + $data['discount_amount'] = $payment->amount - $receipt->amount ?? 0; $updated = $this->logicUpdateBy($config, $data); return $this->postProcess(ucfirst($scene), $data); } + + /** + * 收款记录统计 + * @return bool|int + */ + public function statistics() + { + $finReceipt = FinReceipt::find($id); + if(!empty($finReceipt->received_at)){ + throw new BusinessException('该记录已将确认入账'); + } + $res = $this->logic->credit($id); + $this->afterServiceUpdate(['id'=>$id]); + return $res; + } } \ No newline at end of file diff --git a/config/route.php b/config/route.php index b962ee9..ec7d821 100644 --- a/config/route.php +++ b/config/route.php @@ -368,6 +368,10 @@ Route::group('/admin', function () { Route::any('/show', [app\common\controller\FinReceiptHisController::class, 'show']); }); + Route::group('/fin', function () { + Route::any('/statistics', [app\admin\controller\dashboard\FinStatisticsController::class, 'statistics']); + }); + // 付款申请 Route::group('/payment', function () { Route::any('/list', [app\common\controller\FinPaymentApplyController::class, 'index']);