活动:弹出商店添加条件判断

This commit is contained in:
qiaoxin
2021-05-31 20:39:05 +08:00
parent b4b1c9321a
commit 9cb06b4736
9 changed files with 145 additions and 42 deletions
+25 -10
View File
@@ -18,9 +18,7 @@ import { ServerlistModel } from '../db/Serverlist';
export async function popUpShopActivity(serverId: number, roleId: string) {
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.POP_UP_SHOP, new Date())
activityArray = activityArray.sort((a, b) => {
return b.activityId - a.activityId
});
if (activityArray.length == 0) {
return null;
}
@@ -45,11 +43,14 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe
let allTaskData = JSON.parse(activityData.data);
for (let record of playerRecords) {
if (!record.isBuy) {//没有购买
let index = allTaskData.findIndex(obj => { return obj && obj.id === record.id })
let index = allTaskData.findIndex(obj => { return obj && obj.id === record.id && obj.taskType === record.type })
if (index != -1) {
let playerData = new PopUpShopData(allTaskData[index]);
let playerData = new PopUpShopData(allTaskData[index], activityData.activityId);
playerData.isBuy == false;
allPlayerShop.push(playerData)
playerData.setPlayerRecords(record)
if (playerData.condition <= record.totalCount) {
allPlayerShop.push(playerData)
}
}
}
}
@@ -75,20 +76,34 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid:
return STATUS.ACTIVITY_TYPE_ERROR;
}
let allTaskData: any[] = JSON.parse(activityData.data);
let taskIndex = allTaskData.findIndex(obj => { return obj && obj.data.productID == productID });
let taskIndex = allTaskData.findIndex(obj => { return obj && obj.productID == productID });
if (taskIndex == -1) {
return STATUS.ACTIVITY_NO_PRODUCT;
}
let playerData = new PopUpShopData(allTaskData[taskIndex]);
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, playerData.id);
let playerData = new PopUpShopData(allTaskData[taskIndex], activityId);
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, playerData.id, playerData.taskType);
if (!playerRecords) {
return STATUS.APPLY_ORDER_ERROR;
}
let curDate = new Date();
if (curDate < playerRecords.beginTime || curDate > playerData.endTime) {
return STATUS.ACTIVITY_POP_UP_SHOP_CLOSED;
}
if (playerRecords.totalCount < playerData.condition) {
return STATUS.ACTIVITY_TASK_UNCOMPLETED;
}
if (!playerRecords.isBuy) {
return STATUS.ACTIVITY_REWARDED;
}
playerData.setPlayerRecords(playerRecords);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
playerData.isBuy = true;
return {
code: 0,
data: Object.assign(result, { item: { isBuy: true }, activityId: activityData.activityId })
data: Object.assign(result, { item: playerData, activityId: activityData.activityId })
}
}