| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 namespace app\api\controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\controller\Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\service\OrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use addons\epay\library\Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\Exception; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -64,8 +65,6 @@ class Pay extends Api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //验签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $paytype = input('paytype','wechat'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $func = input('func','order_notify_do'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $out_trade_no = 'O230606102813244205462'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $rs = $this->$func($out_trade_no);echo '<pre>';var_dump($rs);exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $notify_file = $this->notify_log_start($paytype); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $pay = Service::checkNotify($paytype); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!$pay) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -356,6 +355,36 @@ class Pay extends Api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //商家端金额更新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyWalletWhere['user_id'] = $orderInfo['company_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyWalletRes = Db::name('company_wallet')->where($companyWalletWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyMoneyBefore = isset($companyWalletRes['money']) ? $companyWalletRes['money'] : 0.00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyMoneyNew = bcadd($companyMoneyBefore,$orderInfo['order_amount'],2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyMoneyData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'money' => $companyMoneyNew, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyWalletRes = Db::name('company_wallet')->where($companyWalletWhere)->update($companyMoneyData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$companyWalletRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //商家端记录日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyMoneyLogData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user_id'      => $orderInfo['user_id'],//用户ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'log_type'     => 204,//日志类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'before'       => $companyMoneyBefore,//之前余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'change_value' => $orderInfo['order_amount'],//变动金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'remain'       => $companyMoneyNew,//剩余金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'table'        => 'pay_order',//数据来源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'table_id'     => $orderInfo['id'],//数据来源ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'remark'       => '充值',//备注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'createtime'   => $time, //创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $companyMoneyLogRes = Db::name('company_money_log')->insertGetId($companyMoneyLogData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$companyMoneyLogRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //逻辑结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //状态 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -384,152 +413,30 @@ class Pay extends Api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $carId = input('car_id','0'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $uid = $this->auth->id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $companyId = $this->auth->company_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $time = time(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $miniOpenId = $this->auth->mini_openid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (empty($id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new Exception('请选择套餐'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (empty($carId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new Exception('请选择车辆'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $userCarWhere['user_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $userCarWhere['id'] = $carId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $userCar = Db::name('user_car')->where($userCarWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (empty($userCar)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new Exception('未找到车辆信息'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $packageWhere['id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $packageWhere['status'] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $package = Db::name('package')->where($packageWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (empty($package)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new Exception('未找到套餐信息'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($package['company_id'] != $companyId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new Exception('您绑定的门店和购买套餐门店不一致'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($pay_type == 'wallet') {//验证余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletWhere['user_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletWhere['company_id'] = $companyId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWallet = Db::name('user_wallet')->where($userWalletWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (empty($userWallet)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception('钱包异常'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ($userWallet['money'] < $package['price']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception('您的余额不足,请充值。'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $gift_amount = 0.00; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $order_amount = $package['price']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $extData = ['car_id'=>$carId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //创建订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['company_id'] = $companyId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['user_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['out_trade_no'] = createUniqueNo('O',$uid); // 数据库订单号加密 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['order_amount'] = $order_amount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['gift_amount'] = $gift_amount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['createtime'] = time(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['pay_type'] = $pay_type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['order_status'] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['table_name'] = 'package'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['table_id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data['ext_data'] = json_encode($extData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $orderid = Db::name('pay_order')->insertGetId($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($pay_type == 'wechat') {//微信支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $openid = $this->auth->mini_openid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $httpStr = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //下单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'type'         => $pay_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'orderid'      => $data['out_trade_no'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'title'        => '购买套餐', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'amount'       => $data['order_amount'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'method'       => $platform, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'openid'       => $openid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'notifyurl' => $httpStr.'/api/pay/order_notify_base/paytype/'.$pay_type.'/func/package_do', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'returnurl' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $res = Service::submitOrder($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else {//余额支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //扣除钱包 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $oldMoney = $userWallet['money']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $newMoney = bcsub($oldMoney,$package['price'],2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletData['money'] = $newMoney; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletData['updatetime'] = $time; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletWhere['user_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletWhere['company_id'] = $companyId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWalletRes = Db::name('user_wallet')->where($userWalletWhere)->update($userWalletData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$userWalletRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception('支付失败'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //余额明细记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userMoneyLogData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'company_id' => $companyId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_id' => $uid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'log_type' => 103,//购买套餐 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'before' => $oldMoney, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'change_value' => $package['price'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'remain' => $newMoney, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'table' => 'pay_order', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'table_id' => $orderid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'remark' => '订单消费', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'createtime' => $time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userMoneyLogRes = Db::name('user_money_log')->insertGetId($userMoneyLogData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$userMoneyLogRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception('余额明细记录失败'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //生成订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $time = time(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $packageWhere['id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $package = Db::name('package')->where($packageWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $days = isset($package['days']) ? $package['days'] : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $packageEndtime = $time + 86400 * $days; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userId = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userWhere['id'] = $userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $user = Db::name('user')->where($userWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userCarWhere['id'] = $carId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $userCar = Db::name('user_car')->where($userCarWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //生成订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $orderData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'orderno'         => createUniqueNo('O', $userId),//订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'ordertype'       => 3,//类型:1=预约下单,2=在线下单,3=套餐订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'company_id'      => $companyId,//门店ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_id'         => $userId,//用户ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_name'       => isset($user['nickname']) ? $user['nickname'] : '',//用户姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_car_id'     => isset($userCar['id']) ? $userCar['id'] : 0,//车辆ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_car_number' => isset($userCar['car_number']) ? $userCar['car_number'] : '',//用户车牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'user_mobile'     => isset($user['mobile']) ? $user['mobile'] : '',//用户手机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'pre_order_id'    => 0,//预约单ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'package_id'      => isset($package['id']) ? $package['id'] : 0,//套餐ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'server_info'     => isset($package['info']) ? $package['info'] : '',//套餐内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'server_images'   => isset($package['images']) ? $package['images'] : '',//套餐图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'pay_fee'         => isset($package['price']) ? $package['price'] : 0,//套餐价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'package_endtime' => $packageEndtime,//套餐到期时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'status'          => 2,//状态:1=待支付,2=待处理,3=已完成,4=已取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'pay_time'        => $time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'paytype'         => 2,//支付方式:1=线下,2=余额,3=微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'pay_fee'         => $order_amount,//支付总额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'createtime'      => $time,//下单时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'pay_order_id'    => $orderid,//支付ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $orderRes = Db::name('order')->insertGetId($orderData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $payOrderData['order_status'] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $payOrderWhere['id'] = $orderid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $payOrderRes = Db::name('pay_order')->where($payOrderWhere)->update($payOrderData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$payOrderRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new Exception('支付失败'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $orderService = new OrderService(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'pay_type' => $pay_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'platform' => $platform, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'package_id' => $id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'car_id' => $carId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'user_id' => $uid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'company_id' => $companyId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'mini_openid' => $miniOpenId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $orderRes = $orderService->orderPay($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!$orderRes['status']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new Exception($orderRes['msg']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $res['order_id'] = isset($orderRes) ? $orderRes : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $res['pay_order_id'] = $orderid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $res = $orderRes['data']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Db::commit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if($pay_type == 'wechat'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $this->success('操作成功',json_decode($res,true)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $this->success('操作成功',$res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $this->success('操作成功',$res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $this->error($e->getMessage()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -553,42 +460,19 @@ class Pay extends Api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $time = time(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $packageWhere['id'] = $orderInfo['table_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $package = Db::name('package')->where($packageWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $days = isset($package['days']) ? $package['days'] : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $packageEndtime = $time + 86400 * $days; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $userId = $orderInfo['user_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $userWhere['id'] = $userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $user = Db::name('user')->where($userWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $orderService = new OrderService(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $extData = json_decode($orderInfo['ext_data'], true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $userCarWhere['id'] = isset($extData['car_id']) ? $extData['car_id'] : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $userCar = Db::name('user_car')->where($userCarWhere)->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //生成订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $orderData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'orderno'         => createUniqueNo('O', $userId),//订单号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'ordertype'       => 3,//类型:1=预约下单,2=在线下单,3=套餐订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'company_id'      => $orderInfo['company_id'],//门店ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'user_id'         => $userId,//用户ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'user_name'       => isset($user['nickname']) ? $user['nickname'] : '',//用户姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'user_car_id'     => isset($userCar['id']) ? $userCar['id'] : 0,//车辆ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'user_car_number' => isset($userCar['car_number']) ? $userCar['car_number'] : '',//用户车牌 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'user_mobile'     => isset($user['mobile']) ? $user['mobile'] : '',//用户手机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'pre_order_id'    => 0,//预约单ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'package_id'      => isset($package['id']) ? $package['id'] : 0,//套餐ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'server_info'     => isset($package['info']) ? $package['info'] : '',//套餐内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'server_images'   => isset($package['images']) ? $package['images'] : '',//套餐图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'pay_fee'         => isset($package['price']) ? $package['price'] : 0,//套餐价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'package_endtime' => $packageEndtime,//套餐到期时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'status'          => 2,//状态:1=待支付,2=待处理,3=已完成,4=已取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'pay_time'        => $time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'paytype'         => 3,//支付方式:1=线下,2=余额,3=微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'pay_fee'         => $orderInfo['order_amount'],//支付总额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'createtime'      => $time,//下单时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'pay_order_id'    => $orderInfo['id'],//支付ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $carId = isset($extData['car_id']) ? $extData['car_id'] : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $params = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'package_id' => $orderInfo['table_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'company_id' => $orderInfo['company_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user_id' => $orderInfo['user_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'car_id' => $carId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'pay_order_id' => $orderInfo['id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'order_paytype' => 3,//支付方式:1=线下,2=余额,3=微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $orderRes = Db::name('order')->insertGetId($orderData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!$orderRes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $orderRes = $orderService->addOrder($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$orderRes['status']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |