116 lines
3.5 KiB
PHP
116 lines
3.5 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;
|
|
|
|
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'])
|
|
->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', 'quarter', '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);
|
|
}
|
|
|
|
/**
|
|
* 修改稻虾每周价格
|
|
*
|
|
* @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'])
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 删除稻虾每周价格
|
|
*
|
|
* @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);
|
|
}
|
|
}
|