master
cody 3 months ago
parent 6fae316ea0
commit 9f1a99deb3

@ -143,15 +143,20 @@ class OtherController extends CommonController
// 使用标准的 Haversine 公式计算距离
$distanceFormula = "
(6371 * acos(
cos(radians(?)) *
cos(radians(CAST(company_latitude AS DECIMAL(10,8)))) *
cos(radians(CAST(company_longitude AS DECIMAL(10,8))) - radians(?)) +
sin(radians(?)) *
cos(radians(?)) *
cos(radians(CAST(company_latitude AS DECIMAL(10,8)))) *
cos(radians(CAST(company_longitude AS DECIMAL(10,8))) - radians(?)) +
sin(radians(?)) *
sin(radians(CAST(company_latitude AS DECIMAL(10,8))))
)) AS distance
";
$query = Company::with('users')->select('*')
$query = Company::with('users')
->whereHas('users', function ($query) {
$query->where('is_schoolmate', 1)->with(['courseSigns' => function ($query) {
$query->with('course.typeDetail')->orderBy('fee_status', 'desc');
}]);
})->select('*')
->selectRaw($distanceFormula, [$latitude, $longitude, $latitude])
->where(function ($query) use ($all) {
if (isset($all['company_name'])) {

Loading…
Cancel
Save