活动:添加活动组
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { ACTIVITY_TYPE } from '../consts';
|
import { ACTIVITY_TYPE } from '../consts';
|
||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../db/ActivityDailyChallenges';
|
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../db/ActivityDailyChallenges';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { DailyChallengesData, DailyItem } from '../domain/activityField/dailyChallengesField';
|
import { DailyChallengesData, DailyItem } from '../domain/activityField/dailyChallengesField';
|
||||||
|
|
||||||
|
|
||||||
@@ -13,7 +14,8 @@ import { DailyChallengesData, DailyItem } from '../domain/activityField/dailyCha
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyChallengesActivity(serverId: number, roleId: string) {
|
export async function dailyChallengesActivity(serverId: number, roleId: string) {
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { ACTIVITY_TYPE } from '../consts';
|
import { ACTIVITY_TYPE } from '../consts';
|
||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../db/ActivityDailyGifts';
|
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../db/ActivityDailyGifts';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { DailyGiftsData, DailyGiftItem } from '../domain/activityField/dailyGiftsField';
|
import { DailyGiftsData, DailyGiftItem } from '../domain/activityField/dailyGiftsField';
|
||||||
|
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ import { DailyGiftsData, DailyGiftItem } from '../domain/activityField/dailyGift
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function dailyGiftsActivity(serverId: number, roleId: string) {
|
export async function dailyGiftsActivity(serverId: number, roleId: string) {
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, new Date());
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, new Date());
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/Acti
|
|||||||
import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords';
|
import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords';
|
||||||
import { RoleModel } from '../db/Role';
|
import { RoleModel } from '../db/Role';
|
||||||
import { GrowthFundData, GrowthFundItem } from '../domain/activityField/growthFundField';
|
import { GrowthFundData, GrowthFundItem } from '../domain/activityField/growthFundField';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -22,7 +23,8 @@ import { GrowthFundData, GrowthFundItem } from '../domain/activityField/growthFu
|
|||||||
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)
|
GROWTH_FUND_MAIN_ELITE_VIP = 11, // 精英成长基金(高阶)
|
||||||
*/
|
*/
|
||||||
export async function growthFundActivity(type: number, serverId: number, roleId: string) {
|
export async function growthFundActivity(type: number, serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, type, new Date())
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date())
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { ACTIVITY_TYPE } from '../consts';
|
|||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivityGrowthModel, ActivityGrowthModelType } from '../db/ActivityGrowth';
|
import { ActivityGrowthModel, ActivityGrowthModelType } from '../db/ActivityGrowth';
|
||||||
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../db/ActivityGrowthPoint';
|
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../db/ActivityGrowthPoint';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { GrowthData, GrowthItem } from '../domain/activityField/growthField';
|
import { GrowthData, GrowthItem } from '../domain/activityField/growthField';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,7 +14,8 @@ import { GrowthData, GrowthItem } from '../domain/activityField/growthField';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function growthActivity(serverId: number, roleId: string) {
|
export async function growthActivity(serverId: number, roleId: string) {
|
||||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
||||||
if (activityDataArray.length === 0) {
|
if (activityDataArray.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop';
|
import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { LimitShopData, ShopItem } from '../domain/activityField/limitShopField';
|
import { LimitShopData, ShopItem } from '../domain/activityField/limitShopField';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,7 +14,8 @@ import { LimitShopData, ShopItem } from '../domain/activityField/limitShopField'
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function newPlayerLimitPackageActivity(serverId: number, roleId: string) {
|
export async function newPlayerLimitPackageActivity(serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE, new Date)
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE, new Date)
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -53,7 +55,8 @@ export async function getPlayerLimitPackageData(activityId: number, serverId: nu
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function limitPackageActivity(serverId: number, roleId: string, type: number) {
|
export async function limitPackageActivity(serverId: number, roleId: string, type: number) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, type, new Date)
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date)
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { RewardParam } from '../domain/activityField/rewardField';
|
|||||||
import { MonthlyTicketData } from '../domain/activityField/monthlyTicketField';
|
import { MonthlyTicketData } from '../domain/activityField/monthlyTicketField';
|
||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import moment = require('moment');
|
import moment = require('moment');
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -16,7 +17,8 @@ import moment = require('moment');
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function monthlyTicketActivity(serverId: number, roleId: string, type: number) {
|
export async function monthlyTicketActivity(serverId: number, roleId: string, type: number) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, type, new Date())
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, type, new Date())
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { makeDailyRMBGiftsReward } from './dailyRMBGiftsService';
|
|||||||
import { makePopUpShopReward } from './popUpShopService';
|
import { makePopUpShopReward } from './popUpShopService';
|
||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
|
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -41,7 +42,8 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
|
|||||||
|
|
||||||
//首冲礼包
|
//首冲礼包
|
||||||
{
|
{
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(orderInfo.serverId, ACTIVITY_TYPE.FIRST_GIFT, new Date())
|
let { activityGroupId } = await ServerlistModel.findByServerId(orderInfo.serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.FIRST_GIFT, new Date())
|
||||||
for (let obj of activityArray) {
|
for (let obj of activityArray) {
|
||||||
await ActivityFirstGiftModel.begin(obj.activityId, roleId);
|
await ActivityFirstGiftModel.begin(obj.activityId, roleId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { PopUpShopData, } from '../domain/activityField/popUpShopField';
|
|||||||
import { RewardParam } from '../domain/activityField/rewardField';
|
import { RewardParam } from '../domain/activityField/rewardField';
|
||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../db/ActivityPopUpShop';
|
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../db/ActivityPopUpShop';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -15,7 +16,8 @@ import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../db/Activi
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function popUpShopActivity(serverId: number, roleId: string) {
|
export async function popUpShopActivity(serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.POP_UP_SHOP, new Date())
|
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) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { RechargeMoneyData, RechargeMoneyItem } from '../domain/activityField/re
|
|||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
|
|
||||||
import moment = require('moment');
|
import moment = require('moment');
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -17,7 +18,8 @@ import moment = require('moment');
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export async function rechargeMoneyActivity(serverId: number, roleId: string) {
|
export async function rechargeMoneyActivity(serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.RECHARGE_MONEY, new Date())
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.RECHARGE_MONEY, new Date())
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { ACTIVITY_RESOURCES_TYPE, ACTIVITY_TYPE } from '../consts';
|
|||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivitySelfServiceGoodsModel, ActivitySelfServiceGoodsModelType } from '../db/ActivitySelfServiceGoods';
|
import { ActivitySelfServiceGoodsModel, ActivitySelfServiceGoodsModelType } from '../db/ActivitySelfServiceGoods';
|
||||||
import { ActivitySelfServiceShopModel, ActivitySelfServiceShopModelType } from '../db/ActivitySelfServiceShop';
|
import { ActivitySelfServiceShopModel, ActivitySelfServiceShopModelType } from '../db/ActivitySelfServiceShop';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { RewardParam } from '../domain/activityField/rewardField';
|
import { RewardParam } from '../domain/activityField/rewardField';
|
||||||
import { SelfServiceShopData, SelfServiceShopItem } from '../domain/activityField/selfServiceShopField';
|
import { SelfServiceShopData, SelfServiceShopItem } from '../domain/activityField/selfServiceShopField';
|
||||||
import { gameData } from '../pubUtils/data';
|
import { gameData } from '../pubUtils/data';
|
||||||
@@ -16,7 +17,8 @@ import { addReward, getSelectedReward } from './giftPackageService';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function getActivityData(serverId: number, roleId: string) {
|
export async function getActivityData(serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.SELF_SERVICE_SHOP, new Date())
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SELF_SERVICE_SHOP, new Date())
|
||||||
activityArray = activityArray.sort((a, b) => {
|
activityArray = activityArray.sort((a, b) => {
|
||||||
return b.activityId - a.activityId
|
return b.activityId - a.activityId
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import moment = require('moment');
|
|||||||
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT } from '../consts';
|
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT } from '../consts';
|
||||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +20,8 @@ export async function signInActivity(serverId: number, roleId: string) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.SIGN_IN, new Date());
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SIGN_IN, new Date());
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -45,7 +47,8 @@ export async function signInVIPActivity(serverId: number, roleId: string) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.SIGN_IN_VIP, new Date());
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.SIGN_IN_VIP, new Date());
|
||||||
if (activityArray.length == 0) {
|
if (activityArray.length == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { COUNTER } from '../consts';
|
|||||||
|
|
||||||
export default class Activity extends BaseModel {
|
export default class Activity extends BaseModel {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
serverId: number; // 服Id
|
groupId: number; // 组Id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
activityId: number; // 活动Id
|
activityId: number; // 活动Id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
@@ -23,8 +23,10 @@ export default class Activity extends BaseModel {
|
|||||||
data: string; // 活动表中的数据
|
data: string; // 活动表中的数据
|
||||||
|
|
||||||
//根据活动类型查询开启的活动数据
|
//根据活动类型查询开启的活动数据
|
||||||
public static async findOpenActivityByType(serverId: number, type: number, date: Date) {
|
public static async findOpenActivityByType(activityGroupId: number[], type: number, date: Date) {
|
||||||
let result: ActivityModelType[] = await ActivityModel.find({ serverId, type, beginTime: { $lte: date }, endTime: { $gte: date } }).sort({ activityId: -1 }).lean(true);
|
let result: ActivityModelType[] = await ActivityModel.find(
|
||||||
|
{ groupId: { $in: activityGroupId }, type, beginTime: { $lte: date }, endTime: { $gte: date } }
|
||||||
|
).sort({ activityId: -1 }).lean(true);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
52
shared/db/ActivityGroup.ts
Normal file
52
shared/db/ActivityGroup.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import BaseModel from './BaseModel';
|
||||||
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动合集
|
||||||
|
*/
|
||||||
|
@index({ activityId: 1 })
|
||||||
|
|
||||||
|
export default class Activity_Group extends BaseModel {
|
||||||
|
@prop({ required: true })
|
||||||
|
groupId: number; // 组Id
|
||||||
|
@prop({ required: true })
|
||||||
|
groupName: string; // 组名
|
||||||
|
@prop({ required: true })
|
||||||
|
activities: number[]; // 活动Id
|
||||||
|
@prop({ required: true })
|
||||||
|
beginTime: Date; // 里面的activity的最早的时间
|
||||||
|
@prop({ required: true })
|
||||||
|
endTime: Date; // 里面的activity的最晚的时间
|
||||||
|
|
||||||
|
|
||||||
|
//查询组
|
||||||
|
public static async findGroupData(groupId: number) {
|
||||||
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOne({ groupId }).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//更新名字
|
||||||
|
public static async updateGroupName(groupId: number, groupName: string) {
|
||||||
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
|
||||||
|
{ $set: { groupName } }, { upsert: true, new: true }).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//更新询组
|
||||||
|
public static async updateGroupData(groupId: number, activities: number[], beginTime: Date, endTime: Date) {
|
||||||
|
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
|
||||||
|
{ $set: { activities, beginTime, endTime } }, { upsert: true, new: true }).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除组
|
||||||
|
public static async deleteGroup(groupId: number) {
|
||||||
|
let result = await ActivityGroupModel.deleteMany({ groupId });
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ActivityGroupModel = getModelForClass(Activity_Group);
|
||||||
|
|
||||||
|
export interface ActivityGroupModelType extends Pick<DocumentType<Activity_Group>, keyof Activity_Group> { }
|
||||||
|
export type ActivityGroupModelTypeParam = Partial<ActivityGroupModelType>; // 将所有字段变成可选项
|
||||||
@@ -18,7 +18,7 @@ export default class Activity_Growth_Point extends BaseModel {
|
|||||||
|
|
||||||
//当日奖章领取记录
|
//当日奖章领取记录
|
||||||
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number) {
|
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number) {
|
||||||
let result: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findOneAndUpdate({ serverId, roleId, activityId, id },
|
let result: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findOneAndUpdate({ serverId, roleId, activityId },
|
||||||
{ $push: { ids: id } }, { upsert: true, new: true }).lean(true);
|
{ $push: { ids: id } }, { upsert: true, new: true }).lean(true);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -30,8 +30,8 @@ export default class Activity_Growth_Point extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//删除活动领取记录
|
//删除活动领取记录
|
||||||
public static async deleteActivity(serverId: number, activityId: number, roleId: string, id: number) {
|
public static async deleteActivity(serverId: number, activityId: number, roleId: string) {
|
||||||
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId, id });
|
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { index, getModelForClass, prop, DocumentType, modelOptions } from '@type
|
|||||||
* 游戏字段接口
|
* 游戏字段接口
|
||||||
*/
|
*/
|
||||||
@index({ id: 1 })
|
@index({ id: 1 })
|
||||||
@modelOptions({schemaOptions: {id: false}})
|
@modelOptions({ schemaOptions: { id: false } })
|
||||||
export default class Serverlist extends BaseModel {
|
export default class Serverlist extends BaseModel {
|
||||||
|
|
||||||
@prop({ required: true, default: 1 })
|
@prop({ required: true, default: 1 })
|
||||||
@@ -33,10 +33,13 @@ export default class Serverlist extends BaseModel {
|
|||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
serverStatus: number; // 服务器状态
|
serverStatus: number; // 服务器状态
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
activityGroupId: number[]; // 活动组
|
||||||
|
|
||||||
public get status() {
|
public get status() {
|
||||||
let now = new Date();
|
let now = new Date();
|
||||||
if( now > this.openTime) {
|
if (now > this.openTime) {
|
||||||
return this.serverStatus;
|
return this.serverStatus;
|
||||||
} else {
|
} else {
|
||||||
return 3; // 未开服
|
return 3; // 未开服
|
||||||
@@ -61,19 +64,19 @@ export default class Serverlist extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async findByServerId(serverId: number) {
|
public static async findByServerId(serverId: number) {
|
||||||
let server: ServerlistType = await ServerlistModel.findOne({ id: serverId }).select('medianCe').lean({ getters: true, virtuals: true });
|
let server: ServerlistType = await ServerlistModel.findOne({ id: serverId }).select('medianCe activityGroupId').lean({ getters: true, virtuals: true });
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async updateByServerId(serverId: number, update: ServerlistUpdate) {
|
public static async updateByServerId(serverId: number, update: ServerlistUpdate) {
|
||||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({id: serverId}, {$set: update}).lean({ getters: true, virtuals: true });
|
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId }, { $set: update }).lean({ getters: true, virtuals: true });
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async newServer(serverId: number, serverType: string, params: ServerlistUpdate) {
|
public static async newServer(serverId: number, serverType: string, params: ServerlistUpdate) {
|
||||||
const doc = new ServerlistModel();
|
const doc = new ServerlistModel();
|
||||||
const update = Object.assign(doc.toJSON(), { id: serverId, serverType }, params);
|
const update = Object.assign(doc.toJSON(), { id: serverId, serverType }, params);
|
||||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId, serverType }, {$setOnInsert: update }, {new: true, upsert: true}).lean({ getters: true, virtuals: true });
|
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId, serverType }, { $setOnInsert: update }, { new: true, upsert: true }).lean({ getters: true, virtuals: true });
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +88,7 @@ export default class Serverlist extends BaseModel {
|
|||||||
|
|
||||||
export const ServerlistModel = getModelForClass(Serverlist);
|
export const ServerlistModel = getModelForClass(Serverlist);
|
||||||
|
|
||||||
export interface ServerlistType extends Pick<DocumentType<Serverlist>, keyof Serverlist>{
|
export interface ServerlistType extends Pick<DocumentType<Serverlist>, keyof Serverlist> {
|
||||||
id: number;
|
id: number;
|
||||||
};
|
};
|
||||||
export type ServerlistUpdate = Partial<ServerlistType>; // 将所有字段变成可选项
|
export type ServerlistUpdate = Partial<ServerlistType>; // 将所有字段变成可选项
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ export class GrowthData extends ActivityBase {
|
|||||||
|
|
||||||
//第几天的奖章兑换
|
//第几天的奖章兑换
|
||||||
public findPointItem(id: number) {
|
public findPointItem(id: number) {
|
||||||
|
console.log('ddddddddddd', JSON.stringify(this.pointRewardList), id)
|
||||||
let index = this.pointRewardList.findIndex(obj => { return obj && obj.id === id })
|
let index = this.pointRewardList.findIndex(obj => { return obj && obj.id === id })
|
||||||
return (index != -1) ? this.pointRewardList[index] : null;
|
return (index != -1) ? this.pointRewardList[index] : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { ActivityGrowthModel } from '../db/ActivityGrowth';
|
|||||||
import { ActivityDailyChallengesModel } from '../db/ActivityDailyChallenges';
|
import { ActivityDailyChallengesModel } from '../db/ActivityDailyChallenges';
|
||||||
import { ThirtyDaysData } from '../domain/activityField/thirtyDaysField';
|
import { ThirtyDaysData } from '../domain/activityField/thirtyDaysField';
|
||||||
import { ActivityThirtyDaysModel, ActivityThirtyDaysModelType } from '../db/ActivityThirtyDays';
|
import { ActivityThirtyDaysModel, ActivityThirtyDaysModelType } from '../db/ActivityThirtyDays';
|
||||||
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -482,8 +483,9 @@ function checkRecResult(rec: UserTaskRecType, id: number) {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||||
|
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
//七天乐-成长活动统计
|
//七天乐-成长活动统计
|
||||||
let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
let allActivity: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_GROWTH, new Date());
|
||||||
for (let activity of allActivity) {
|
for (let activity of allActivity) {
|
||||||
let growthActivity = new GrowthData(activity);
|
let growthActivity = new GrowthData(activity);
|
||||||
let taskArray = growthActivity.findTaskByType(taskType);
|
let taskArray = growthActivity.findTaskByType(taskType);
|
||||||
@@ -491,16 +493,16 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
|||||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||||
if (addCount) {
|
if (addCount) {
|
||||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
||||||
await ActivityGrowthModel.setTaskCount(activity.serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
await ActivityGrowthModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||||
} else {
|
} else {
|
||||||
await ActivityGrowthModel.addTaskCount(activity.serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
await ActivityGrowthModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//今日挑战统计
|
//今日挑战统计
|
||||||
allActivity = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, new Date());
|
||||||
for (let activity of allActivity) {
|
for (let activity of allActivity) {
|
||||||
let growthActivity = new DailyChallengesData(activity);
|
let growthActivity = new DailyChallengesData(activity);
|
||||||
let taskArray = growthActivity.findTaskByType(taskType, growthActivity.today());
|
let taskArray = growthActivity.findTaskByType(taskType, growthActivity.today());
|
||||||
@@ -508,9 +510,9 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
|||||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||||
if (addCount) {
|
if (addCount) {
|
||||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE) {
|
||||||
await ActivityDailyChallengesModel.setTaskCount(activity.serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
await ActivityDailyChallengesModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||||
} else {
|
} else {
|
||||||
await ActivityDailyChallengesModel.addTaskCount(activity.serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
await ActivityDailyChallengesModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -531,16 +533,16 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
|||||||
taskType === TASK_TYPE.EQUIP_QUALITY
|
taskType === TASK_TYPE.EQUIP_QUALITY
|
||||||
|
|
||||||
) {
|
) {
|
||||||
allActivity = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.THIRTY_DAYS, new Date());
|
allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.THIRTY_DAYS, new Date());
|
||||||
for (let activity of allActivity) {
|
for (let activity of allActivity) {
|
||||||
let thirtyDaysActivity = new ThirtyDaysData(activity);
|
let thirtyDaysActivity = new ThirtyDaysData(activity);
|
||||||
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(activity.serverId, activity.activityId, roleId);
|
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activity.activityId, roleId);
|
||||||
thirtyDaysActivity.setPlayerRecords(playerRecords);
|
thirtyDaysActivity.setPlayerRecords(playerRecords);
|
||||||
let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType);
|
let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType);
|
||||||
for (let task of taskArray) {
|
for (let task of taskArray) {
|
||||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||||
if (addCount) {
|
if (addCount) {
|
||||||
await ActivityThirtyDaysModel.addTaskCount(activity.serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.taskType, addCount);
|
await ActivityThirtyDaysModel.addTaskCount(serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.taskType, addCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user