paginate(20); return response()->json([ 'code' => 200, 'message' => 'success', 'data' => $orders ]); } /** * 从淘宝同步订单 */ public function syncFromTaobao(Request $request) { // 验证请求参数 $validator = Validator::make($request->all(), [ 'start_time' => 'required|date', 'end_time' => 'required|date|after:start_time', ]); if ($validator->fails()) { return response()->json([ 'code' => 422, 'message' => '参数错误', 'errors' => $validator->errors() ], 422); } // 从配置中获取淘宝凭证(也可以在.env中配置) $appKey = config('services.taobao.app_key'); $appSecret = config('services.taobao.app_secret'); $accessToken = config('services.taobao.access_token'); if (!$appKey || !$appSecret || !$accessToken) { return response()->json([ 'code' => 500, 'message' => '淘宝API凭证未配置' ], 500); } try { $service = new TaobaoService($appKey, $appSecret, $accessToken); $response = $service->fetchOrders($request->start_time, $request->end_time); // 解析淘宝返回的数据(根据实际返回结构调整) $trades = $response['trades_sold_get_response']['trades']['trade'] ?? []; $syncedCount = 0; foreach ($trades as $trade) { // 检查订单是否已存在,避免重复 $order = Order::updateOrCreate( ['platform_order_id' => $trade['tid']], [ 'platform' => 'taobao', 'total_amount' => $trade['payment'], 'status' => $trade['status'], 'raw_data' => $trade, // 保存原始数据 ] ); $syncedCount++; } return response()->json([ 'code' => 200, 'message' => '同步完成', 'data' => [ 'synced_count' => $syncedCount ] ]); } catch (\Exception $e) { return response()->json([ 'code' => 500, 'message' => '同步失败:' . $e->getMessage() ], 500); } } /** * 获取单个订单详情 */ public function show($id) { $order = Order::find($id); if (!$order) { return response()->json([ 'code' => 404, 'message' => '订单不存在' ], 404); } return response()->json([ 'code' => 200, 'message' => 'success', 'data' => $order ]); } }