✨ feat(账号登陆): 添加上次登录的设备号字段
This commit is contained in:
@@ -102,6 +102,9 @@ export default class User extends BaseModel {
|
||||
@prop({ required: true, type: String, default: [], _id: false })
|
||||
device: string[];
|
||||
|
||||
@prop({ required: true, default: [], _id: false })
|
||||
deviceId: string;
|
||||
|
||||
@prop({ required: true, default: 'com.bantu.zyz' })
|
||||
pkgName: string;
|
||||
|
||||
@@ -125,7 +128,7 @@ export default class User extends BaseModel {
|
||||
const userCode = genCode(8);
|
||||
const doc = new UserModel();
|
||||
let update = {};
|
||||
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, isGuest, token, lastLoginTime: curTime, guestTime, ip });
|
||||
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;
|
||||
delete update["device"];
|
||||
|
||||
@@ -140,7 +143,7 @@ export default class User extends BaseModel {
|
||||
const userCode = genCode(8);
|
||||
const doc = new UserModel();
|
||||
let update = {};
|
||||
update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, token, lastLoginTime: curTime, ip, channelInfo, channelType });
|
||||
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"];
|
||||
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ channelId }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
||||
@@ -164,7 +167,7 @@ export default class User extends BaseModel {
|
||||
|
||||
const curTime: Date = new Date();
|
||||
|
||||
let user = await UserModel.findOneAndUpdate({ channelId }, { $set: { token, lastLoginTime: curTime, ip, channelInfo }, $addToSet: { device: deviceId } }, { new: true }).lean({ getters: true });
|
||||
let user = await UserModel.findOneAndUpdate({ channelId }, { $set: { token, lastLoginTime: curTime, ip, channelInfo, deviceId }, $addToSet: { device: deviceId } }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
public static async updateGetuiCID(tel: string, cid: string) {
|
||||
@@ -180,25 +183,26 @@ export default class User extends BaseModel {
|
||||
public static async createOrUpdate(isGuest: boolean, tel: string, token: string, platform: string, pkgName: string, serverType: string, deviceId: string, ip: string) {
|
||||
// console.log(tel);
|
||||
|
||||
let user: UserType = await UserModel.findOne({ tel }).lean({ getters: true });
|
||||
if (!user) {
|
||||
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ip);
|
||||
let oldUser: UserType = await UserModel.findOne({ tel }).lean({ getters: true });
|
||||
if (!oldUser) {
|
||||
let user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ip);
|
||||
return { isCreate: true, user, deviceId: null};
|
||||
} else {
|
||||
user = await UserModel.updateToken(tel, token, deviceId, ip);
|
||||
let user = await UserModel.updateToken(tel, token, deviceId, ip);
|
||||
return { isCreate: true, user, deviceId: oldUser.deviceId};
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async createOrUpdateChannelUser(channelId: string, channelType: string, channelInfo: ChannelInfo, token: string, platform: string, pkgName: string, serverType: string, deviceId: string, ip: string) {
|
||||
// console.log(tel);
|
||||
|
||||
let user: UserType = await UserModel.findUserByChannel(channelId);
|
||||
if (!user) {
|
||||
user = await UserModel.createUserWithChannel(channelId, channelType, channelInfo, token, platform, pkgName, serverType, deviceId, ip);
|
||||
return { isCreate: true, user};
|
||||
let oldUser: UserType = await UserModel.findUserByChannel(channelId);
|
||||
if (!oldUser) {
|
||||
let user = await UserModel.createUserWithChannel(channelId, channelType, channelInfo, token, platform, pkgName, serverType, deviceId, ip);
|
||||
return { isCreate: true, user, deviceId: null};
|
||||
} else {
|
||||
user = await UserModel.updateTokenByChannel(channelId, token, deviceId, ip, channelInfo);
|
||||
return { isCreate: false, user};
|
||||
let user = await UserModel.updateTokenByChannel(channelId, token, deviceId, ip, channelInfo);
|
||||
return { isCreate: false, user, deviceId: oldUser.deviceId};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,10 +232,10 @@ export default class User extends BaseModel {
|
||||
const curTime: Date = new Date();
|
||||
let { salt } = user;
|
||||
let { npassword } = await this.encryptPass(password, salt);
|
||||
const checkUser: UserType = await UserModel.findOneAndUpdate({ tel, password: npassword }, { $set: { token, lastLoginTime: curTime }, $addToSet: { device: deviceId } }, { new: true }).lean({ getters: true });
|
||||
return checkUser;
|
||||
const checkUser: UserType = await UserModel.findOneAndUpdate({ tel, password: npassword }, { $set: { token, lastLoginTime: curTime, deviceId }, $addToSet: { device: deviceId } }, { new: true }).lean({ getters: true });
|
||||
return {user: checkUser, deviceId: user.deviceId};
|
||||
} else {
|
||||
return null
|
||||
return {user: null, deviceId: null};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user