活动:30天任务支持多次重复购买
This commit is contained in:
@@ -27,18 +27,18 @@ export default class Activity_Pop_Up_Shop extends BaseModel {
|
||||
@prop({ required: true })
|
||||
data: string; // 数据信息
|
||||
@prop({ required: true })
|
||||
isBuy: boolean; // 是否购买
|
||||
buyCount: number; // 购买次数
|
||||
@prop({ required: true })
|
||||
isPush: boolean; // 是否推送过
|
||||
|
||||
//购买记录
|
||||
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number, type: number) {
|
||||
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number, type: number, buyCount: number) {
|
||||
let nowDate = new Date();
|
||||
let result: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOneAndUpdate({
|
||||
serverId, roleId, activityId, id, type,
|
||||
beginTime: { $lt: nowDate }, endTime: { $gt: nowDate }
|
||||
},
|
||||
{ $set: { isBuy: true } }, { upsert: true, new: true }).lean(true);
|
||||
{ $inc: { buyCount: buyCount } }, { upsert: true, new: true }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,8 +18,9 @@ export class PopUpShopData {
|
||||
taskParam: number; // 任务参数
|
||||
condition: number; // 任务条件
|
||||
totalCount: number; //一共完成次数
|
||||
count: number; //最大可购买次数
|
||||
|
||||
isBuy: boolean = false; //购买过
|
||||
buyCount: number = 0; //已经购买过次数
|
||||
beginTime: Date = null;//开始时间
|
||||
endTime: Date = null;//结束时间
|
||||
beginTimeStamp: number = 0;//开始时间
|
||||
@@ -30,7 +31,7 @@ export class PopUpShopData {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
this.isBuy = data.isBuy ? data.isBuy : false;
|
||||
this.buyCount = data.buyCount ? data.buyCount : 0;
|
||||
this.beginTime = data.beginTime;
|
||||
this.endTime = data.endTime;
|
||||
this.beginTimeStamp = moment(data.beginTime).valueOf();
|
||||
@@ -52,10 +53,11 @@ export class PopUpShopData {
|
||||
this.taskType = data.taskType;
|
||||
this.taskParam = data.taskParam;
|
||||
this.condition = data.condition;
|
||||
this.isBuy = false;
|
||||
this.buyCount = 0;
|
||||
this.beginTime = null;
|
||||
this.endTime = null;
|
||||
this.totalCount = 0;
|
||||
this.count = data.count;
|
||||
}
|
||||
|
||||
constructor(activityData: any, activityId: number) {
|
||||
|
||||
@@ -589,7 +589,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||
//推送
|
||||
if (task.condition <= playerRecord.totalCount) {
|
||||
await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||
popShopData.setPlayerRecords(playerRecord)
|
||||
pushMessage = pushMessage.concat(popShopData);
|
||||
}
|
||||
@@ -597,7 +597,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||
//推送
|
||||
if (task.condition <= playerRecord.totalCount) {
|
||||
await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||
popShopData.setPlayerRecords(playerRecord)
|
||||
pushMessage = pushMessage.concat(popShopData);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user