$phone, 'status' => array('neq', 3) ); if ($merchant_id > 0) { $map['merchant_id'] = $merchant_id; } return $this->getFind($map); } /** * 获取骑手列表 * @param array $map 查询条件 * @param string $field 查询字段 * @param string $order 排序 * @param string $limit 分页 * @return array */ public function getRiderList($map, $field = '*', $order = 'id desc', $limit = '') { if ($limit) { return $this->field($field)->where($map)->order($order)->limit($limit)->select(); } else { return $this->field($field)->where($map)->order($order)->select(); } } /** * 更新骑手认证状态 * @param int $rider_id 骑手ID * @param int $auth_status 认证状态 * @return bool */ public function updateAuthStatus($rider_id, $auth_status) { $map = array('id' => $rider_id); $data = array( 'auth_status' => $auth_status ); return $this->updateOrder($map, $data); } /** * 更新骑手健康证状态 * @param int $rider_id 骑手ID * @param int $health_status 健康证状态 * @return bool */ public function updateHealthStatus($rider_id, $health_status) { $map = array('id' => $rider_id); $data = array( 'health_status' => $health_status ); return $this->updateOrder($map, $data); } /** * 重置骑手密码 * @param int $rider_id 骑手ID * @param string $new_password 新密码 * @param string $salt 盐值 * @return bool */ public function resetPassword($rider_id, $new_password, $salt) { $map = array('id' => $rider_id); $data = array( 'password' => $new_password, 'salt' => $salt ); return $this->updateOrder($map, $data); } /** * 更新骑手位置信息 * @param int $rider_id 骑手ID * @param float $lat 纬度 * @param float $lng 经度 * @return bool */ public function updateLocation($rider_id, $lat, $lng) { $map = array('id' => $rider_id); $data = array( 'last_location_lat' => $lat, 'last_location_lng' => $lng, 'last_location_time' => time() ); return $this->updateOrder($map, $data); } /** * 更新骑手统计数据 * @param int $rider_id 骑手ID * @param array $stats 统计数据 * @return bool */ public function updateStats($rider_id, $stats) { $map = array('id' => $rider_id); $data = $stats; return $this->updateOrder($map, $data); } /** * 获取商户下的骑手统计 * @param int $merchant_id 商户ID * @param int $store_id 门店ID(可选) * @return array */ public function getRiderStats($merchant_id, $store_id = 0) { $map = array( 'merchant_id' => $merchant_id, 'status' => array('neq', 3) ); if ($store_id > 0) { $map['store_id'] = $store_id; } $stats = array(); $stats['total'] = $this->getCount($map); $stats['working'] = $this->getCount(array_merge($map, array('work_status' => 1))); $stats['certified'] = $this->getCount(array_merge($map, array('auth_status' => 2))); $stats['pending_auth'] = $this->getCount(array_merge($map, array('auth_status' => 1))); return $stats; } }