SyncOrder(); } public function SyncOrder(){ //查询需要同步到卖家云的订单 $today_date = date('Y-m-d'); echo "\n订单同步时间: " . date('Y-m-d H:i:s'); $result = Order::where('delivery_date', '=', $today_date)->where('warehouse', 3)->where('is_del', 0)->whereIn('status', [2,3])->lists('id'); if(empty($result)){ return; } foreach($result as $id){ $mjOrder = $this->getMjOrder($id); if(!empty($mjOrder)){ if($mjOrder['status'] == '已取消'){ $res = $this->updateOrderToMj($id); echo "\n订单ID:".$id." 卖家取消订单重新更新"; } }else{ $res = $this->syncOrderToMj($id); if(!$res){ echo "\n订单ID:".$id." 同步失败"; }else{ echo "\n订单ID:".$id." 同步成功"; } } } } /** * 订单同步到卖家云 */ public function syncOrderToMj($id, $order = []){ if( empty($order) ){ $order = Order::select('eshopCode','outerCode','status','customerName','shippingType','expressCompanyCode','expressCompanyName','receiverName','receiverMobile','receiverPhone','receiverState','receiverCity','receiverDistrict','receiverStreet','receiverAddress','buyerPostageFee','discountFee','adjustFee','serviceFee','paymentMethod','paymentType','paymentAccount','paymentTime','receivedAmount','buyerMemo','sellerMemo','createTime','modifyTime')->where('id', $id)->first(); $order = json_decode(json_encode($order), true); $skus = DB::table('order_goods_skus')->where('order_id', $id)->where('is_del', 0)->get(); $skus = json_decode(json_encode($skus), true); foreach($skus as $k=>$v){ $sku_info = GoodsSkus::where('id', $v['sku_id'])->first(); $goods_info = Goods::where('id', $v['goods_id'])->first(); $params = array(); $params['outerCode'] = $order['outerCode']+$k+1; //外部平台中子订单编码 $params['outerParentCode'] = $order['outerCode']; //外部平台中订单编码 $params['goodsCode'] = $sku_info->goodsCode;// $params['skuCode'] = $v['sku_id']; #商品名称 $params['goodsName'] = $goods_info->name; $params['propertiesName'] = $sku_info->is_weigh==1 ? $sku_info->propsName.'【按半斤称重】' : $sku_info->propsName; //$params['goodsName'] = '海钓黄翅鱼';//$goods->code; $params['price'] = $sku_info->is_weigh==1 ? round($v['price']/2,2) : $v['price']; $params['quantity'] = (int)($sku_info->is_weigh==1 ? $v['num']*2 : $v['num']); $params['discountFee'] = 0; $params['adjustFee'] = 0; $params['refundStatus'] = '正常'; $order['skuList'][] = $params; } } //卖家云添加订单 ->改为审核通过再同步卖家云 $mj_add = Order::mjOrderAdd($order); //同步卖家云订单数据到本系统 if( isset($mj_add['order']['code']) ){ $mjorder = array(); $mjorder['orderCode'] = $mj_add['order']['code']; Order::where('id', $id)->update($mjorder); } return $mj_add; } /** * 获取订单信息,可用来判断订单是否存在,同步订单状态 */ public function getMjOrder($id, $outerCode=''){ $order = array(); $order['eshopCode'] = config('constants.ESHOP_CODE'); if(!$outerCode){ $outerCode = Order::where('id', $id)->pluck('outerCode'); } $order['outerCode'] = $outerCode; $mjOrder = Order::mjOrderGet($order); if(!isset($mjOrder['order']['code'])){ return false; } return $mjOrder['order']; } /** * 订单更新同步到卖家云 */ public function updateOrderToMj($id, $order = []){ if( empty($order) ){ $order = Order::select('orderCode as code','eshopCode','outerCode','status','customerName','shippingType','expressCompanyCode','expressCompanyName','receiverName','receiverMobile','receiverPhone','receiverState','receiverCity','receiverDistrict','receiverStreet','receiverAddress','buyerPostageFee','discountFee','adjustFee','serviceFee','paymentMethod','paymentType','paymentAccount','paymentTime','receivedAmount','buyerMemo','sellerMemo','createTime','modifyTime')->where('id', $id)->first(); $order = json_decode(json_encode($order), true); } $mj_add = Order::mjOrderUpdate($order); return $mj_add; } }