123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Http\Models\Asset;
- use App\Http\Models\AssetType;
- use App\Http\Requests\School\AssetSaveRequest;
- use App\Http\Requests\School\AssetTypeSaveRequest;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- /**
- * 引擎力学堂
- * Class SchoolController
- * @package App\Http\Controllers\Admin
- */
- class SchoolController extends Controller
- {
- //资源类型
- public function assetTypes(Request $request)
- {
- if (!$request->ajax()) {
- return view('admin/school/asset_type');
- }
- if ($keyword = $request->input('keyword')) {
- $filter[] = ['title', 'like', '%' . $keyword . '%'];
- }
- $records = AssetType::query()->where($filter ?? [])->orderByDesc('id')
- ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
- $items = $records->items();
- return response()->json([
- 'rows' => $items,
- 'total' => $records->total()
- ]);
- }
- //资源类型 保存
- public function assetTypesSave(AssetTypeSaveRequest $request, $id)
- {
- if (!$request->ajax()) {
- if ($id > 0) {
- $record = AssetType::query()->find($id);
- }
- return view('admin/school/asset_type_save', [
- 'data' => $record ?? null
- ]);
- }
- $validated = $request->validated();
- AssetType::query()->updateOrCreate(['id' => $id], $validated);
- return response()->json(['message' => '操作成功']);
- }
- //资源类型删除
- public function assetTypeDelete($id)
- {
- if (Asset::query()->where(['type_id' => $id])->exists()) {
- return response()->json(['message' => '请先删除此类型下的资源'], 400);
- }
- AssetType::query()->where(['id' => $id])->delete();
- return response()->json(['message' => '操作成功']);
- }
- //资源列表
- public function assets(Request $request)
- {
- if (!$request->ajax()) {
- $assetTypes = AssetType::query()->get();
- return view('admin/school/asset', [
- 'assetTypes' => $assetTypes
- ]);
- }
- if ($typeId = $request->input('type_id')) {
- $filter[] = ['type_id', '=', $typeId];
- }
- $records = Asset::query()->with(['assetType'])->where($filter ?? [])->orderByDesc('id')
- ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
- $items = $records->items();
- array_walk($items, function ($item) {
- $item->type_title = $item->assetType->title ?? '';
- });
- return response()->json([
- 'rows' => $items,
- 'total' => $records->total()
- ]);
- }
- //资源保存
- public function assetsSave(AssetSaveRequest $request, $id)
- {
- if (!$request->ajax()) {
- $assetTypes = AssetType::query()->get();
- if ($id > 0) {
- $record = Asset::query()->find($id);
- }
- return view('admin/school/asset_save', [
- 'data' => $record ?? null,
- 'assetTypes' => $assetTypes
- ]);
- }
- $validated = $request->validated();
- Asset::query()->updateOrCreate(['id' => $id], $validated);
- return response()->json(['message' => '操作成功']);
- }
- //资源保存
- public function assetsDelete(Request $request)
- {
- $ids = $request->input('ids');
- Asset::query()->whereIn('id', $ids)->delete();
- return response()->json(['message' => '操作成功']);
- }
- }
|