lcly-data-admin/app/Http/Controllers/RiceShrimpWeeklyPriceContro...

117 lines
3.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Enums\OperationType;
use App\Http\Requestes\RiceShrimpWeeklyPriceStoreRequest;
use App\Http\Requestes\RiceShrimpWeeklyPriceUpdateRequest;
use App\Http\Resources\RiceShrimpWeeklyPriceResource;
use App\Models\RiceShrimpWeeklyPrice;
use App\Services\OperationLogService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Peidikeji\Keywords\Models\Keywords;
class RiceShrimpWeeklyPriceController extends Controller
{
/**
* 稻虾每周价格列表
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Resources\Json\ResourceCollection
*/
public function index(Request $request): ResourceCollection
{
$riceShrimpWeeklyPrices = RiceShrimpWeeklyPrice::with(['createdBy', 'updatedBy', 'weekObj'])
->filter($request->all())
->latest('id')
->paginate(20);
return RiceShrimpWeeklyPriceResource::collection($riceShrimpWeeklyPrices);
}
/**
* 创建稻虾每周价格
*
* @param \App\Http\Requestes\RiceShrimpWeeklyPriceStoreRequest $request
* @return \App\Http\Resources\RiceShrimpWeeklyPriceResource
*
* @throws \App\Exceptions\BizException
*/
public function store(RiceShrimpWeeklyPriceStoreRequest $request): RiceShrimpWeeklyPriceResource
{
$user = $request->user();
$riceShrimpWeeklyPrice = RiceShrimpWeeklyPrice::create(
array_merge(
$request->only(['year', 'week', 'price']),
[
'created_by' => $user->id,
'updated_by' => $user->id,
]
)
);
$riceShrimpWeeklyPrice->setRelations([
'createdBy' => $user,
'updatedBy' => $user,
]);
(new OperationLogService())->inLog(OperationType::Create, '', $riceShrimpWeeklyPrice, $request->input());
return RiceShrimpWeeklyPriceResource::make($riceShrimpWeeklyPrice->loadMissing(['weekObj']));
}
/**
* 修改稻虾每周价格
*
* @param int $id
* @param \App\Http\Requestes\RiceShrimpWeeklyPriceUpdateRequest $request
* @return \App\Http\Resources\RiceShrimpWeeklyPriceResource
*/
public function update($id, RiceShrimpWeeklyPriceUpdateRequest $request): RiceShrimpWeeklyPriceResource
{
$riceShrimpWeeklyPrice = RiceShrimpWeeklyPrice::findOrFail($id);
foreach ([
'year',
'week',
'price',
] as $key) {
if ($request->filled($key)) {
$riceShrimpWeeklyPrice->{$key} = $request->input($key);
}
}
if ($riceShrimpWeeklyPrice->isDirty()) {
$riceShrimpWeeklyPrice->updated_by = $request->user()->id;
}
$riceShrimpWeeklyPrice->save();
(new OperationLogService())->inLog(OperationType::Update, '', $riceShrimpWeeklyPrice, $request->input());
return RiceShrimpWeeklyPriceResource::make(
$riceShrimpWeeklyPrice->loadMissing(['createdBy', 'updatedBy', 'weekObj'])
);
}
/**
* 删除稻虾每周价格
*
* @param int $id
* @return \Illuminate\Http\JsonResponse
*/
public function destroy($id): JsonResponse
{
$riceShrimpWeeklyPrice = RiceShrimpWeeklyPrice::findOrFail($id);
$riceShrimpWeeklyPrice->delete();
(new OperationLogService())->inLog(OperationType::Delete, '', $riceShrimpWeeklyPrice);
return response()->json(null);
}
}