67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Helpers\Paginator;
|
|
use App\Http\Requestes\CropYieldRequest;
|
|
use App\Http\Requestes\CropYieldUpdateRequest;
|
|
use App\Http\Resources\CropYieldResource;
|
|
use App\Models\CropYield;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CropYieldController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$query = CropYield::filter($request->all());
|
|
$totalNum = $query->sum('yield'); //总产量
|
|
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
|
$list->load(['base', 'createdBy']);
|
|
|
|
return $this->json([
|
|
'total' => $totalNum,
|
|
'list' => CropYieldResource::collection($list),
|
|
]);
|
|
}
|
|
|
|
public function store(CropYieldRequest $request)
|
|
{
|
|
$yields = $request->input('yields');
|
|
CropYield::insert(array_map(function ($item) use ($request) {
|
|
return array_merge($item, [
|
|
'time_year' => $request->input('time_year'),
|
|
'crop_id' => $request->input('crop_id'),
|
|
'created_by' => auth('api')->user()?->id ?? 0,
|
|
'updated_by' => auth('api')->user()?->id ?? 0,
|
|
'created_at' => now(),
|
|
'updated_at' => now(),
|
|
]);
|
|
}, $yields));
|
|
|
|
return $this->success('添加成功');
|
|
}
|
|
|
|
public function show(CropYield $cropYield)
|
|
{
|
|
$cropYield->load(['base', 'crop', 'createdBy']);
|
|
|
|
return $this->json(CropYieldResource::make($cropYield));
|
|
}
|
|
|
|
public function update(CropYield $cropYield, CropYieldUpdateRequest $request)
|
|
{
|
|
$cropYield->update(array_merge($request->input(),
|
|
['updated_by' => auth('api')->user()?->id ?? 0]
|
|
));
|
|
|
|
return $this->success('修改成功');
|
|
}
|
|
|
|
public function destroy(CropYield $cropYield)
|
|
{
|
|
$cropYield->delete();
|
|
|
|
return $this->success('删除成功');
|
|
}
|
|
}
|