filled('keyword')) { $query->where(function ($q) use ($request) { $q->where('sku_code', 'like', "%{$request->keyword}%") ->orWhere('name', 'like', "%{$request->keyword}%") ->orWhere('platform_sku', 'like', "%{$request->keyword}%"); }); } $perPage = $request->input('limit', 15); $skus = $query->paginate($perPage); return response()->json([ 'code' => 200, 'data' => [ 'list' => $skus->items(), 'total' => $skus->total(), 'current_page' => $skus->currentPage(), 'last_page' => $skus->lastPage(), ], 'message' => 'success' ]); } /** * 创建商品 */ public function store(Request $request) { $request->validate([ 'sku_code' => 'required|unique:erp_skus', 'name' => 'required', 'platform_sku' => 'nullable', 'alias' => 'nullable', 'price' => 'nullable|numeric', 'stock' => 'nullable|integer', ]); $sku = ErpSku::create($request->all()); return response()->json([ 'code' => 200, 'data' => $sku, 'message' => '创建成功' ]); } /** * 商品详情 */ public function show($id) { $sku = ErpSku::findOrFail($id); return response()->json([ 'code' => 200, 'data' => $sku, 'message' => 'success' ]); } /** * 更新商品 */ public function update(Request $request, $id) { $sku = ErpSku::findOrFail($id); $request->validate([ 'sku_code' => 'sometimes|required|unique:erp_skus,sku_code,' . $id, 'name' => 'sometimes|required', 'platform_sku' => 'nullable', 'alias' => 'nullable', 'price' => 'nullable|numeric', 'stock' => 'nullable|integer', ]); $sku->update($request->all()); return response()->json([ 'code' => 200, 'data' => $sku, 'message' => '更新成功' ]); } /** * 删除商品 */ public function destroy($id) { $sku = ErpSku::findOrFail($id); $sku->delete(); return response()->json([ 'code' => 200, 'message' => '删除成功' ]); } /** * 获取所有商品(用于下拉选择) */ public function all() { $skus = ErpSku::select('id', 'sku_code', 'name', 'price')->get(); return response()->json([ 'code' => 200, 'data' => $skus, 'message' => 'success' ]); } }