| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | <?phpnamespace 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' => '操作成功']);    }}
 |