Silent hace 7 años
padre
commit
6d9ab329a0
Se han modificado 1 ficheros con 17 adiciones y 1 borrados
  1. 17 1
      app/Http/Controllers/WeChat/ApiController.php

+ 17 - 1
app/Http/Controllers/WeChat/ApiController.php

xqd xqd
@@ -2,7 +2,9 @@
 
 namespace App\Http\Controllers\WeChat;
 
+use App\Models\Setting;
 use App\Models\Student;
+use GuzzleHttp\Client;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Controller;
 use Illuminate\Support\Facades\Log;
@@ -50,6 +52,20 @@ class ApiController extends Controller
 
     public function checkPosition(Request $request)
     {
-        
+        if(empty($request->input('latitude')) || empty($request->input('longitude'))) {
+            return response()->json(['status' => 'fail', 'info' => '参数错误']);
+        }
+
+        $center_position = Setting::where('key', 'check_card_location')->first();
+        if(empty($center_position) || empty($center_position->value) || count($tmp = explode(',', $center_position->value)) < 2) {
+            $tmp = ['39.916527', '116.397128'];
+        }
+
+        $client = new Client();
+        $from = $tmp[0] . ',' . $tmp[1];
+        $to = $request->input('latitude') . ',' . $request->input('longitude');
+        $res = $client->get('https://apis.map.qq.com/ws/distance/v1/', ['from' => $from, 'to' => $to, 'key' => env('TECENT_POSITION_KEY')]);
+        $res = (string)$res->getBody();
+        return response()->json(['status' => 'success', 'data' => $res]);
     }
 }