keyword) { $query->where('name', 'like', "%{$request->keyword}%"); } if ($request->has('status')) { $query->where('status', $request->status); } $stores = $query->orderByDesc('id') ->paginate($request->input('page_size', 20)); return $this->paginate($stores); } public function store(Request $request): JsonResponse { $data = $request->validate([ 'region_id' => 'required|exists:regions,id', 'name' => 'required|string|max:100', 'code' => 'nullable|string|max:20|unique:stores,code', 'address' => 'nullable|string|max:255', 'phone' => 'nullable|string|max:20', 'status' => 'in:0,1', ]); $store = Store::create($data); return $this->success($store, '创建成功'); } public function show(Store $store): JsonResponse { $store->load('region'); return $this->success($store); } public function update(Request $request, Store $store): JsonResponse { $data = $request->validate([ 'region_id' => 'exists:regions,id', 'name' => 'string|max:100', 'code' => 'nullable|string|max:20|unique:stores,code,' . $store->id, 'address' => 'nullable|string|max:255', 'phone' => 'nullable|string|max:20', 'status' => 'in:0,1', ]); $store->update($data); return $this->success($store, '更新成功'); } public function destroy(Store $store): JsonResponse { if ($store->users()->exists()) { return $this->error('该门店下还有员工,无法删除'); } $store->delete(); return $this->success(null, '删除成功'); } }