活动:修改活动bug

This commit is contained in:
qiaoxin
2021-05-26 16:09:13 +08:00
parent b9c6f5541c
commit 064b3258fe
32 changed files with 162 additions and 61 deletions

View File

@@ -2,12 +2,12 @@ import { Application, BackendSession } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, STATUS } from '../../../consts';
import { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService';
import { RoleModel } from '../../../db/Role';
import { addReward, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService';
import { ActivityFirstGiftModel } from '../../../db/ActivityFirstGift';
import { signInActivity, signInVIPActivity } from '../../../services/signInService';
import { growthFundActivity } from '../../../services/growthFundService';
import { newPlayerLimitPackageActivity } from '../../../services/limitPackageService';
import { growthActivity } from '../../../services/growthService';
import { dailyChallengesActivity } from '../../../services/dailyChallengesService';
import { dailyGiftsActivity } from '../../../services/dailyGiftsService';
export default function (app: Application) {
return new ActivityHandler(app);
@@ -30,6 +30,42 @@ export class ActivityHandler {
const serverId = session.get('serverId');
let playerActivityArray = [];
//七天乐活动-成长任务
{
let sevenData = [];
let growthData = await growthActivity(serverId, roleId);
if (growthData) {
sevenData.push({
type: ACTIVITY_TYPE.TASK_GROWTH,
activityId: growthData.activityId,
data: growthData,
});
}
let dailyChallengesData = await dailyChallengesActivity(serverId, roleId);
if (dailyChallengesData) {
sevenData.push({
type: ACTIVITY_TYPE.TASK_DAILY_CHALLENGES,
activityId: dailyChallengesData.activityId,
data: dailyChallengesData,
});
}
let dailyGiftsData = await dailyGiftsActivity(serverId, roleId);
if (dailyGiftsData) {
sevenData.push({
type: ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT,
activityId: dailyGiftsData.activityId,
data: dailyGiftsData,
});
}
if (sevenData.length > 0) {
playerActivityArray.push({
type: ACTIVITY_TYPE.SEVEN_DAY,
activityId: 0,
data: sevenData,
});
}
}
//首冲礼包活动
{
let data = await firstGiftActivity(serverId, roleId);

View File

@@ -266,7 +266,7 @@ export class GachaHandler {
let heroes: number[] = [];
if (gachaId == GACHA_ID.TIMELIMIT) {
let activityData = await ActivityModel.findActivity(serverId, activityId, true);
let activityData = await ActivityModel.findActivity(serverId, activityId);
if (!activityData) return resResult(STATUS.ACTIVITY_MISSING);
let gachaData = new GachaData(activityData);

View File

@@ -91,6 +91,9 @@ export class LimitPackageHandler {
}
let item = playerData.findItem(id);
if (!item) {
return resResult(STATUS.ACTIVITY_ID_ERROR);
}
if (item.countMax > 0 && item.buyCount >= item.countMax) {
return resResult(STATUS.ACTIVITY_MAX_COUNT);
}

View File

@@ -51,7 +51,7 @@ export class PopUpShopHandler {
const roleName = session.get('roleName');
const funcs: number[] = session.get('funcs');
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
if (!activityData) {
return resResult(STATUS.ACTIVITY_MISSING);
}

View File

@@ -50,7 +50,7 @@ export class SelfServiceShopHandler {
const roleName = session.get('roleName');
const funcs: number[] = session.get('funcs');
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new SelfServiceShopData(activityData);
let item = playerData.getItem(index);

View File

@@ -72,7 +72,7 @@ export class SevenDaysHandler {
return resResult(STATUS.ACTIVITY_REWARDED);
}
await ActivityGrowthModel.addCellRecord(serverId, activityId, roleId, dayIndex, cellIndex, type, 1, growthItemData.point);
await ActivityGrowthModel.addCellRecord(serverId, activityId, roleId, dayIndex, cellIndex, type, 1);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(growthItemData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)

View File

@@ -175,7 +175,7 @@ export class orderHandler {
orderInfo = await UserOrderModel.success(roleId, localOrderID);
if (orderInfo) {
//结算奖励
let result = await makeOrder(localOrderID, sid);
let result = await makeOrder(localOrderID, sid, orderInfo);
//活动统计
await addRechargeMoney(roleId, serverId, price);
console.log('结算完成', localOrderID)
@@ -235,7 +235,7 @@ export class orderHandler {
let orderInfo = await UserOrderModel.success(roleId, localOrderID);
if (orderInfo) {
//结算奖励
let result = await makeOrder(localOrderID, sid);
let result = await makeOrder(localOrderID, sid, orderInfo);
//活动统计
await addRechargeMoney(roleId, serverId, price);
console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, roleId:${roleId}, localOrderID:${localOrderID}`)

View File

@@ -1,8 +1,30 @@
import { ACTIVITY_TYPE } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../db/ActivityDailyChallenges';
import { DailyChallengesData, DailyItem } from '../domain/activityField/dailyChallengesField';
/**
* 获取活动数据
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function dailyChallengesActivity(serverId: number, roleId: string) {
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
if (activityDataArray.length === 0) {
return null;
}
let activityData: ActivityModelType = activityDataArray[0];
let playerRecords: ActivityDailyChallengesModelType[] = await ActivityDailyChallengesModel.findData(serverId, activityData.activityId, roleId);
let playerData = new DailyChallengesData(activityData);
playerData.setPlayerRecords(playerRecords);
return playerData;
}
/**
* 玩家玩家活动数据
*
@@ -12,7 +34,7 @@ import { DailyChallengesData, DailyItem } from '../domain/activityField/dailyCha
*
*/
export async function getPlayerDailyChallengesData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityDailyChallengesModelType[] = await ActivityDailyChallengesModel.findData(serverId, activityId, roleId);
let playerData = new DailyChallengesData(activityData);

View File

@@ -1,8 +1,31 @@
import { ACTIVITY_TYPE } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../db/ActivityDailyGifts';
import { DailyGiftsData, DailyGiftItem } from '../domain/activityField/dailyGiftsField';
/**
* 获取活动数据
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
*
*/
export async function dailyGiftsActivity(serverId: number, roleId: string) {
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, new Date());
if (activityDataArray.length === 0) {
return null;
}
let activityData: ActivityModelType = activityDataArray[0];
let playerRecords: ActivityDailyGiftsModelType[] = await ActivityDailyGiftsModel.findData(serverId, activityData.activityId, roleId);
let playerData = new DailyGiftsData(activityData);
playerData.setPlayerRecords(playerRecords);
return playerData;
}
/**
* 玩家玩家活动数据
*
@@ -12,7 +35,7 @@ import { DailyGiftsData, DailyGiftItem } from '../domain/activityField/dailyGift
*
*/
export async function getPlayerDailyGiftsData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityDailyGiftsModelType[] = await ActivityDailyGiftsModel.findData(serverId, activityId, roleId);
let playerData = new DailyGiftsData(activityData);

View File

@@ -39,7 +39,7 @@ export async function thirtyDaysActivity(type: number, serverId: number, roleId:
*
*/
export async function getPlayerDailyGiftsData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new DailyRMBGiftsData(activityData);
let productID = playerData.productID;
@@ -68,7 +68,7 @@ export async function getPlayerDailyGiftsData(activityId: number, serverId: numb
*/
export async function makeDailyRMBGiftsReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new DailyRMBGiftsData(activityData);
let bigGiftProductID = playerData.productID;
if (bigGiftProductID == productID) {//一次性购买7天礼包

View File

@@ -130,6 +130,7 @@ export async function dressEquip(serverId: number, roleId: string, sid: string,
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.EQUIP_BY_HERO, hero, [1]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_QUALITY, equip, [1]);
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_QUALITY, 1, { quality: equip.quality })
await accomplishTask(serverId, roleId, TASK_TYPE.EQUIP_SUM, 1)
return { seqId: equip.seqId, hid: hero.hid };
}

View File

@@ -38,7 +38,7 @@ export async function firstGiftActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerFirstGiftData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityId, roleId);
let playerData = new FirstGiftData(activityData);

View File

@@ -15,7 +15,7 @@ import { gameData, getDicGachaFloor } from "../pubUtils/data";
*/
export async function getLimitGacha(serverId: number, roleId: string, activityId: number) {
let activityData = await ActivityModel.findActivity(serverId, activityId, true);
let activityData = await ActivityModel.findActivity(serverId, activityId);
if (!activityData) return false;
let gachaData = new GachaData(activityData);

View File

@@ -43,7 +43,7 @@ export async function growthFundActivity(type: number, serverId: number, roleId:
*
*/
export async function getPlayerGrowthFundData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activityId, roleId);
let playerData = new GrowthFundData(activityData);

View File

@@ -12,9 +12,19 @@ import { GrowthData, GrowthItem } from '../domain/activityField/growthField';
* @param {string} roleId 角色Id
*
*/
export async function getGrowthActivityData(serverId: number, roleId: string) {
let activityData: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
return { data: activityData };
export async function growthActivity(serverId: number, roleId: string) {
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
if (activityDataArray.length === 0) {
return null;
}
let activityData: ActivityModelType = activityDataArray[0];
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(serverId, activityData.activityId, roleId);
let playerPointRecord: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findData(serverId, activityData.activityId, roleId);
let playerData = new GrowthData(activityData);
await playerData.setPlayerRecords(playerRecords, roleId);
playerData.setPlayerPointRecord(playerPointRecord);
return playerData;
}
/**
@@ -26,14 +36,13 @@ export async function getGrowthActivityData(serverId: number, roleId: string) {
*
*/
export async function getPlayerGrowthData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(serverId, activityId, roleId);
let playerPointRecord: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findData(serverId, activityId, roleId);
let playerData = new GrowthData(activityData);
playerData.setPlayerRecords(playerRecords);
await playerData.setPlayerRecords(playerRecords, roleId);
playerData.setPlayerPointRecord(playerPointRecord);
return playerData;
}

View File

@@ -34,7 +34,7 @@ export async function newPlayerLimitPackageActivity(serverId: number, roleId: st
*
*/
export async function getPlayerLimitPackageData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new LimitShopData(activityData);
let playerRecord: ActivityShopModelType = await ActivityShopModel.findData(activityId, roleId, playerData.roundIndex);

View File

@@ -37,7 +37,7 @@ export async function monthlyTicketActivity(serverId: number, roleId: string, ty
*
*/
export async function getPlayerMonthlyTicketData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecord: ActivityMonthlyTicketModelType = await ActivityMonthlyTicketModel.findMonthlyTicket(serverId, roleId, activityId);
let playerData = new MonthlyTicketData(activityData);
playerData.setPlayerRecords(playerRecord);
@@ -54,7 +54,7 @@ export async function getPlayerMonthlyTicketData(activityId: number, serverId: n
*/
export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number,) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecord: ActivityMonthlyTicketModelType = await ActivityMonthlyTicketModel.findMonthlyTicket(serverId, roleId, activityId);
if (!playerRecord) {//没有购买过
return null;
@@ -84,7 +84,7 @@ export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName:
*/
export async function makeMonthlyTicketReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new MonthlyTicketData(activityData);
let endTime = moment(new Date()).startOf('d').add(playerData.days, 'day').toDate();

View File

@@ -1,4 +1,4 @@
import { UserOrderModel } from '../db/UserOrder';
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
import { SignInData, SignInItem } from '../domain/activityField/signInField';
import { ACTIVITY_TYPE, ORDER_STATE } from '../consts';
@@ -20,14 +20,12 @@ import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
* 结算账单
* @param localOrderID 本地订单号
*/
export async function makeOrder(localOrderID: string, sid: string) {
let orderInfo = await UserOrderModel.findOrder(localOrderID);
export async function makeOrder(localOrderID: string, sid: string, orderInfo: UserOrderModelType) {
// let orderInfo = await UserOrderModel.findOrder(localOrderID);
if (!orderInfo) {
return '查无此订单';
}
if (orderInfo.state == ORDER_STATE.RESULT_SUCCESS) {
return '结算过';
}
//商品价格信息
let productInfo = dicRMB.get(orderInfo.productID)
if (!productInfo) {

View File

@@ -36,7 +36,7 @@ export async function popUpShopActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerPopUpShopData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityPopUpShopModelType[] = await ActivityPopUpShopModel.findAllOpenData(serverId, activityId, roleId);
let allPlayerShop = [];
@@ -65,7 +65,7 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe
*/
export async function makePopUpShopReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
if (!activityData) {
return null;
}

View File

@@ -38,7 +38,7 @@ export async function rechargeMoneyActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerRechargeMoneyData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecord: ActivityRechargeMoneyModelType[] = await ActivityRechargeMoneyModel.findData(serverId, roleId);
let playerData = new RechargeMoneyData(activityData);

View File

@@ -37,7 +37,7 @@ export async function getActivityData(serverId: number, roleId: string) {
*
*/
export async function getPlayerActivityData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new SelfServiceShopData(activityData);
let playerRecords: ActivitySelfServiceShopModelType[] = await ActivitySelfServiceShopModel.findDataByPriceType(serverId, activityId, roleId, playerData.roundIndex, ACTIVITY_RESOURCES_TYPE.RMB);

View File

@@ -65,7 +65,7 @@ export async function signInVIPActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerSignInData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new SignInData(activityData);
let playerRecords: ActivitySignInModelType[] = await ActivitySignInModel.findData(activityId, roleId, playerData.roundIndex);
@@ -86,7 +86,7 @@ export async function getPlayerSignInData(activityId: number, serverId: number,
*/
export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new SignInData(activityData);
await ActivitySignInModel.buyVIP(activityId, roleId, playerData.roundIndex);

View File

@@ -39,7 +39,7 @@ export async function thirtyDaysActivity(type: number, serverId: number, roleId:
*
*/
export async function getPlayerThirtyDaysData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activityId, roleId);
let playerPointRecords: ActivityThirtyDaysPointRewardModelType[] = await ActivityThirtyDaysPointRewardModel.findData(activityId, roleId);
@@ -58,7 +58,7 @@ export async function getPlayerThirtyDaysData(activityId: number, serverId: numb
*
*/
export async function addPlayerThirtyDaysTask(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activityId, roleId);
let playerPointRecords: ActivityThirtyDaysPointRewardModelType[] = await ActivityThirtyDaysPointRewardModel.findData(activityId, roleId);

View File

@@ -35,7 +35,7 @@ export async function treasureHuntActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerTreasureHuntData(activityId: number, serverId: number, roleId: string, huntRoundIndex: number, huntBeginTime: Date, huntEndTime: Date) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new TreasureHuntData(activityData);
playerData.beginTime = moment(huntBeginTime).valueOf();
@@ -49,7 +49,7 @@ export async function getPlayerTreasureHuntData(activityId: number, serverId: nu
}
export async function getPlayerTreasureHuntShopData(activityId: number, serverId: number, roleId: string, huntRoundIndex: number, huntBeginTime: Date, huntEndTime: Date) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new TreasureHuntData(activityData);
playerData.beginTime = moment(huntBeginTime).valueOf();
@@ -74,7 +74,7 @@ export async function getTreasureHuntData(serverId: number) {
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
}
tempData = await ServerTempModel.updateTreasureHuntData(serverId, huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex);
activityData = await ActivityModel.findActivity(serverId, huntActivityId, true);
activityData = await ActivityModel.findActivity(serverId, huntActivityId);
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
}
if (now > tempData.huntEndTime) {//活动过期
@@ -83,11 +83,11 @@ export async function getTreasureHuntData(serverId: number) {
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
}
tempData = await ServerTempModel.updateTreasureHuntData(serverId, huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex);
activityData = await ActivityModel.findActivity(serverId, huntActivityId, true);
activityData = await ActivityModel.findActivity(serverId, huntActivityId);
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
}
if (!activityData) {
activityData = await ActivityModel.findActivity(serverId, tempData.huntActivityId, true);
activityData = await ActivityModel.findActivity(serverId, tempData.huntActivityId);
}
return {
huntActivityId: tempData.huntActivityId,

View File

@@ -33,7 +33,7 @@ export async function yuanbaoActivity(serverId: number, roleId: string) {
*
*/
export async function getPlayerYuanbaoShopData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerRecord: UserOrderModelType[] = await UserOrderModel.findOrderByActivityID(activityId, roleId);
let playerData = new YuanBaoShopData(activityData);
@@ -54,7 +54,7 @@ export async function getPlayerYuanbaoShopData(activityId: number, serverId: num
export async function makeYuanbaoShopReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let records = await UserOrderModel.findOrderByProductID(productID, roleId, activityId);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId, true);
let activityData: ActivityModelType = await ActivityModel.findActivity(serverId, activityId);
let playerData = new YuanBaoShopData(activityData);
let item = playerData.findItem(productID);

View File

@@ -5,6 +5,7 @@
*/
export enum ACTIVITY_TYPE {
SEVEN_DAY = 0, // 七天乐活动(虚)
DAILY_DISCOUNT_GIFT = 1, // 七天乐活动,每日特惠礼包
TASK_GROWTH = 2, // 成长任务活动
TASK_DAILY_CHALLENGES = 3, // 今日挑战活动
@@ -97,4 +98,4 @@ export const DAILYRMBGIFTS_DAYS = 7;//一次性购买*天
//签到活动开启时间
export const SIGNIN_OPEN = 5;//*号0点开启
export const SIGNIN_CLOSE = 24;//*号晚上24点结束
export const SIGNIN_CLOSE = 30;//*号晚上24点结束

View File

@@ -359,6 +359,7 @@ export const STATUS = {
ACTIVITY_POP_UP_SHOP_EXPIRE: { code: 50022, simStr: '弹出商店过期' },
ACTIVITY_NEED_PAY: { code: 50023, simStr: '客户端调错接口了' },
ACTIVITY_GOLD_RESOURCE: { code: 50024, simStr: '元宝资源' },
ACTIVITY_ID_ERROR: { code: 50025, simStr: 'id错误' },
// GM后台相关状态 60000 - 69999
GM_ERR_PASSWORD: { code: 60001, simStr: '账号或密码错误' },
GM_MISS_API: { code: 60002, simStr: '未找到该接口' },

View File

@@ -23,8 +23,8 @@ export default class Activity extends BaseModel {
data: string; // 活动表中的数据
//根据活动类型查询开启的活动数据
public static async findOpenActivityByType(serverId: number, type: number, date: Date, lean = true) {
let result: ActivityModelType[] = await ActivityModel.find({ serverId, type, beginTime: { $lte: date }, endTime: { $gte: date } }).sort({ activityId: -1 }).lean(lean);
public static async findOpenActivityByType(serverId: number, type: number, date: Date) {
let result: ActivityModelType[] = await ActivityModel.find({ serverId, type, beginTime: { $lte: date }, endTime: { $gte: date } }).sort({ activityId: -1 }).lean(true);
return result;
}
@@ -35,13 +35,13 @@ export default class Activity extends BaseModel {
}
//根据活动id查询活动数据
public static async findActivity(serverId: number, activityId: number, lean = true) {
let result: ActivityModelType = await ActivityModel.findOne({ serverId, activityId }).lean(lean);
public static async findActivity(serverId: number, activityId: number) {
let result: ActivityModelType = await ActivityModel.findOne({ serverId, activityId }).lean(true);
return result;
}
//新增活动
public static async addActivity(aids: number[], serverId: number, beginTime: Date, endTime: Date, type: number, data: string, lean = true) {
public static async addActivity(aids: number[], serverId: number, beginTime: Date, endTime: Date, type: number, data: string) {
let result: ActivityModelType[] = [];
for (let activityId of aids) {
if (!activityId) activityId = await CounterModel.getNewCounter(COUNTER.ACTIVITY);
@@ -56,7 +56,7 @@ export default class Activity extends BaseModel {
update["endTime"] = endTime;
}
let rec: ActivityModelType = await ActivityModel.findOneAndUpdate({ activityId }, { $set: update },
{ new: true, upsert: true }).lean(lean);
{ new: true, upsert: true }).lean(true);
result.push(rec);
}
return result;

View File

@@ -23,15 +23,13 @@ export default class Activity_Growth extends BaseModel {
totalCount: number; // 累计达成次数
@prop({ required: true })
receiveRewardCount: number; // 领取奖励次数
@prop({ required: true, default: 0 })
addPointCount: number; // 获得奖章个数
@prop({ required: true, default: false })
getPointReward: boolean; // 是否兑换领取奖章奖励
//任务领取记录
public static async addCellRecord(serverId: number, activityId: number, roleId: string, dayIndex: number, cellIndex: number, type: number, count: number, addPointCount: number, lean = true) {
public static async addCellRecord(serverId: number, activityId: number, roleId: string, dayIndex: number, cellIndex: number, type: number, count: number,) {
let result: ActivityGrowthModelType = await ActivityGrowthModel.findOneAndUpdate({ serverId, roleId, activityId, dayIndex, cellIndex, type },
{ $inc: { receiveRewardCount: count, addPointCount: addPointCount } }, { upsert: true, new: true }).lean(lean);
{ $inc: { receiveRewardCount: count } }, { upsert: true, new: true }).lean(true);
return result;
}

View File

@@ -24,6 +24,6 @@ export abstract class ActivityBase {
this.type = activityData.type;
// this.data = activityData.data;
this.todayIndex = deltaDays(activityData.beginTime, new Date) + 1;
console.log('今天是活动第几天', activityData.beginTime, new Date, this.todayIndex)
// console.log('今天是活动第几天', activityData.beginTime, new Date, this.todayIndex)
}
}

View File

@@ -2,6 +2,7 @@ import { TASK_TYPE, ACTIVITY_RESOURCES_TYPE } from '../../consts';
import { ActivityModelType } from '../../db/Activity';
import { ActivityGrowthModelType } from '../../db/ActivityGrowth';
import { ActivityGrowthPointModelType } from '../../db/ActivityGrowthPoint';
import { RoleModel } from '../../db/Role';
import { RewardInter } from '../../pubUtils/interface';
import { parseGoodStrWithType, parseHeroStrWithType, splitString } from '../../pubUtils/util';
import { CreateHeroParam } from '../roleField/hero';
@@ -174,12 +175,17 @@ export class GrowthData extends ActivityBase {
}
//解析玩家领取记录
public setPlayerRecords(data: ActivityGrowthModelType[]) {
public async setPlayerRecords(data: ActivityGrowthModelType[], roleId: string) {
let { heroNum } = await RoleModel.findByRoleId(roleId);
for (let obj of this.list) {
let index = data.findIndex(record => { return obj.dayIndex == record.dayIndex && obj.cellIndex == record.cellIndex })
if (index != -1) {
obj.totalCount = data[index].totalCount ? data[index].totalCount : 0;
obj.receiveRewardCount = data[index].receiveRewardCount ? data[index].receiveRewardCount : 0;
} else {
if (obj.taskType === TASK_TYPE.HERO_NUM) {
obj.totalCount = heroNum;
}
}
}
}

View File

@@ -566,7 +566,7 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
let addCount: number = 0; // 条件是否满足
switch (taskType) {
case TASK_TYPE.ROLE_LV://重置数据
addCount = param[0] <= count ? count : 0;
addCount = count;
break;
case TASK_TYPE.GUILD_JOIN:
addCount = count;
@@ -642,6 +642,9 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
case TASK_TYPE.HERO_TRAIN_SUM:
addCount = count;
break;
case TASK_TYPE.EQUIP_SUM:
addCount = count;
break;
default:
addCount = 0;
break;