dev
李静 2023-05-15 18:24:05 +08:00
parent 057b4883a5
commit 5e4f0b38c3
3 changed files with 46 additions and 2 deletions

View File

@ -7,6 +7,8 @@ use App\Models\Materiel;
use App\Models\RiceShrimpFlow;
use App\Models\RiceShrimpIndustry;
use App\Models\RiceShrimpPrice;
use App\Models\RiceShrimpWeeklyPrice;
use Peidikeji\Keywords\Models\Keywords;
use Illuminate\Http\Request;
class ChartController extends Controller
@ -59,6 +61,48 @@ class ChartController extends Controller
];
}
/**
* 稻虾每周价格趋势
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function riceShrimpWeeklyPrice(Request $request)
{
$weeks = Keywords::where('type_key', 'weeks-per-year')->pluck('name', 'key');
$years = RiceShrimpWeeklyPrice::select('year')
->groupBy('year')
->orderBy('year', 'desc')
->limit(3)
->get()
->pluck('year');
$riceShrimpWeeklyPrices = RiceShrimpWeeklyPrice::query()
->whereIn('year', $years)
->get();
$series = $riceShrimpWeeklyPrices->groupBy('year')->map(function ($riceShrimpWeeklyPrices, $year) use ($weeks) {
$riceShrimpWeeklyPriceMap = $riceShrimpWeeklyPrices->mapWithKeys(fn ($item) => [$item->week => $item->price]);
$data = [];
foreach ($weeks as $key => $value) {
$data[] = $riceShrimpWeeklyPriceMap[$key] ?? null;
}
return [
'name' => $year,
'data' => $data,
];
});
return [
'x_axis' => array_values($weeks),
'series' => $series->sortKeys()->values()->all(),
];
}
/**
* 稻虾产业
*

View File

@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Peidikeji\Keywords\Models\Keywords;
@ -9,6 +10,6 @@ class WeeksPerYearController extends Controller
{
public function __invoke(Request $request)
{
return Keywords::where('type_key', 'weeks-per-year')->pluck('name', 'key');
return Keywords::select('name', 'key')->where('type_key', 'weeks-per-year')->get();
}
}

View File

@ -2,7 +2,6 @@
namespace App\Http\Controllers;
use App\Http\Controllers\RiceShrimpWeeklyPriceController;
use Illuminate\Support\Facades\Route;
/*