dev
李静 2023-05-16 17:02:29 +08:00
parent f05944cfaf
commit a6eb77838e
7 changed files with 33 additions and 8 deletions

View File

@ -11,6 +11,7 @@ use App\Services\OperationLogService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;
use Peidikeji\Keywords\Models\Keywords;
class RiceShrimpWeeklyPriceController extends Controller class RiceShrimpWeeklyPriceController extends Controller
{ {
@ -22,7 +23,7 @@ class RiceShrimpWeeklyPriceController extends Controller
*/ */
public function index(Request $request): ResourceCollection public function index(Request $request): ResourceCollection
{ {
$riceShrimpWeeklyPrices = RiceShrimpWeeklyPrice::with(['createdBy', 'updatedBy']) $riceShrimpWeeklyPrices = RiceShrimpWeeklyPrice::with(['createdBy', 'updatedBy', 'weekObj'])
->filter($request->all()) ->filter($request->all())
->latest('id') ->latest('id')
->paginate(20); ->paginate(20);
@ -59,7 +60,7 @@ class RiceShrimpWeeklyPriceController extends Controller
(new OperationLogService())->inLog(OperationType::Create, '', $riceShrimpWeeklyPrice, $request->input()); (new OperationLogService())->inLog(OperationType::Create, '', $riceShrimpWeeklyPrice, $request->input());
return RiceShrimpWeeklyPriceResource::make($riceShrimpWeeklyPrice); return RiceShrimpWeeklyPriceResource::make($riceShrimpWeeklyPrice->loadMissing(['weekObj']));
} }
/** /**
@ -92,7 +93,7 @@ class RiceShrimpWeeklyPriceController extends Controller
(new OperationLogService())->inLog(OperationType::Update, '', $riceShrimpWeeklyPrice, $request->input()); (new OperationLogService())->inLog(OperationType::Update, '', $riceShrimpWeeklyPrice, $request->input());
return RiceShrimpWeeklyPriceResource::make( return RiceShrimpWeeklyPriceResource::make(
$riceShrimpWeeklyPrice->loadMissing(['createdBy', 'updatedBy']) $riceShrimpWeeklyPrice->loadMissing(['createdBy', 'updatedBy', 'weekObj'])
); );
} }

View File

@ -10,6 +10,6 @@ class WeeksPerYearController extends Controller
{ {
public function __invoke(Request $request) public function __invoke(Request $request)
{ {
return Keywords::select('name', 'key')->where('type_key', 'weeks-per-year')->get(); return Keywords::select('name', 'id')->where('type_key', 'weeks-per-year')->get();
} }
} }

View File

@ -2,8 +2,11 @@
namespace App\Http\Requestes; namespace App\Http\Requestes;
use App\Models\RiceShrimpWeeklyPrice;
use App\Rules\Quarter; use App\Rules\Quarter;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Peidikeji\Keywords\Models\Keywords;
class RiceShrimpWeeklyPriceStoreRequest extends FormRequest class RiceShrimpWeeklyPriceStoreRequest extends FormRequest
{ {
@ -16,7 +19,13 @@ class RiceShrimpWeeklyPriceStoreRequest extends FormRequest
{ {
return [ return [
'year' => ['required', 'int'], 'year' => ['required', 'int'],
'week' => ['required', 'int'], 'week' => [
'required',
'int',
Rule::exists(Keywords::class, 'id')->where(function ($query) {
return $query->where('type_key', 'weeks-per-year');
}),
],
'price' => ['required', 'int'], 'price' => ['required', 'int'],
]; ];
} }

View File

@ -3,6 +3,8 @@
namespace App\Http\Requestes; namespace App\Http\Requestes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Peidikeji\Keywords\Models\Keywords;
class RiceShrimpWeeklyPriceUpdateRequest extends FormRequest class RiceShrimpWeeklyPriceUpdateRequest extends FormRequest
{ {
@ -15,7 +17,13 @@ class RiceShrimpWeeklyPriceUpdateRequest extends FormRequest
{ {
return [ return [
'year' => ['filled', 'int'], 'year' => ['filled', 'int'],
'week' => ['filled', 'int'], 'week' => [
'filled',
'int',
Rule::exists(Keywords::class, 'id')->where(function ($query) {
return $query->where('type_key', 'weeks-per-year');
}),
],
'price' => ['filled', 'int'], 'price' => ['filled', 'int'],
]; ];
} }

View File

@ -18,6 +18,7 @@ class RiceShrimpWeeklyPriceResource extends JsonResource
'id' => $this->id, 'id' => $this->id,
'year' => $this->year, 'year' => $this->year,
'week' => $this->week, 'week' => $this->week,
'week_label' => $this->weekObj?->name,
'price' => $this->price, 'price' => $this->price,
'created_by' => AdminUserResource::make($this->whenLoaded('createdBy')), 'created_by' => AdminUserResource::make($this->whenLoaded('createdBy')),
'updated_by' => AdminUserResource::make($this->whenLoaded('updatedBy')), 'updated_by' => AdminUserResource::make($this->whenLoaded('updatedBy')),

View File

@ -5,6 +5,7 @@ namespace App\Models;
use EloquentFilter\Filterable; use EloquentFilter\Filterable;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Peidikeji\Keywords\Models\Keywords;
class RiceShrimpWeeklyPrice extends Model class RiceShrimpWeeklyPrice extends Model
{ {
@ -14,6 +15,11 @@ class RiceShrimpWeeklyPrice extends Model
'year', 'week', 'price', 'created_by', 'updated_by', 'year', 'week', 'price', 'created_by', 'updated_by',
]; ];
public function weekObj()
{
return $this->belongsTo(Keywords::class, 'week');
}
public function createdBy() public function createdBy()
{ {
return $this->belongsTo(AdminUser::class, 'created_by'); return $this->belongsTo(AdminUser::class, 'created_by');

View File

@ -38,8 +38,8 @@ class KeywordsTableSeeder extends Seeder
$list = []; $list = [];
for ($i=1; $i <= 12; $i++) { for ($i=1; $i <= 12; $i++) {
for ($j=1; $j <= 4; $i++) { for ($j=1; $j <= 4; $j++) {
$list[] = ['key' => ($i-1)*4+$j, 'name' => "{$i}月第{$j}", 'value' => '']; $list[] = ['key' => ($i-1)*4+$j, 'name' => "{$i}月第{$j}", 'value' => null];
} }
} }