ソースを参照

数据中心统计

wanghaijun 4 年 前
コミット
549d00cc55
1 ファイル変更39 行追加5 行削除
  1. 39 5
      app/Http/Controllers/Api/mini/DataController.php

+ 39 - 5
app/Http/Controllers/Api/mini/DataController.php

xqd xqd xqd xqd xqd
@@ -12,6 +12,7 @@ use App\Models\RentType;
 use App\Models\Spec;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 use phpDocumentor\Reflection\DocBlock;
 
@@ -139,6 +140,7 @@ class DataController extends BaseController
         }
         if(!$request->input('project_ids')) return $this->error(['msg' => '']);
         if($request->input('chart_type') == 'pie') return $this->getPieData($request);
+        if($request->input('chart_type') == 'line' || $request->input('chart_type') == 'bar' ) return $this->getBarData($request);
         else if($request->input('chart_type') == 'radar') return $this->getRadarData($request);
         $orders = $this->getOrders($request);
         $names = [];
@@ -171,6 +173,38 @@ class DataController extends BaseController
         return $this->success(['data' => compact('values', 'names', 'legends','info')]);
     }
 
+    /**
+     * @获取折现图,柱状图订单总金额
+     * @param $request
+     * @return \Illuminate\Http\JsonResponse
+     * User: HaiJun.Wang
+     * Date: 2021/4/29 14:48
+     */
+    public function getBarData($request)
+    {
+        $project_ids = $request->input('project_ids');
+        $projects = Project::whereIn('id', $project_ids)->where('id','!=',1)->get();
+        $values = [];
+        $info = [];
+        $names = [];
+        $start_at = $this->getStartAt($request->input('date'));
+        $end_at = $this->getEndAt($request->input('date'));
+
+        foreach ($projects as $p){
+            $order_total= OrderDevice::where(['project_id'=>$p->id])
+                                       ->where([['created_at', '>=', $start_at], ['created_at', '<', $end_at]])
+                                       ->select(DB::raw('SUM(price * quantity) money'))->first()->toArray();
+            if(!empty($order_total)){
+                $values[] = ($order_total['money'] /100);
+            } else {
+                $values[] = 0;
+            }
+            $names[] = $p->name;
+        }
+        $legends = $projects->pluck('name');
+
+        return $this->success(['data' => compact('values', 'names', 'legends','info')]);
+    }
     public function getRadarData(Request $request)
     {
         $orders = $this->getOrders($request);
@@ -532,6 +566,7 @@ class DataController extends BaseController
         }
     }
 
+    //租赁单价统计
     public function getMaxStat(Request $request)
     {
         $info = [];
@@ -573,11 +608,10 @@ class DataController extends BaseController
         if ($info == null)
         {
             $values = $projects->pluck('max_price')->toArray();
-            foreach ($values as &$value)
-            {
-                $value = 0;
-            }
-            $values = 0;
+//            foreach ($values as &$value)
+//            {
+//                $value = 0;
+//            }
         }else
         {
             $values = $projects->pluck('max_price');