活动:首冲礼包一次性领取所有

This commit is contained in:
qiaoxin
2021-05-24 16:06:56 +08:00
parent 4fd14a2075
commit 5e9bd369cb
4 changed files with 18 additions and 8 deletions

View File

@@ -64,15 +64,19 @@ export class FirstGiftHandler {
return resResult(STATUS.ACTIVITY_FIRST_GIFT_END);
}
let item = playerData.findFirstGiftItem(index);
if (item.isReceive) {
let items = playerData.canReceiveItems();
if (items.length === 0) {
return resResult(STATUS.ACTIVITY_REWARDED);
}
let rewardArray = stringToRewardParam(item.reward)
let rewardArray = [];
let indexArray = [];
for (let item of items) {
rewardArray = rewardArray.concat(stringToRewardParam(item.reward))
indexArray.push(item.index)
}
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
await ActivityFirstGiftModel.addRecord(activityId, roleId, index);
await ActivityFirstGiftModel.addRecord(activityId, roleId, indexArray);
return resResult(STATUS.SUCCESS, Object.assign(result, {}));
}

View File

@@ -16,9 +16,9 @@ export default class ActivityFirstGift extends BaseModel {
//添加领取记录
public static async addRecord(activityId: number, roleId: string, index: number) {
public static async addRecord(activityId: number, roleId: string, indexArray: number[]) {
let result: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findOneAndUpdate({ roleId, activityId, },
{ $push: { days: index } }, { upsert: true, new: true }).lean(true);
{ $push: { days: { $each: indexArray } } }, { upsert: true, new: true }).lean(true);
return result;
}

View File

@@ -18,6 +18,7 @@ export class FirstGiftItem {
this.index = data.index;
this.reward = data.reward;
this.goldCount = data.goldCount;
this.isReceive = false;
}
}
@@ -46,6 +47,11 @@ export class FirstGiftData extends ActivityBase {
return null;
}
//奖励内容
public canReceiveItems(): FirstGiftItem[] {
return this.list.filter(obj => { return obj && !obj.isReceive });
}
//解析玩家任务领取记录
public setPlayerRecords(data: ActivityFirstGiftModelType) {
this.todayIndex = 0;

View File

@@ -18,6 +18,7 @@ export class SignInItem {
constructor(data: any) {
this.dayIndex = data.dayIndex;
this.reward = data.reward;
this.isReceive = false;
}
public heroReward(): CreateHeroParam[] {
@@ -88,7 +89,6 @@ export class SignInData extends ActivityBase {
let arr = dataObj.data
for (let obj of arr) {
console.log('obj', obj)
this.list.push(new SignInItem(obj))
}
}