活动:月卡权限

This commit is contained in:
luying
2022-03-09 19:47:20 +08:00
parent dafc77954b
commit f440ef2ebe
22 changed files with 295 additions and 220 deletions

View File

@@ -20,7 +20,8 @@ export default class Activity_Monthly_Ticket extends BaseModel {
endTime: Date; // 结束时间
@prop({ required: true })
dayIndex: number; // 结算到第几天从0开始1表示第一天已经领取过(包括邮件发放)
@prop({ required: true })
isForever: boolean; // 是否是永久卡
//记录领取的天数
public static async setDayIndex(serverId: number, roleId: string, activityId: number, dayIndex: number) {
@@ -37,8 +38,8 @@ export default class Activity_Monthly_Ticket extends BaseModel {
}
//购买月卡
public static async buyMonthlyTicket(serverId: number, roleId: string, activityId: number, activityType: number, endTime: Date) {
await ActivityMonthlyTicketModel.findOneAndUpdate({ serverId, roleId, activityId, activityType }, { $set: { endTime, dayIndex: 0 } }, { upsert: true, new: true }).lean();
public static async buyMonthlyTicket(serverId: number, roleId: string, activityId: number, activityType: number, endTime: Date, isForever: boolean) {
await ActivityMonthlyTicketModel.findOneAndUpdate({ serverId, roleId, activityId, activityType }, { $set: { endTime, dayIndex: 0, isForever } }, { upsert: true, new: true }).lean();
}
}

View File

@@ -9,7 +9,7 @@ class Goods {
count: number; // 这次挂机没来得及领取的
}
class NotReceivedGoods {
export class NotReceivedGoods {
@prop({ required: true })
cnt: number; // 加速的次数
@prop({ required: true, default: [], type: Goods, _id: false })

View File

@@ -193,13 +193,9 @@ export default class Role extends BaseModel {
topLineupCe: number; // 最强x人战力
@prop({ required: true, type: TopHero, default: [], _id: false })
topLineup: Array<TopHero>; // 总战力
@prop({ required: true, default: 100 })
tili: number; // 体力值
@prop({ required: false, set: (val: boolean) => val, get: () => true })
isReducedCe: boolean; // 如果战力没有缩过就会返回false缩过了就会返回true
@prop({ required: true, default: 0 })
vLv: number; // VIP 等级
@prop({ required: true, default: 100 })
gold: number; // 总金币
@prop({ required: true, default: 0 })
@@ -234,6 +230,12 @@ export default class Role extends BaseModel {
@prop({ required: true, default: 0 })
quitTime: number; // 更新 / 登录时间
// 月卡相关
@prop({ required: true, default: 0 })
vipStartTime: number; // 永久卡开始时间
@prop({ required: true, default: 0 })
isVip: boolean; // 是否购买了永久月卡
// 天梯相关
@prop({ required: true, default: 1 })
towerLv: number; // 天梯当前层数
@@ -402,11 +404,6 @@ export default class Role extends BaseModel {
return role;
}
public static async deleteAccount(roleId: string) {
let result = await RoleModel.deleteMany({ roleId });
return result;
}
public static async addCoin(roleId: string, cnt: number, lean = true) {
let result: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { coin: cnt } }, { "new": true, "upsert": true }).lean(lean);
return result;
@@ -740,6 +737,11 @@ export default class Role extends BaseModel {
return role;
}
// 购买永久月卡
public static async buyForeverTicket(roleId: string) {
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $set: { vipStartTime: Date.now(), isVip: true } }, { new: true }).lean();
return role;
}
private static getSearchObj(form: SearchRoleParam) {
let searchObj = {};