feat: 定期更新用户位置

This commit is contained in:
gcd 2025-04-23 00:04:20 +08:00
parent 4dbd2a3bef
commit c67d511ee7
3 changed files with 56 additions and 0 deletions

View File

@ -149,4 +149,40 @@ class WorkerService extends BaseService
return true;
}
/**
* 更新师傅位置
* @param int $workerId
* @param float $latitude
* @param float $longitude
* @return true
*/
public function updateWorkerLocation(int $workerId, float $latitude, float $longitude)
{
$worker = $this->getWorkerModel()->find($workerId);
if (empty($worker)) {
$this->apiError('更新位置失败,用户不存在');
}
$worker->lat = $latitude;
$worker->lng = $longitude;
$worker->location_update_time = datetime(time());
$worker->update_time = datetime(time());
$worker->save();
return true;
}
}

View File

@ -77,4 +77,21 @@ class Worker extends WorkerApi
{
$this->success('操作成功', $this->user);
}
/**
* 更新师傅位置
* @return void
*/
public function updateWorkerLocation()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\Worker::class . '.updateWorkerLocation');
if ($validate !== true) {
$this->error($validate);
}
$this->getWorkerService()->updateWorkerLocation($this->user['id'], $params['latitude'], $params['longitude']);
$this->success('操作成功');
}
}

View File

@ -9,6 +9,8 @@ class Worker extends Validate
protected $rule = [
'code' => 'require|max:128',
'vendor_token' => 'require|max:128',
'latitude' => 'require|number',
'longitude' => 'require|number',
];
protected $message = [
@ -18,5 +20,6 @@ class Worker extends Validate
protected $scene = [
'login' => ['code'],
'bindPhoneNumber' => ['code', 'vendor_token'],
'updateWorkerLocation' => ['latitude', 'longitude'],
];
}