活动:弹出商店添加条件判断
This commit is contained in:
@@ -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 })
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user