| 
									
										
										
										
											2023-08-10 14:59:52 +08:00
										 |  |  |  | <?php | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace app\api\controller; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | use app\api\logic\OrderInvoiceLogic; | 
					
						
							|  |  |  |  | use app\api\logic\OrderLogic; | 
					
						
							|  |  |  |  | use app\api\validate\OrderValidate; | 
					
						
							|  |  |  |  | use app\common\basics\Api; | 
					
						
							| 
									
										
										
										
											2023-09-26 16:12:38 +08:00
										 |  |  |  | use app\common\enum\ClientEnum; | 
					
						
							| 
									
										
										
										
											2023-08-14 17:51:34 +08:00
										 |  |  |  | use app\common\server\ConfigServer; | 
					
						
							| 
									
										
										
										
											2023-08-10 14:59:52 +08:00
										 |  |  |  | use app\common\server\JsonServer; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class  Order extends Api | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2023-08-14 17:51:34 +08:00
										 |  |  |  |     public $like_not_need_login = ['contractDownload']; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 合同下载 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @throws \think\Exception | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function contractDownload() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $path = ConfigServer::get('website', 'order_contract_template'); | 
					
						
							|  |  |  |  |         return JsonServer::success('下单成功!', ['path' => $path, 'domain' => request()->domain()]); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 18:17:45 +08:00
										 |  |  |  |     // 合同上传
 | 
					
						
							| 
									
										
										
										
											2023-08-14 17:51:34 +08:00
										 |  |  |  |     public function contractUpload() | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2023-08-14 18:17:45 +08:00
										 |  |  |  |         $orderId = input('order_id/d'); | 
					
						
							|  |  |  |  |         $path = input('path/s'); | 
					
						
							| 
									
										
										
										
											2023-08-14 17:51:34 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-14 18:17:45 +08:00
										 |  |  |  |         if (empty($orderId) || empty($path)) { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误!'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (!$order = \app\common\model\order\Order::where('id', $orderId)->find()) { | 
					
						
							|  |  |  |  |             return JsonServer::error('订单不存在!'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $order->save([ | 
					
						
							|  |  |  |  |             'frontend_info' => $path | 
					
						
							|  |  |  |  |         ]); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         return JsonServer::success('操作成功!'); | 
					
						
							| 
									
										
										
										
											2023-08-14 17:51:34 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-10 14:59:52 +08:00
										 |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 下单 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @throws \think\Exception | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function submit_order() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $post = $this->request->post(); | 
					
						
							|  |  |  |  |         $post['user_id'] = $this->user_id; | 
					
						
							|  |  |  |  |         $post['client'] = $this->client; | 
					
						
							| 
									
										
										
										
											2023-09-26 16:12:38 +08:00
										 |  |  |  |         if ($this->client == ClientEnum::api) { | 
					
						
							|  |  |  |  |             $post['is_api'] = 1;//通过三方API生成的订单
 | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-08-10 14:59:52 +08:00
										 |  |  |  |         (new OrderValidate())->goCheck('add', $post); | 
					
						
							|  |  |  |  |         $order = OrderLogic::add($post); | 
					
						
							|  |  |  |  |         if (false === $order) { | 
					
						
							|  |  |  |  |             return JsonServer::error(OrderLogic::getError()); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return JsonServer::success('下单成功!', $order); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 结算页数据 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function settlement() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $post = $this->request->post(); | 
					
						
							|  |  |  |  |         $post['user_id'] = $this->user_id; | 
					
						
							|  |  |  |  |         $post['client'] = $this->client; | 
					
						
							|  |  |  |  |         $result = OrderLogic::settlement($post); | 
					
						
							|  |  |  |  |         if($result === false) { | 
					
						
							|  |  |  |  |             return JsonServer::error(OrderLogic::getError(), [], 301); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return JsonServer::success('获取成功', $result); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 订单列表 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function lists() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $type = $this->request->get('type', 'all'); | 
					
						
							|  |  |  |  |         $order_list = OrderLogic::getOrderList($this->user_id, $type, $this->page_no, $this->page_size); | 
					
						
							|  |  |  |  |         return JsonServer::success('获取成功', $order_list); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 获取订单详情 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function getOrderDetail() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $get = $this->request->get(); | 
					
						
							|  |  |  |  |         (new OrderValidate())->goCheck('getOrderDetail', $get); | 
					
						
							|  |  |  |  |         $detail = OrderLogic::getOrderDetail($get['id']); | 
					
						
							|  |  |  |  |         return JsonServer::success('获取成功', $detail); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 取消订单 | 
					
						
							|  |  |  |  |      * @return array|\think\response\Json | 
					
						
							|  |  |  |  |      * @throws \think\db\exception\DataNotFoundException | 
					
						
							|  |  |  |  |      * @throws \think\db\exception\ModelNotFoundException | 
					
						
							|  |  |  |  |      * @throws \think\exception\DbException | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function cancel() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $order_id = $this->request->post('id'); | 
					
						
							|  |  |  |  |         if (empty($order_id)) { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return OrderLogic::cancel($order_id, $this->user_id); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 确认收货 | 
					
						
							|  |  |  |  |      * @return array|\think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:11 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function confirm() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $order_id = $this->request->post('id'); | 
					
						
							|  |  |  |  |         if (empty($order_id)) { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return OrderLogic::confirm($order_id, $this->user_id); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 删除订单 | 
					
						
							|  |  |  |  |      * @return array|\think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:12 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function del() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $order_id = $this->request->post('id'); | 
					
						
							|  |  |  |  |         if (empty($order_id)) { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return OrderLogic::del($order_id, $this->user_id); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 订单支付结果页面数据 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:12 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function pay_result() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $id = $this->request->get('id'); | 
					
						
							|  |  |  |  |         $from = $this->request->get('from');//标识:trade:父订单,order:子订单
 | 
					
						
							|  |  |  |  |         $result = OrderLogic::pay_result($id,$from); | 
					
						
							|  |  |  |  |         if ($result !== false) { | 
					
						
							|  |  |  |  |             return JsonServer::success('', $result); | 
					
						
							|  |  |  |  |         } else { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 获取支付方式 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:12 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function getPayWay() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $params = $this->request->get(); | 
					
						
							|  |  |  |  |         if(!isset($params['from']) || !isset($params['order_id'])) { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数缺失'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         $pay_way = OrderLogic::getPayWay($this->user_id, $this->client, $params); | 
					
						
							|  |  |  |  |         return JsonServer::success('', $pay_way); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 物流查询 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @throws \think\db\exception\DataNotFoundException | 
					
						
							|  |  |  |  |      * @throws \think\db\exception\DbException | 
					
						
							|  |  |  |  |      * @throws \think\db\exception\ModelNotFoundException | 
					
						
							|  |  |  |  |      * @throws \think\exception\DbException | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/7/13 6:12 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function orderTraces() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $order_id = $this->request->get('id'); | 
					
						
							|  |  |  |  |         $tips = '参数错误'; | 
					
						
							|  |  |  |  |         if ($order_id) { | 
					
						
							|  |  |  |  |             $traces = OrderLogic::orderTraces($order_id, $this->user_id); | 
					
						
							|  |  |  |  |             if ($traces) { | 
					
						
							|  |  |  |  |                 return JsonServer::success('获取成功', $traces); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             $tips = '暂无物流信息'; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         return JsonServer::error($tips); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes PC获取支付状态 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author suny | 
					
						
							|  |  |  |  |      * @date 2021/10/29 3:52 下午 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function getPayStatus() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $id = $this->request->get('id'); | 
					
						
							|  |  |  |  |         $from = $this->request->get('from');//标识:trade:父订单,order:子订单
 | 
					
						
							|  |  |  |  |         $result = OrderLogic::getPayStatus($id,$from); | 
					
						
							|  |  |  |  |         if ($result !== false) { | 
					
						
							|  |  |  |  |             return JsonServer::success('', $result); | 
					
						
							|  |  |  |  |         } else { | 
					
						
							|  |  |  |  |             return JsonServer::error('参数错误'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * @notes 发票详情 | 
					
						
							|  |  |  |  |      * @return \think\response\Json | 
					
						
							|  |  |  |  |      * @author 段誉 | 
					
						
							|  |  |  |  |      * @date 2022/4/12 9:25 | 
					
						
							|  |  |  |  |      */ | 
					
						
							|  |  |  |  |     public function invoice() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $id = $this->request->get('id'); | 
					
						
							|  |  |  |  |         $result = OrderInvoiceLogic::getInvoiceDetailByOrderId($id); | 
					
						
							|  |  |  |  |         return JsonServer::success('获取成功', $result); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } |