isAjax()) { $order_common_model = new OrderCommonModel(); $condition = array( ["buyer_shop_id", "=", $this->site_id], ); $order_status = input('order_status', 'all'); switch ($order_status) { case "waitpay"://待付款 $condition[] = ["order_status", "=", 0]; break; case "waitsend"://待发货 $condition[] = ["order_status", "=", 1]; break; case "waitconfirm"://待收货 $condition[] = ["order_status", "=", 3]; break; case "waitrate"://待评价 $condition[] = ["order_status", "in", [4, 10]]; $condition[] = ["is_evaluate", "=", 1]; break; } $page_index = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $res = $order_common_model->getMemberOrderPageList($condition, $page_index, $page_size, "create_time desc"); $shop_order_ids=array_column($res['data']['list'],'shop_order_id'); $goods_order_ids = model('order_goods')->getColumn([['site_id', '=', $this->site_id],['order_id', 'in', $shop_order_ids]],'goods_money', 'order_id'); foreach ($res['data']['list'] as $key => &$value) { if(isset($goods_order_ids[$value['shop_order_id']])){ $value['shop_goods_money']=$goods_order_ids[$value['shop_order_id']]; } } return $res; } else { $this->forthMenu(); return $this->fetch("supply_order/lists"); } } public function seeSubOrder() { $order_id = input('order_id', 0); $channel_type = input('channel_type', ''); if (request()->isAjax()) { $order_common_model = new OrderCommonModel(); $search = request()->all(); $info=$order_common_model->getOrderInfo(['order_id'=>$order_id],'shop_order_id'); $res = $order_common_model->getSubOrder($this->site_id, $info['data']['shop_order_id'], $search); return $res; } return $this->fetch('supply_order/sub_list', ['order_id' => $order_id,'channel_type'=>$channel_type]); } /**** * 取消订单 * @return void */ public function cancelOrder() { $order_id = input('order_id', 0); $cancelReason = input('cancelReason', ''); if (request()->isAjax()) { $order_common_model = new OrderCommonModel(); $res = $order_common_model->getMemberOrderDetail($order_id)['data']; $order_from_name = explode('|', $res['order_from_name']); if ($res['order_from'] == 'api') { $cloudModel = new CloudApi($order_from_name[1]); $data = [ 'outTradeNo' => $res['out_trade_no'], 'cancelReason' => $cancelReason, ]; $payData = $cloudModel->cancelOrder($data); if ($payData['code'] == 0) { $up = [ 'reason_failure' => $cancelReason, 'request_content' => '卖家主动取消订单' ]; $outTradeNo = $data['outTradeNo']; $order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]); } return $payData; } return $res; } } /*** * 发起密码支付 * @return void */ public function buyPay() { $order_id = input('order_id', 0); if (request()->isAjax()) { $order_common_model = new OrderCommonModel(); $res = $order_common_model->getMemberOrderDetail($order_id)['data']; if (!$res['pay_status'] == 1) { return error('该订单已支付'); } else { $order_from_name = explode('|', $res['order_from_name']); if ($res['order_from'] == 'api') { $cloudModel = new CloudApi($order_from_name[1]); $data = [ 'outTradeNo' => $res['out_trade_no'], ]; $qres = $cloudModel->pBalancePay($data); $payData = $qres['data']; if ($payData['code'] != 0) { if ($payData['message'] == '订单已支付') { $up = [ 'pay_status' => 1, 'three_pay_status' => 1 ]; $outTradeNo = $data['outTradeNo']; $order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]); return success(0, '支付成功'); } return $payData; } else { if ($payData['isPay'] == 1) { $up = [ 'pay_status' => 1, 'three_pay_status' => 1 ]; $outTradeNo = $data['outTradeNo']; $order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]); return success(0, '支付成功'); } } return $res; } } return $res; } } /*** * 获取在线支付信息 * @return array|void */ public function onlinePay() { $order_id = input('order_id', 0); if (request()->isAjax()) { $order_common_model = new OrderCommonModel(); $res = $order_common_model->getMemberOrderDetail($order_id)['data']; $order_from_name = explode('|', $res['order_from_name']); if ($res['order_from'] == 'api') { $cloudModel = new CloudApi($order_from_name[1]); $data = [ 'outTradeNo' => $res['out_trade_no'], ]; $qres = $cloudModel->getPayOnlineInfo($data); return $qres; } } } public function resetOrder() { if (request()->isAjax()) { $order_id = input('order_id', 0); $orderInfo=model('order')->getInfo(['order_id'=>$order_id]); if($orderInfo){ return (new OrderCreate())->orderPay($orderInfo); }else{ return error(-1,'订单不存在'); } } } }