🐞 fix(登录): 创建角色账号并发时可能会报数据库错误
This commit is contained in:
@@ -133,8 +133,9 @@ export default class User extends BaseModel {
|
|||||||
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, isGuest, token, lastLoginTime: curTime, guestTime, ip, deviceId });
|
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, isGuest, token, lastLoginTime: curTime, guestTime, ip, deviceId });
|
||||||
if (isGuest) update["guestId"] = _tel;
|
if (isGuest) update["guestId"] = _tel;
|
||||||
delete update["device"];
|
delete update["device"];
|
||||||
|
delete update["_id"];
|
||||||
|
|
||||||
const user: UserType = await UserModel.findOneAndUpdate({ tel }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
const user: UserType = await UserModel.findOneAndUpdate({ tel }, { $setOnInsert: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,8 +148,9 @@ export default class User extends BaseModel {
|
|||||||
let update = {};
|
let update = {};
|
||||||
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, token, lastLoginTime: curTime, ip, channelInfo, channelType, deviceId });
|
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, token, lastLoginTime: curTime, ip, channelInfo, channelType, deviceId });
|
||||||
delete update["device"];
|
delete update["device"];
|
||||||
|
delete update["_id"];
|
||||||
|
|
||||||
const user: UserType = await UserModel.findOneAndUpdate({ channelId }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
const user: UserType = await UserModel.findOneAndUpdate({ channelId }, { $setOnInsert: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user