活动:首冲礼包一次性领取所有
This commit is contained in:
@@ -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, {}));
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user