lcly-data-admin/app/Http/Controllers/RiceShrimpPriceController.php

108 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requestes\RiceShrimpPriceStoreRequest;
use App\Http\Requestes\RiceShrimpPriceUpdateRequest;
use App\Http\Resources\RiceShrimpPriceResource;
use App\Models\RiceShrimpPrice;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\ResourceCollection;
class RiceShrimpPriceController extends Controller
{
/**
* 稻虾价格列表
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Resources\Json\ResourceCollection
*/
public function index(Request $request): ResourceCollection
{
$riceShrimpPrices = RiceShrimpPrice::with(['createdBy', 'updatedBy'])
->filter($request->all())
->latest('id')
->paginate(20);
return RiceShrimpPriceResource::collection($riceShrimpPrices);
}
/**
* 创建稻虾价格
*
* @param \App\Http\Requestes\RiceShrimpPriceStoreRequest $request
* @return \App\Http\Resources\RiceShrimpPriceResource
*
* @throws \App\Exceptions\BizException
*/
public function store(RiceShrimpPriceStoreRequest $request): RiceShrimpPriceResource
{
$user = $request->user();
$riceShrimpPrice = RiceShrimpPrice::create(
array_merge(
$request->only(['year', 'quarter', 'price']),
[
'created_by' => $user->id,
'updated_by' => $user->id,
]
)
);
$riceShrimpPrice->setRelations([
'createdBy' => $user,
'updatedBy' => $user,
]);
return RiceShrimpPriceResource::make($riceShrimpPrice);
}
/**
* 修改稻虾价格
*
* @param int $id
* @param \App\Http\Requestes\RiceShrimpPriceUpdateRequest $request
* @return \App\Http\Resources\RiceShrimpPriceResource
*/
public function update($id, RiceShrimpPriceUpdateRequest $request): RiceShrimpPriceResource
{
$riceShrimpPrice = RiceShrimpPrice::findOrFail($id);
foreach ([
'year',
'quarter',
'price',
] as $key) {
if ($request->filled($key)) {
$riceShrimpPrice->{$key} = $request->input($key);
}
}
if ($riceShrimpPrice->isDirty()) {
$riceShrimpPrice->updated_by = $request->user()->id;
}
$riceShrimpPrice->save();
return RiceShrimpPriceResource::make(
$riceShrimpPrice->loadMissing(['createdBy', 'updatedBy'])
);
}
/**
* 删除稻虾价格
*
* @param int $id
* @return \Illuminate\Http\JsonResponse
*/
public function destroy($id): JsonResponse
{
$riceShrimpPrice = RiceShrimpPrice::findOrFail($id);
$riceShrimpPrice->delete();
return response()->json(null);
}
}