Files
a_long/utils/im-user.js

51 lines
1.6 KiB
JavaScript

/**
* IM 用户展示:从本地缓存读取最新头像,空则用默认图
*/
export function getDefaultAvatar(app) {
const oss = app.globalData.ossImageUrl || '';
return oss + (app.globalData.morentouxiang || '');
}
export function resolveAvatarUrl(raw, app) {
const def = getDefaultAvatar(app);
if (!raw) return def;
if (raw.startsWith('http')) return raw;
const oss = app.globalData.ossImageUrl || '';
return oss + raw.replace(/^\//, '');
}
export function getFreshImUser(app, role, uid) {
const prefixMap = {
normal: 'Boss', dashou: 'Ds', shangjia: 'Sj',
guanshi: 'Gs', zuzhang: 'Zz', kaoheguan: 'Kh',
};
const prefix = prefixMap[role] || 'Boss';
const touxiang = wx.getStorageSync('touxiang') || '';
const avatar = resolveAvatarUrl(touxiang, app);
const name = app.globalData.currentUser?.name || `用户${(uid || '').slice(-6)}`;
return {
id: prefix + uid,
name,
avatar,
};
}
export function persistGroupMeta(app, groupId, meta) {
if (!groupId || !meta) return;
if (!app.globalData.groupInfoMap) app.globalData.groupInfoMap = {};
app.globalData.groupInfoMap[groupId] = { ...app.globalData.groupInfoMap[groupId], ...meta };
try {
const cache = wx.getStorageSync('pairGroupMetaCache') || {};
cache[groupId] = app.globalData.groupInfoMap[groupId];
wx.setStorageSync('pairGroupMetaCache', cache);
} catch (e) {}
}
export function loadGroupMetaCache(app) {
try {
const cache = wx.getStorageSync('pairGroupMetaCache') || {};
if (!app.globalData.groupInfoMap) app.globalData.groupInfoMap = {};
Object.assign(app.globalData.groupInfoMap, cache);
} catch (e) {}
}