From 32ab9a7105ff2c7222415e0ecf900246681f5ca4 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Thu, 23 Mar 2023 12:20:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=9F=8E=E9=95=87=E9=A5=BC?= =?UTF-8?q?=E5=9B=BE=E7=BB=9F=E8=AE=A1=E6=8E=92=E8=A1=8C=E6=A6=9C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/CropYieldController.php | 153 ++++++++++++++----- 1 file changed, 111 insertions(+), 42 deletions(-) diff --git a/app/Http/Controllers/CropYieldController.php b/app/Http/Controllers/CropYieldController.php index 0d1133c..d5e1b27 100644 --- a/app/Http/Controllers/CropYieldController.php +++ b/app/Http/Controllers/CropYieldController.php @@ -228,18 +228,19 @@ class CropYieldController extends Controller $baseId = $request->input('base_id'); //镇 $year = $request->input('year', date('Y')); //年份 - $q = CropYield::query(); - $q->where('time_year', $year); - if ($baseId) { - $q->where('base_id', $baseId); - }else{ - $baseIds = AgriculturalBase::where('type', BaseType::Town)->pluck('id')->toArray(); - $q->whereIn('base_id', $baseIds); - } - $q->groupBy('category_id'); - $totalData = $q->select(DB::raw('category_id, sum(output) as output_total ')) - ->get() - ->keyBy('category_id')->toArray(); + //使用单独配置,不再做统计 + // $q = CropYield::query(); + // $q->where('time_year', $year); + // if ($baseId) { + // $q->where('base_id', $baseId); + // }else{ + // $baseIds = AgriculturalBase::where('type', BaseType::Town)->pluck('id')->toArray(); + // $q->whereIn('base_id', $baseIds); + // } + // $q->groupBy('category_id'); + // $totalData = $q->select(DB::raw('category_id, sum(output) as output_total ')) + // ->get() + // ->keyBy('category_id')->toArray(); $categories = Keywords::filter($request->all())->where('type_key', 'crops-category')->get(); @@ -250,9 +251,10 @@ class CropYieldController extends Controller } foreach ($categories as $category) { $data[$category->name] = 0; - if (isset($totalData[$category->id])) { - $data[$category->name] = $totalData[$category->id]['output_total']; - } + //使用单独配置,不再做统计 + // if (isset($totalData[$category->id])) { + // $data[$category->name] = $totalData[$category->id]['output_total']; + // } //如果是没有查指定城镇,则如果设置数据统计,则使用统计数值; if(!($baseId > 0)){ $data[$category->name] = 0; @@ -283,6 +285,36 @@ class CropYieldController extends Controller } break; } + }else{ + $baseExtends = AgriculturalBase::where('id', $baseId)->value('extends'); + $baseExtends = json_decode($baseExtends, true); + switch($category->key){ + case 'crops-cate-nongye': + if(isset($baseExtends['chart_nongye'][$year])){ + $data[$category->name] = ($baseExtends['chart_nongye'][$year])*10000; + } + break; + case 'crops-cate-yuye': + if(isset($baseExtends['chart_yuye'][$year])){ + $data[$category->name] = ($baseExtends['chart_yuye'][$year])*10000; + } + break; + case 'crops-cate-xumuye': + if(isset($baseExtends['chart_xumuye'][$year])){ + $data[$category->name] = ($baseExtends['chart_xumuye'][$year])*10000; + } + break; + case 'crops-cate-lingye': + if(isset($baseExtends['chart_lingye'][$year])){ + $data[$category->name] = ($baseExtends['chart_lingye'][$year])*10000; + } + break; + case 'crops-cate-activity': + if(isset($baseExtends['chart_activity'][$year])){ + $data[$category->name] = ($baseExtends['chart_activity'][$year])*10000; + } + break; + } } } @@ -300,20 +332,20 @@ class CropYieldController extends Controller $nowYear = date('Y'); //默认去年开始往前4年; $nowYear--; + //使用单独配置,不再做统计 + // $q = CropYield::query(); + // if ($baseId) { + // $q->where('base_id', $baseId); + // }else{ + // $baseIds = AgriculturalBase::where('type', BaseType::Town)->pluck('id')->toArray(); + // $q->whereIn('base_id', $baseIds); + // } + // $q->where('time_year', '>=', $nowYear - 3); - $q = CropYield::query(); - if ($baseId) { - $q->where('base_id', $baseId); - }else{ - $baseIds = AgriculturalBase::where('type', BaseType::Town)->pluck('id')->toArray(); - $q->whereIn('base_id', $baseIds); - } - $q->where('time_year', '>=', $nowYear - 3); - - $q->groupBy('time_year'); - $totalData = $q->select(DB::raw('time_year, sum(output) as output_total ')) - ->get() - ->keyBy('time_year')->toArray(); + // $q->groupBy('time_year'); + // $totalData = $q->select(DB::raw('time_year, sum(output) as output_total ')) + // ->get() + // ->keyBy('time_year')->toArray(); $data = []; $settingCharts = []; @@ -323,9 +355,10 @@ class CropYieldController extends Controller for ($i = 0; $i < 4; $i++) { $_year = $nowYear - $i; $data[$_year] = 0; - if (isset($totalData[$_year])) { - $data[$_year] = $totalData[$_year]['output_total']; - } + //使用单独配置,不再做统计 + // if (isset($totalData[$_year])) { + // $data[$_year] = $totalData[$_year]['output_total']; + // } if(!($baseId > 0)){ $data[$_year] = 0; if(isset(json_decode($settingCharts['city_data_chart_nongye'], true)[$_year])){ @@ -343,6 +376,24 @@ class CropYieldController extends Controller if(isset(json_decode($settingCharts['city_data_chart_activity'], true)[$_year])){ $data[$_year] += (json_decode($settingCharts['city_data_chart_activity'], true)[$_year])*10000; } + }else{//使用单独配置,不再做统计 + $baseExtends = AgriculturalBase::where('id', $baseId)->value('extends'); + $baseExtends = json_decode($baseExtends, true); + if(isset($baseExtends['chart_nongye'][$_year])){ + $data[$_year] += ($baseExtends['chart_nongye'][$_year])*10000; + } + if(isset($baseExtends['chart_yuye'][$_year])){ + $data[$_year] += ($baseExtends['chart_yuye'][$_year])*10000; + } + if(isset($baseExtends['chart_xumuye'][$_year])){ + $data[$_year] += ($baseExtends['chart_xumuye'][$_year])*10000; + } + if(isset($baseExtends['chart_lingye'][$_year])){ + $data[$_year] += ($baseExtends['chart_lingye'][$_year])*10000; + } + if(isset($baseExtends['chart_activity'][$_year])){ + $data[$_year] += ($baseExtends['chart_activity'][$_year])*10000; + } } } @@ -361,15 +412,16 @@ class CropYieldController extends Controller $year = $request->input('year', date('Y')); //年份 $categoryId = $request->input('category_id'); //行业ID - $q = CropYield::query(); - $q->where('time_year', $year); - if ($categoryId) { - $q->where('category_id', $categoryId); - } - $q->groupBy('base_id'); - $totalData = $q->select(DB::raw('base_id, sum(output) as output_total ')) - ->get() - ->keyBy('base_id')->toArray(); + //使用单独配置,不再做统计 + // $q = CropYield::query(); + // $q->where('time_year', $year); + // if ($categoryId) { + // $q->where('category_id', $categoryId); + // } + // $q->groupBy('base_id'); + // $totalData = $q->select(DB::raw('base_id, sum(output) as output_total ')) + // ->get() + // ->keyBy('base_id')->toArray(); $bases = AgriculturalBase::town()->get(); @@ -377,9 +429,26 @@ class CropYieldController extends Controller foreach ($bases as $base) { $data[$base->name] = 0; - if (isset($totalData[$base->id])) { - $data[$base->name] = $totalData[$base->id]['output_total']; + $baseExtends = json_decode($base->extends, true); + if(isset($baseExtends['chart_nongye'][$year])){ + $data[$base->name] += ($baseExtends['chart_nongye'][$year])*10000; } + if(isset($baseExtends['chart_yuye'][$year])){ + $data[$base->name] += ($baseExtends['chart_yuye'][$year])*10000; + } + if(isset($baseExtends['chart_xumuye'][$year])){ + $data[$base->name] += ($baseExtends['chart_xumuye'][$year])*10000; + } + if(isset($baseExtends['chart_lingye'][$year])){ + $data[$base->name] += ($baseExtends['chart_lingye'][$year])*10000; + } + if(isset($baseExtends['chart_activity'][$year])){ + $data[$base->name] += ($baseExtends['chart_activity'][$year])*10000; + } + //使用单独配置,不再做统计 + // if (isset($totalData[$base->id])) { + // $data[$base->name] = $totalData[$base->id]['output_total']; + // } } arsort($data);