推送:保存用户个推cid
This commit is contained in:
@@ -36,10 +36,10 @@ export default class Getui_Tags extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
//添加个推信息
|
||||
public static async insertRole(roleId: string, cid: string, tags: string[]) {
|
||||
//添加/更新个推信息
|
||||
public static async updateCID(roleId: string, cid: string) {
|
||||
let result: GetuiTagsModelType = await GetuiTagsModel.findOneAndUpdate(
|
||||
{ roleId, cid }, { $set: { tags: tags } }, { upsert: true, new: true }).lean(true);
|
||||
{ roleId }, { $set: { cid: cid } }, { upsert: true, new: true }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -101,6 +101,10 @@ export default class User extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
auth: number;
|
||||
|
||||
// 个推CID
|
||||
@prop({ required: false, default: "" })
|
||||
getuiCID: string;
|
||||
|
||||
public static async createUser(isGuest: boolean, tel: string, token: string, platform: string, pkgName: string, serverType: string, deviceId: string, guestTime: number = 0) {
|
||||
let _tel = aesEncryptcfb(tel, ENCRYPT_KEY, ENCRYPT_IV);
|
||||
const curTime: Date = new Date();
|
||||
@@ -110,15 +114,15 @@ export default class User extends BaseModel {
|
||||
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 });
|
||||
if(isGuest) update["guestId"] = _tel;
|
||||
if (isGuest) update["guestId"] = _tel;
|
||||
delete update["device"];
|
||||
|
||||
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 }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async getLastDeviceGuest(deviceId: string, token: string) {
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ device: { $elemMatch: { $eq: deviceId } }, isGuest: true }, { token }, { new: true }).sort({createTime: -1}).lean({ getters: true });
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ device: { $elemMatch: { $eq: deviceId } }, isGuest: true }, { token }, { new: true }).sort({ createTime: -1 }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -126,7 +130,12 @@ export default class User extends BaseModel {
|
||||
|
||||
const curTime: Date = new Date();
|
||||
|
||||
let user = await UserModel.findOneAndUpdate({ tel }, { $set: { token, lastLoginTime: curTime }, $addToSet: {device: deviceId}}, { new: true }).lean({ getters: true });
|
||||
let user = await UserModel.findOneAndUpdate({ tel }, { $set: { token, lastLoginTime: curTime }, $addToSet: { device: deviceId } }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async updateGetuiCID(tel: string, cid: string) {
|
||||
let user = await UserModel.findOneAndUpdate({ tel }, { $set: { getuiCID: cid } }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -144,7 +153,7 @@ export default class User extends BaseModel {
|
||||
|
||||
private static async encryptPass(password: string, salt?: string) {
|
||||
if (!salt) {
|
||||
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
|
||||
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
|
||||
}
|
||||
let npassword = await bcrypt.hash(password, salt);
|
||||
return { npassword, salt };
|
||||
@@ -152,12 +161,12 @@ export default class User extends BaseModel {
|
||||
|
||||
public static async setPass(uid: number, password: string) {
|
||||
let r = await this.encryptPass(password);
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { $set: { password: r.npassword, salt: r.salt, hasSetPw: true }}, {new: true}).lean({ getters: true });
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { $set: { password: r.npassword, salt: r.salt, hasSetPw: true } }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async bindTel(uid: number, tel: string) {
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid, isGuest: true }, { $set: { tel, isGuest: false }}, {new: true}).lean({ getters: true });
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid, isGuest: true }, { $set: { tel, isGuest: false } }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -166,12 +175,12 @@ export default class User extends BaseModel {
|
||||
const user: UserType = await UserModel.findOne({ tel }).select('salt').lean({ getters: true });
|
||||
if (user) {
|
||||
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;
|
||||
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;
|
||||
} else {
|
||||
return null
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,18 +217,18 @@ export default class User extends BaseModel {
|
||||
}
|
||||
|
||||
public static async addAuth(uid: number, auth: number) {
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { auth }, {new: true}).select('uid tel').lean({ getters: true });
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { auth }, { new: true }).select('uid tel').lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async authentication(uid: number, birthday: string, pi: string) {
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { hasAuthenticated: true, birthday, pi }, {new: true}).lean({ getters: true });
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { hasAuthenticated: true, birthday, pi }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async findUserByField(field: string, value?: Array<number|string>) {
|
||||
public static async findUserByField(field: string, value?: Array<number | string>) {
|
||||
let searchObj = {};
|
||||
if(field != 'all') {
|
||||
if (field != 'all') {
|
||||
searchObj[field] = {
|
||||
$in: value
|
||||
};
|
||||
@@ -231,8 +240,8 @@ export default class User extends BaseModel {
|
||||
|
||||
public static async updatePlayTime(userCode: string, guestTimeInc: number, todayPlayTime: number, todayPlayType?: number) {
|
||||
let update = { todayPlayTime, todayPlayType, reportTime: new Date() };
|
||||
if(todayPlayType) update.todayPlayType;
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ userCode }, { $inc: { guestTime: guestTimeInc }, $set: update}, { new: true }).lean({ getters: true });
|
||||
if (todayPlayType) update.todayPlayType;
|
||||
const user: UserType = await UserModel.findOneAndUpdate({ userCode }, { $inc: { guestTime: guestTimeInc }, $set: update }, { new: true }).lean({ getters: true });
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -240,4 +249,4 @@ export default class User extends BaseModel {
|
||||
|
||||
export const UserModel = getModelForClass(User);
|
||||
|
||||
export interface UserType extends Pick<DocumentType<User>, keyof User>{};
|
||||
export interface UserType extends Pick<DocumentType<User>, keyof User> { };
|
||||
|
||||
Reference in New Issue
Block a user