gorden пре 6 месеци
родитељ
комит
2737775269

+ 0 - 1
app/admin/controller/order/RefundController.php

@@ -233,7 +233,6 @@ class RefundController extends Curd
             return json_fail("支付状态异常");
         }
         $refundPayIds = array_column($payDetail, 'pay_id');
-        dump($refundPayIds);
         $response = [];
         Db::beginTransaction();
         try {

+ 64 - 0
app/admin/controller/order/StatisticsController.php

@@ -0,0 +1,64 @@
+<?php
+
+namespace app\admin\controller\order;
+
+use app\model\PayDetail;
+use support\Db;
+use support\Request;
+
+class StatisticsController
+{
+    public function order(Request $request)
+    {
+        $orderCategory = $request->get('order_category');
+        if (!$orderCategory) {
+            return json_fail('参数异常');
+        }
+        if ($orderCategory == 'SERVICE') {
+            $orderCategory = ['SERVICE', 'CHNMED', 'CHNNCD'];
+        } else {
+            $orderCategory = [$orderCategory];
+        }
+        $todayTimeUnix = strtotime(date('Y-m-d'));
+        $yesterdayStart = strtotime(date('Y-m-d', strtotime("-1 days")));
+        $yesterdayEnd = strtotime(date('Y-m-d 23:59:59', strtotime("-1 days")));
+        $monthStart = strtotime(date('Y-m-01'));
+        $monthEnd = strtotime(date('Y-m-t 23:59:59'));
+        // 今日收入
+        $statistics['todayRevenue'] = PayDetail::whereRaw('CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) >= ? ', [$todayTimeUnix])
+            ->where('pay_status', 'SUCCESS')
+            ->whereIn('pay_category', $orderCategory)
+            ->sum('pay_amount');
+        // 昨日收入
+        $statistics['yesterdayRevenue'] = PayDetail::whereRaw('CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) >= ? and CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) <= ?', [$yesterdayStart, $yesterdayEnd])
+            ->where('pay_status', 'SUCCESS')
+            ->whereIn('pay_category', $orderCategory)
+            ->sum('pay_amount');
+        // 本月收入
+        $statistics['monthRevenue'] = PayDetail::whereRaw('CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) >= ? and CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) <= ?', [$monthStart, $monthEnd])
+            ->where('pay_status', 'SUCCESS')
+            ->whereIn('pay_category', $orderCategory)
+            ->sum('pay_amount');
+        // 累计收入
+        $statistics['totalRevenue'] = PayDetail::where('pay_status', 'SUCCESS')
+            ->whereIn('pay_category', $orderCategory)
+            ->sum('pay_amount');
+
+        // 今日退款
+        $todayRefundItem = Db::select("select SUM(d2.pay_amount) as amount from app_pay_detail d1 
+            inner join app_pay_detail d2 ON d1.join_pay_order_id=d2.join_pay_order_id and d2.pay_category='REFUND' 
+            where CAST(UNIX_TIMESTAMP(d2.pay_paytimes) as SIGNED) >= ? AND d1.pay_category in ('".implode("','",$orderCategory)."') 
+            ", [$todayTimeUnix]);
+        $statistics['todayRefund'] = 0;
+        if (!empty($todayRefundItem) && !empty($todayRefundItem[0])){
+            $statistics['todayRefund'] = $todayRefundItem[0]->amount;
+        }
+        // 累计退款
+        $totalRefundItem = Db::select("select SUM(d2.pay_amount) as amount, d1.pay_category as d1_pay_category,d2.pay_category as d2_pay_category from app_pay_detail d1 
+            inner join app_pay_detail d2 ON d1.join_pay_order_id=d2.join_pay_order_id and d2.pay_category='REFUND' 
+            where d1.pay_category in ('".implode("','",$orderCategory)."') 
+            ");
+
+        dump($totalRefundItem);
+    }
+}

+ 8 - 0
app/admin/service/order/StatisticsService.php

@@ -0,0 +1,8 @@
+<?php
+
+namespace app\admin\service\order;
+
+class StatisticsService
+{
+
+}

+ 5 - 0
route/admin.php

@@ -916,6 +916,11 @@ Route::group('/admin', function () {
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);
+        Route::group('/statistics',function (){
+            Route::get('/order', [\app\admin\controller\order\StatisticsController::class, 'order']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
         // 
         Route::group('/pending', function () {
             Route::get('/list', [\app\admin\controller\order\PendingController::class, 'select']);