地址路径修改
This commit is contained in:
@@ -3,18 +3,20 @@ import { LocationData } from '../types';
|
||||
import apiService from './apiService';
|
||||
import userService from './userService';
|
||||
import mapService from './mapService';
|
||||
import { API_BASE_URL } from './apiService';
|
||||
// import { avatarCache } from '../utils/avatarCache';
|
||||
|
||||
/**
|
||||
* 在线用户信息接口
|
||||
*/
|
||||
export interface OnlineUserInfo {
|
||||
userId: number;
|
||||
userId: string;
|
||||
name: string;
|
||||
avatarUrl: string;
|
||||
role: string; // 用户角色:'admin' | 'delivery_person'
|
||||
avatarPath?: string; // 头像相对路径(服务器下发)
|
||||
role: string;
|
||||
lastLocation: LocationData;
|
||||
lastUpdateTime: number;
|
||||
status: 'online' | 'offline' | 'timeout';
|
||||
status: 'online' | 'offline'| 'timeout';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -196,6 +198,25 @@ class LocationTrackingService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取完整的头像URL
|
||||
* @param avatarPath 头像相对路径
|
||||
* @returns 完整的头像URL
|
||||
*/
|
||||
getFullAvatarUrl(avatarPath: string | undefined): string | undefined {
|
||||
if (!avatarPath) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// 如果已经是完整URL,直接返回
|
||||
if (avatarPath.startsWith('http')) {
|
||||
return avatarPath;
|
||||
}
|
||||
|
||||
// 将相对路径转换为完整URL
|
||||
return `${API_BASE_URL}${avatarPath}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前位置
|
||||
*/
|
||||
@@ -406,7 +427,9 @@ class LocationTrackingService {
|
||||
lastUpdateTime: user.lastUpdateTime,
|
||||
latitude: user.locationData?.latitude || user.latitude,
|
||||
longitude: user.locationData?.longitude || user.longitude,
|
||||
timestamp: user.locationData?.timestamp || user.timestamp
|
||||
timestamp: user.locationData?.timestamp || user.timestamp,
|
||||
avatarPath: user.avatarPath,
|
||||
address: user.address
|
||||
}))
|
||||
});
|
||||
}else {
|
||||
@@ -446,7 +469,8 @@ class LocationTrackingService {
|
||||
lastUpdateTime: user.lastUpdateTime || locationData.timestamp || Date.now(),
|
||||
latitude: locationData.latitude,
|
||||
longitude: locationData.longitude,
|
||||
timestamp: locationData.timestamp || user.timestamp || Date.now()
|
||||
timestamp: locationData.timestamp || user.timestamp || Date.now(),
|
||||
avatarPath: user.avatarPath || (existingUser ? existingUser.avatarPath : undefined),
|
||||
};
|
||||
|
||||
// 验证必需字段
|
||||
@@ -456,7 +480,7 @@ class LocationTrackingService {
|
||||
}
|
||||
|
||||
return formattedUser;
|
||||
}).filter(user => user !== null); // 过滤掉无效数据
|
||||
}).filter((user: any) => user !== null); // 过滤掉无效数据
|
||||
|
||||
console.log('📊 转换后的用户位置数据:', formattedUsers);
|
||||
|
||||
@@ -530,7 +554,7 @@ class LocationTrackingService {
|
||||
this.onlineUsers.set(user.userId, {
|
||||
userId: user.userId,
|
||||
name: user.name || user.userName || (existingUser ? existingUser.name : `用户${user.userId}`),
|
||||
avatarUrl: '/images/user-avatar.png',
|
||||
avatarPath: user.avatarPath || (existingUser ? existingUser.avatarPath : undefined),
|
||||
role: user.role || (existingUser ? existingUser.role : 'DRIVER'),
|
||||
lastLocation: {
|
||||
userId: user.userId,
|
||||
@@ -539,7 +563,12 @@ class LocationTrackingService {
|
||||
timestamp: timestamp
|
||||
},
|
||||
lastUpdateTime: timestamp,
|
||||
status: user.userStatus === false ? 'offline' : 'online'
|
||||
status: user.userStatus === false ? 'offline' : 'online',
|
||||
// currentLocation: {
|
||||
// address: user.address || (existingUser ? existingUser.currentLocation?.address : '位置信息获取中...'),
|
||||
// longitude: longitude,
|
||||
// latitude: latitude
|
||||
// }
|
||||
});
|
||||
|
||||
console.log(`[LocationTrackingService] 更新用户 ${user.userId} 位置: (${latitude}, ${longitude})`);
|
||||
|
||||
Reference in New Issue
Block a user