✨ feat(37需求): 注销账号
This commit is contained in:
@@ -54,6 +54,8 @@ export const STATUS = {
|
||||
CHANNEL_ERR: { code: 10018, simStr: '无此渠道' },
|
||||
VALIDATE_ERR: { code: 10019, simStr: '渠道校验错误' },
|
||||
SERVER_STOP_REGISTER: { code: 10020, simStr: '服务器已停止注册' },
|
||||
ROLE_CLOSE_TIME_OVER: { code: 10021, simStr: '该账号已注销不可再取消' },
|
||||
ROLE_CLOSED: { code: 10022, simStr: '该账号已注销' },
|
||||
// 战斗相关状态 20000 - 29999
|
||||
// 战斗通用 20000 - 20099
|
||||
BATTLE_MISS_INFO: { code: 20001, simStr: '缺少关卡信息' },
|
||||
|
||||
+14
-1
@@ -355,8 +355,11 @@ export default class Role extends BaseModel {
|
||||
@prop({ required: false })
|
||||
hasComment: boolean;
|
||||
|
||||
@prop({ required: true, select: false })
|
||||
closeTime: number;
|
||||
|
||||
public static async findAllByUid(uid: number, getters = false, virtuals = true) {
|
||||
const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId head frame spine heads frames spines lv updatedAt createTime').lean({ getters, virtuals });
|
||||
const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId head frame spine heads frames spines lv updatedAt createTime +closeTime').lean({ getters, virtuals });
|
||||
return role;
|
||||
}
|
||||
|
||||
@@ -858,6 +861,16 @@ export default class Role extends BaseModel {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $set: { hasComment } }, { new: true }).select('-_id roleId hasComment').lean();
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async closeAccount(roleId: string, closeTime: number) {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $set: { closeTime } }, { new: true }).select('roleId +closeTime').lean();
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async cancelCloseAccount(roleId: string, now: number) {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId, closeTime: { $gte: now } }, { $set: { closeTime: 0 } }, { new: true }).select('roleId +closeTime').lean();
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { nowSeconds } from 'app/pubUtils/timeUtil';
|
||||
import { RoleType } from '../../db/Role';
|
||||
import { ServerlistType } from '../../db/Serverlist';
|
||||
|
||||
@@ -55,6 +56,8 @@ export class ServerParamWithRole extends ServerParam {
|
||||
spine: number; // 形象
|
||||
lv: number; // 等级
|
||||
updatedAt: Date;
|
||||
isClose: boolean; // 是否已经注销
|
||||
closeTime: number; // 注销生效时间
|
||||
|
||||
constructor(role: RoleType, server: ServerlistType) {
|
||||
super(server);
|
||||
@@ -68,5 +71,7 @@ export class ServerParamWithRole extends ServerParam {
|
||||
this.spine = role.spine;
|
||||
this.lv = role.lv;
|
||||
this.updatedAt = role.updatedAt;
|
||||
this.isClose = role.closeTime > 0 && role.closeTime < nowSeconds();
|
||||
this.closeTime = role.closeTime||0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user