活动:节日活动添加每日关卡
This commit is contained in:
@@ -133,361 +133,360 @@ export class ActivityHandler {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//签到 4
|
||||
{
|
||||
let data = await signInActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SIGN_IN,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//高级签到 5
|
||||
{
|
||||
let data = await signInVIPActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SIGN_IN_VIP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //签到 4
|
||||
// {
|
||||
// let data = await signInActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.SIGN_IN,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //高级签到 5
|
||||
// {
|
||||
// let data = await signInVIPActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.SIGN_IN_VIP,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//成长基金 6
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_MAIN,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//高阶成长基金 7
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//镇念塔成长基金 8
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_TOWER,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//高阶镇念塔成长基金 9
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//精英成长基金 10
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//高阶精英成长基金 11
|
||||
{
|
||||
let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP, serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //成长基金 6
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_MAIN,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //高阶成长基金 7
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //镇念塔成长基金 8
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_TOWER,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //高阶镇念塔成长基金 9
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //精英成长基金 10
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //高阶精英成长基金 11
|
||||
// {
|
||||
// let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP, serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//30天目标活动 12
|
||||
{
|
||||
let data = await thirtyDaysActivity(ACTIVITY_TYPE.THIRTY_DAYS, serverId, roleId);
|
||||
if (data) {
|
||||
let todayIndex = await playerThirtyDaysActivityDays(roleId);
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.THIRTY_DAYS,
|
||||
activityId: data.activityId,
|
||||
data: { playerData: data, todayIndex },
|
||||
});
|
||||
}
|
||||
}
|
||||
// //30天目标活动 12
|
||||
// {
|
||||
// let data = await thirtyDaysActivity(ACTIVITY_TYPE.THIRTY_DAYS, serverId, roleId);
|
||||
// if (data) {
|
||||
// let todayIndex = await playerThirtyDaysActivityDays(roleId);
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.THIRTY_DAYS,
|
||||
// activityId: data.activityId,
|
||||
// data: { playerData: data, todayIndex },
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//自选商店 糜家商队 13
|
||||
{
|
||||
let data = await getSelfServiceShopActivityData(serverId, roleId);
|
||||
if (data) {
|
||||
let playerGoods = await ActivitySelfServiceGoodsModel.findData(data.activityId, roleId, data.roundIndex, true);
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SELF_SERVICE_SHOP,
|
||||
activityId: data.activityId,
|
||||
data: { playerData: data, playerGoods: playerGoods ? playerGoods : [] },
|
||||
});
|
||||
}
|
||||
}
|
||||
// //自选商店 糜家商队 13
|
||||
// {
|
||||
// let data = await getSelfServiceShopActivityData(serverId, roleId);
|
||||
// if (data) {
|
||||
// let playerGoods = await ActivitySelfServiceGoodsModel.findData(data.activityId, roleId, data.roundIndex, true);
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.SELF_SERVICE_SHOP,
|
||||
// activityId: data.activityId,
|
||||
// data: { playerData: data, playerGoods: playerGoods ? playerGoods : [] },
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//首冲礼包活动 14
|
||||
{
|
||||
let data = await firstGiftActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.FIRST_GIFT,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //首冲礼包活动 14
|
||||
// {
|
||||
// let data = await firstGiftActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.FIRST_GIFT,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//新手限定RMB购买礼包 15
|
||||
{
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
let createDate = moment(createTime * 1000).toDate();
|
||||
let endTime = moment(createDate).startOf('d').add(7, 'd').add(5, 'h').toDate();
|
||||
if (new Date() <= endTime) {
|
||||
let data = await newPlayerLimitPackageActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
//每日限购礼包,RMB购买礼包 16
|
||||
{
|
||||
let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//每日限购礼包,RMB购买礼包 17
|
||||
{
|
||||
let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //新手限定RMB购买礼包 15
|
||||
// {
|
||||
// let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
// let createDate = moment(createTime * 1000).toDate();
|
||||
// let endTime = moment(createDate).startOf('d').add(7, 'd').add(5, 'h').toDate();
|
||||
// if (new Date() <= endTime) {
|
||||
// let data = await newPlayerLimitPackageActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //每日限购礼包,RMB购买礼包 16
|
||||
// {
|
||||
// let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //每日限购礼包,RMB购买礼包 17
|
||||
// {
|
||||
// let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//元宝商店 18
|
||||
{
|
||||
let data = await yuanbaoActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.YUAN_BAO_SHOP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //元宝商店 18
|
||||
// {
|
||||
// let data = await yuanbaoActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.YUAN_BAO_SHOP,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//月卡1 19
|
||||
{
|
||||
let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_1);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.MONTHLY_TICKET_1,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //月卡1 19
|
||||
// {
|
||||
// let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_1);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.MONTHLY_TICKET_1,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//月卡2 20
|
||||
{
|
||||
let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_2);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.MONTHLY_TICKET_2,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //月卡2 20
|
||||
// {
|
||||
// let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_2);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.MONTHLY_TICKET_2,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//累计充值RMB活动 21
|
||||
{
|
||||
let data = await rechargeMoneyActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.RECHARGE_MONEY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
//每日特惠RMB购买,一次性购买7天礼包 22
|
||||
{
|
||||
let data = await dailyRMBGiftsActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.DAILY_RMB_GIFTS,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //累计充值RMB活动 21
|
||||
// {
|
||||
// let data = await rechargeMoneyActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.RECHARGE_MONEY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// //每日特惠RMB购买,一次性购买7天礼包 22
|
||||
// {
|
||||
// let data = await dailyRMBGiftsActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.DAILY_RMB_GIFTS,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//寻宝骑兵活动 23
|
||||
{
|
||||
let data = await treasureHuntActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.TREASURE_HUNT,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //寻宝骑兵活动 23
|
||||
// {
|
||||
// let data = await treasureHuntActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.TREASURE_HUNT,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//弹出商店 24
|
||||
{
|
||||
let data = await popUpShopActivity(serverId, roleId);
|
||||
if (data && data.length > 0) {
|
||||
for (let obj of data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.POP_UP_SHOP,
|
||||
activityId: obj.activityId,
|
||||
data: obj,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
// //弹出商店 24
|
||||
// {
|
||||
// let data = await popUpShopActivity(serverId, roleId);
|
||||
// if (data && data.length > 0) {
|
||||
// for (let obj of data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.POP_UP_SHOP,
|
||||
// activityId: obj.activityId,
|
||||
// data: obj,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//新手签到 25
|
||||
{
|
||||
let data = await newPlayerSignInActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //新手签到 25
|
||||
// {
|
||||
// let data = await newPlayerSignInActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//vip累计充值活动 26
|
||||
{
|
||||
let data = await vipRechargeMoneyActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.VIP_RECHARGE_MONEY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //vip累计充值活动 26
|
||||
// {
|
||||
// let data = await vipRechargeMoneyActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.VIP_RECHARGE_MONEY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//七天乐活动 27
|
||||
{
|
||||
let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.SEVEN_DAY);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SEVEN_DAY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //七天乐活动 27
|
||||
// {
|
||||
// let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.SEVEN_DAY);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.SEVEN_DAY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//十四天乐活动 28
|
||||
{
|
||||
let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.FOURTEEN_DAY);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.FOURTEEN_DAY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //十四天乐活动 28
|
||||
// {
|
||||
// let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.FOURTEEN_DAY);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.FOURTEEN_DAY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//通用七天乐活动 29
|
||||
{
|
||||
let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.COMMON_SEVEN_DAY);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.COMMON_SEVEN_DAY,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //通用七天乐活动 29
|
||||
// {
|
||||
// let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.COMMON_SEVEN_DAY);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.COMMON_SEVEN_DAY,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//每日领取免费午饭、晚饭活动
|
||||
{
|
||||
let data = await dailyMealActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.DAILY_MEAL,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //每日领取免费午饭、晚饭活动 30
|
||||
// {
|
||||
// let data = await dailyMealActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.DAILY_MEAL,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//每日兑换铜币活动
|
||||
{
|
||||
let data = await dailyCoinActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.DAILY_COIN,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
// //每日兑换铜币活动 31
|
||||
// {
|
||||
// let data = await dailyCoinActivity(serverId, roleId);
|
||||
// if (data) {
|
||||
// playerActivityArray.push({
|
||||
// type: ACTIVITY_TYPE.DAILY_COIN,
|
||||
// activityId: data.activityId,
|
||||
// data,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let groups = await ActivityGroupModel.findGroupsData(activityGroupId);
|
||||
let playerGroupArray = [];
|
||||
for (let groupData of groups) {
|
||||
if (groupData.type !== ACTIVITY_GROUP_TYPE.UNKNOW) {
|
||||
let playerActivityArray = [];
|
||||
for (let activityId of groupData.activities) {
|
||||
let activityData = await ActivityModel.findActivity(activityId);
|
||||
if (activityData) {
|
||||
let playerActivityData = await getActivity(serverId, roleId, activityId, activityData.type)
|
||||
if (playerActivityData) playerActivityArray.push(playerActivityData);
|
||||
}
|
||||
let playerGroupActivityArray = [];
|
||||
for (let activityId of groupData.activities) {
|
||||
let activityData = await ActivityModel.findActivity(activityId);
|
||||
if (activityData) {
|
||||
let playerActivityData = await getActivity(serverId, roleId, activityId, activityData.type)
|
||||
if (playerActivityData) playerGroupActivityArray.push(playerActivityData);
|
||||
}
|
||||
playerGroupArray.push({
|
||||
type: groupData.type,
|
||||
activities: playerActivityArray,
|
||||
});
|
||||
}
|
||||
playerGroupArray.push({
|
||||
type: groupData.type,
|
||||
activities: playerGroupActivityArray,
|
||||
});
|
||||
console.log(`${roleId} 活动合集 groupId:${groupData.groupId}, 合集类型${groupData.type}, 一共${playerGroupActivityArray.length}个`)
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { playerActivityArray, playerGroupArray });
|
||||
|
||||
@@ -10,6 +10,7 @@ import { RewardParam } from '../../../domain/activityField/rewardField';
|
||||
import { ItemInter } from '../../../pubUtils/interface';
|
||||
import { getGoldObject } from '../../../pubUtils/itemUtils';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import moment = require('moment');
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -123,7 +124,7 @@ export class DailyCoinHandler {
|
||||
|
||||
//免费期间
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, newReward)
|
||||
await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.beginTime, count, addCoin, `${count}&${consumeGold}&${addCoin}`);
|
||||
await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.beginTime, count, addCoin, `${count}&${consumeGold}&${addCoin}&${moment(new Date().valueOf())}`);
|
||||
|
||||
let exchangeCount = playerData.exchangeCount + count;
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
|
||||
79
game-server/app/servers/activity/handler/dailyGKHandler.ts
Normal file
79
game-server/app/servers/activity/handler/dailyGKHandler.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts';
|
||||
import { getPlayerDailyGKData } from '../../../services/dailyGKService';
|
||||
import { DailyGKItem } from '../../../domain/activityField/dailyGKField';
|
||||
import { addReward, stringToRewardParam } from '../../../services/giftPackageService';
|
||||
import { RewardParam } from '../../../domain/activityField/rewardField';
|
||||
import { ActivityDailyGKModel } from '../../../db/ActivityDailyGK';
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
return new DailyGKHandler(app);
|
||||
}
|
||||
|
||||
export class DailyGKHandler {
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
/************************每日关卡;按日开启,每日开启一关****************************/
|
||||
|
||||
/**
|
||||
* @description 获取每日关卡活动数据
|
||||
* @param {{ activityId: number}} msg
|
||||
* @param {BackendSession} session
|
||||
* @memberof DailyGKHandler
|
||||
*/
|
||||
async getDailyGKActivity(msg: { activityId: number }, session: BackendSession) {
|
||||
const { activityId } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let playerData = await getPlayerDailyGKData(activityId, serverId, roleId)
|
||||
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
return resResult(STATUS.SUCCESS, playerData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取今日挑战的单个奖励
|
||||
* @param {{ activityId: number, dayIndex: number}} msg
|
||||
* @param {BackendSession} session
|
||||
* @memberof DailyGKHandler
|
||||
*/
|
||||
async getGK(msg: { activityId: number, dayIndex: number }, session: BackendSession) {
|
||||
const { activityId, dayIndex } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const roleName = session.get('roleName');
|
||||
const funcs = session.get('funcs');
|
||||
|
||||
let playerData = await getPlayerDailyGKData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
if (dayIndex > playerData.todayIndex) {
|
||||
return resResult(STATUS.ACTIVITY_DAY_INDEX_OVER);
|
||||
}
|
||||
|
||||
let dailyItemData: DailyGKItem = playerData.findDailyGKItem(dayIndex);
|
||||
if (!dailyItemData) {
|
||||
return resResult(STATUS.ACTIVITY_DATA_ERROR);
|
||||
}
|
||||
if (dailyItemData.isSuccess) {//已经达成
|
||||
return resResult(STATUS.ACTIVITY_REWARDED);
|
||||
}
|
||||
|
||||
await ActivityDailyGKModel.addRecord(serverId, activityId, roleId, dayIndex);
|
||||
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(dailyItemData.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
|
||||
dailyItemData.isSuccess = true;
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
gkId: dailyItemData.gk
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS, } from '../../../consts';
|
||||
import { getPlayerDailyGiftsData, makeDailyRMBGiftsReward } from '../../../services/dailyRMBGiftsService';
|
||||
import { getPlayerDailyRMBGiftsData, makeDailyRMBGiftsReward } from '../../../services/dailyRMBGiftsService';
|
||||
import { RewardParam } from '../../../domain/activityField/rewardField';
|
||||
import { addReward, stringToRewardParam } from '../../../services/giftPackageService';
|
||||
import { ActivityDailyRMBGiftsModel } from '../../../db/ActivityDailyRMBGifts';
|
||||
@@ -29,7 +29,7 @@ export class DailyRMBGiftsHandler {
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let playerData = await getPlayerDailyGiftsData(activityId, serverId, roleId)
|
||||
let playerData = await getPlayerDailyRMBGiftsData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { playerData });
|
||||
@@ -49,7 +49,7 @@ export class DailyRMBGiftsHandler {
|
||||
const roleName = session.get('roleName');
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let playerData = await getPlayerDailyGiftsData(activityId, serverId, roleId)
|
||||
let playerData = await getPlayerDailyRMBGiftsData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
if (id > 0) {//领取单个--免费奖励
|
||||
|
||||
@@ -22,6 +22,7 @@ import { Rank } from '../../../services/rankService';
|
||||
import { checkTaskWithWar, checkTaskInBattleEnd, checkActivityTask } from '../../../services/taskService';
|
||||
import { ActivitySelfServiceModel } from '../../../db/ActivitySelfService';
|
||||
import { getSelfServiceShopActivityData } from '../../../services/selfServiceShopActivityService';
|
||||
import { challengeDailyGK } from '../../../services/dailyGKService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new NormalBattleHandler(app);
|
||||
@@ -119,8 +120,8 @@ export class NormalBattleHandler {
|
||||
}
|
||||
|
||||
// 关卡结算,记录使用的武将,获得奖励
|
||||
async battleEnd(msg: { battleCode: string, battleId: number, isSuccess: boolean, star: number, heroes: Array<any>, }, session: BackendSession) {
|
||||
const { battleCode, battleId, isSuccess, heroes = [], star } = msg;
|
||||
async battleEnd(msg: { battleCode: string, battleId: number, isSuccess: boolean, star: number, heroes: Array<any>, activityId: number }, session: BackendSession) {
|
||||
const { battleCode, battleId, isSuccess, heroes = [], star, activityId } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
@@ -213,6 +214,10 @@ export class NormalBattleHandler {
|
||||
let playerData = await getSelfServiceShopActivityData(serverId, roleId)
|
||||
await ActivitySelfServiceModel.addChallengeRecord(serverId, playerData.activityId, roleId, playerData.roundIndex, 1, new Date())
|
||||
}
|
||||
} else if (warInfo.warType == WAR_TYPE.ACT_DAILY_GK) {
|
||||
if (isSuccess) {
|
||||
await challengeDailyGK(serverId, roleId, activityId, battleId)
|
||||
}
|
||||
}
|
||||
|
||||
if (isSuccess) { // 挑战胜利
|
||||
|
||||
@@ -11,6 +11,15 @@ import { getPlayerThirtyDaysData, playerThirtyDaysActivityDays, } from './thirty
|
||||
import { getPlayerVipRechargeMoneyData, } from './vipRechargeMoneyService';
|
||||
import { getPlayerActivityData, } from './selfServiceShopActivityService';
|
||||
import { ActivitySelfServiceGoodsModel } from '../db/ActivitySelfServiceGoods';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import moment = require('moment');
|
||||
import { getPlayerTreasureHuntData, getTreasureHuntData } from './treasureHuntService';
|
||||
import { getPlayerPopUpShopData } from './popUpShopService';
|
||||
import { getPlayerSevenDaysData } from './sevenDaysService';
|
||||
import { getPlayerDailyMealData } from './dailyMealService';
|
||||
import { getPlayerDailyCoinData } from './dailyCoinService';
|
||||
import { getPlayerDailyRMBGiftsData } from './dailyRMBGiftsService';
|
||||
import { getPlayerDailyGKData } from './dailyGKService';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
@@ -59,6 +68,16 @@ export async function getActivity(serverId: number, roleId: string, activityId:
|
||||
activityData = await getPlayerFirstGiftData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE://新手限定RMB购买礼包 15
|
||||
{
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
let createDate = moment(createTime * 1000).toDate();
|
||||
let endTime = moment(createDate).startOf('d').add(7, 'd').add(5, 'h').toDate();
|
||||
if (new Date() <= endTime) {
|
||||
activityData = await getPlayerLimitPackageData(activityId, serverId, roleId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY://每日限购礼包,RMB购买礼包 16
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY://每周限购礼包,RMB购买礼包 17
|
||||
{
|
||||
@@ -83,7 +102,18 @@ export async function getActivity(serverId: number, roleId: string, activityId:
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_RMB_GIFTS://每日特惠RMB购买,一次性购买7天礼包 22
|
||||
{
|
||||
activityData = await getPlayerDailyGiftsData(activityId, serverId, roleId);
|
||||
activityData = await getPlayerDailyRMBGiftsData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.TREASURE_HUNT://寻宝骑兵活动 23
|
||||
{
|
||||
let { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex } = await getTreasureHuntData(serverId);
|
||||
activityData = await getPlayerTreasureHuntData(activityId, serverId, roleId, huntRoundIndex, huntBeginTime, huntEndTime);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.POP_UP_SHOP://弹出商店 24
|
||||
{
|
||||
activityData = await getPlayerPopUpShopData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.VIP_RECHARGE_MONEY://vip累计充值活动 26
|
||||
@@ -91,6 +121,32 @@ export async function getActivity(serverId: number, roleId: string, activityId:
|
||||
activityData = await getPlayerVipRechargeMoneyData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.SEVEN_DAY://七天乐活动 27
|
||||
case ACTIVITY_TYPE.FOURTEEN_DAY://十四天乐活动 28
|
||||
case ACTIVITY_TYPE.COMMON_SEVEN_DAY://通用七天乐活动 29
|
||||
{
|
||||
activityData = await getPlayerSevenDaysData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_MEAL://每日领取免费午饭、晚饭活动 30
|
||||
{
|
||||
activityData = await getPlayerDailyMealData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_COIN://每日兑换铜币活动 31
|
||||
{
|
||||
activityData = await getPlayerDailyCoinData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_GK://每日关卡(每日开启一关) 32
|
||||
{
|
||||
activityData = await getPlayerDailyGKData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
console.log('未知活动类型.........')
|
||||
break;
|
||||
}
|
||||
}
|
||||
return activityData;
|
||||
}
|
||||
|
||||
72
game-server/app/services/dailyGKService.ts
Normal file
72
game-server/app/services/dailyGKService.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
import { ACTIVITY_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityDailyGKModel, ActivityDailyGKModelType } from '../db/ActivityDailyGK';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { DailyGKData, DailyGKItem } from '../domain/activityField/dailyGKField';
|
||||
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function dailyGKActivity(serverId: number, roleId: string) {
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.DAILY_GK, new Date());
|
||||
if (activityDataArray.length === 0) {
|
||||
return null;
|
||||
}
|
||||
let activityData: ActivityModelType = activityDataArray[0];
|
||||
let playerRecord: ActivityDailyGKModelType = await ActivityDailyGKModel.findData(serverId, activityData.activityId, roleId);
|
||||
let playerData = new DailyGKData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
return playerData;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 玩家玩家活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getPlayerDailyGKData(activityId: number, serverId: number, roleId: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let playerRecord: ActivityDailyGKModelType = await ActivityDailyGKModel.findData(serverId, activityId, roleId);
|
||||
|
||||
let playerData = new DailyGKData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
|
||||
return playerData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 挑战每日关卡成功
|
||||
*
|
||||
* @param {number} activityId 活动id
|
||||
* @param {number} gk 关卡id
|
||||
*
|
||||
*/
|
||||
export async function challengeDailyGK(serverId: number, roleId: string, activityId: number, gk: number) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
|
||||
let playerData = new DailyGKData(activityData);
|
||||
let item = playerData.findItemByGK(gk);
|
||||
if (item) {
|
||||
let dayIndex = item.dayIndex;
|
||||
await ActivityDailyGKModel.addRecord(serverId, activityId, roleId, dayIndex);
|
||||
} else {
|
||||
console.log('没有找到对应关卡活动数据', activityId, gk)
|
||||
}
|
||||
|
||||
return playerData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ export async function dailyRMBGiftsActivity(serverId: number, roleId: string) {
|
||||
return null;
|
||||
}
|
||||
let activityData = activityArray[0];
|
||||
let playerData = await getPlayerDailyGiftsData(activityData.activityId, serverId, roleId);
|
||||
let playerData = await getPlayerDailyRMBGiftsData(activityData.activityId, serverId, roleId);
|
||||
return playerData
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ export async function dailyRMBGiftsActivity(serverId: number, roleId: string) {
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getPlayerDailyGiftsData(activityId: number, serverId: number, roleId: string) {
|
||||
export async function getPlayerDailyRMBGiftsData(activityId: number, serverId: number, roleId: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
|
||||
let playerData = new DailyRMBGiftsData(activityData);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/**
|
||||
* 活动类型
|
||||
* 合集类型
|
||||
*/
|
||||
|
||||
export enum ACTIVITY_GROUP_TYPE {
|
||||
@@ -44,6 +44,7 @@ export enum ACTIVITY_TYPE {
|
||||
COMMON_SEVEN_DAY = 29, // 通用七天乐活动
|
||||
DAILY_MEAL = 30, // 每日领取免费午饭、晚饭活动
|
||||
DAILY_COIN = 31, // 每日兑换铜钱
|
||||
DAILY_GK = 32, // 每日关卡(每日开启一关)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,6 +26,7 @@ export const WAR_TYPE = {
|
||||
BRANCH: 14, // 支线
|
||||
ACT_TREASURE_HUNT: 15, // 神州探秘
|
||||
ACT_SELF_SHOP: 16, // 糜家商队
|
||||
ACT_DAILY_GK: 17, // 每日关卡活动
|
||||
};
|
||||
|
||||
// 藏宝图掉落参数
|
||||
@@ -155,22 +156,22 @@ export const COM_BTL_CONST = {
|
||||
|
||||
// 寻宝等级区间
|
||||
export const COM_BTL_LV_RANGE = [
|
||||
{id: 1, minLv: 1, maxLv: 19},
|
||||
{id: 2, minLv: 20, maxLv: 39},
|
||||
{id: 3, minLv: 40, maxLv: 59},
|
||||
{id: 4, minLv: 60, maxLv: 79},
|
||||
{id: 5, minLv: 80, maxLv: 99},
|
||||
{id: 6, minLv: 100, maxLv: 100},
|
||||
{ id: 1, minLv: 1, maxLv: 19 },
|
||||
{ id: 2, minLv: 20, maxLv: 39 },
|
||||
{ id: 3, minLv: 40, maxLv: 59 },
|
||||
{ id: 4, minLv: 60, maxLv: 79 },
|
||||
{ id: 5, minLv: 80, maxLv: 99 },
|
||||
{ id: 6, minLv: 100, maxLv: 100 },
|
||||
];
|
||||
|
||||
// 机器人名字随机
|
||||
export const COM_BATTLE_ROBOT_ID_NAME = [
|
||||
{robotRoleId: 'cd9h0iy8', robotRoleName: '徐埋农'},
|
||||
{robotRoleId: 'rtdgr4oz', robotRoleName: '简普瞳'},
|
||||
{robotRoleId: 'rv96unin', robotRoleName: '邛瑛'},
|
||||
{robotRoleId: 'b33u625l', robotRoleName: '嵇晁伊'},
|
||||
{robotRoleId: 'l6wopj9p', robotRoleName: '颜校'},
|
||||
{robotRoleId: '6wdqcumj', robotRoleName: '吉辉娇'}
|
||||
{ robotRoleId: 'cd9h0iy8', robotRoleName: '徐埋农' },
|
||||
{ robotRoleId: 'rtdgr4oz', robotRoleName: '简普瞳' },
|
||||
{ robotRoleId: 'rv96unin', robotRoleName: '邛瑛' },
|
||||
{ robotRoleId: 'b33u625l', robotRoleName: '嵇晁伊' },
|
||||
{ robotRoleId: 'l6wopj9p', robotRoleName: '颜校' },
|
||||
{ robotRoleId: '6wdqcumj', robotRoleName: '吉辉娇' }
|
||||
];
|
||||
|
||||
export const ROBOT_NAME = [
|
||||
|
||||
41
shared/db/ActivityDailyGK.ts
Normal file
41
shared/db/ActivityDailyGK.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
/**
|
||||
* 活动系统 - 每日关卡活动
|
||||
*/
|
||||
@index({ roleId: 1 })
|
||||
|
||||
export default class Activity_Daily_GK extends BaseModel {
|
||||
@prop({ required: true })
|
||||
serverId: number; // 服id
|
||||
@prop({ required: true })
|
||||
activityId: number; // 活动Id
|
||||
@prop({ required: true })
|
||||
roleId: string; // 用户Id
|
||||
@prop({ required: true })
|
||||
days: number[]; // 第几天的通关
|
||||
|
||||
//通关记录
|
||||
public static async addRecord(serverId: number, activityId: number, roleId: string, day: number) {
|
||||
let result: ActivityDailyGKModelType = await ActivityDailyGKModel.findOneAndUpdate({ serverId, roleId, activityId },
|
||||
{ $push: { days: day } }, { upsert: true, new: true }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动id查询活动数据
|
||||
public static async findData(serverId: number, activityId: number, roleId: string) {
|
||||
let result: ActivityDailyGKModelType = await ActivityDailyGKModel.findOne({ serverId, roleId, activityId }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//删除活动领取记录
|
||||
public static async deleteActivity(serverId: number, activityId: number, roleId: string) {
|
||||
await ActivityDailyGKModel.deleteMany({ serverId, roleId, activityId });
|
||||
}
|
||||
}
|
||||
|
||||
export const ActivityDailyGKModel = getModelForClass(Activity_Daily_GK);
|
||||
|
||||
export interface ActivityDailyGKModelType extends Pick<DocumentType<Activity_Daily_GK>, keyof Activity_Daily_GK> { }
|
||||
export type ActivityDailyGKModelTypeParam = Partial<ActivityDailyGKModelType>; // 将所有字段变成可选项
|
||||
61
shared/domain/activityField/dailyGKField.ts
Normal file
61
shared/domain/activityField/dailyGKField.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { ActivityModelType } from '../../db/Activity';
|
||||
import { ActivityDailyGKModelType } from '../../db/ActivityDailyGK';
|
||||
import { ActivityBase } from './activityField';
|
||||
|
||||
|
||||
// 每日配置数据
|
||||
export class DailyGKItem {
|
||||
dayIndex: number; // 第几天,从1开始
|
||||
gk: number; // 关卡
|
||||
name: string; // 名称
|
||||
reward: string; // 奖励,格式:1&3&1(类型&id&数量) 类型定义:1.英雄,2.物品
|
||||
isSuccess: boolean; //是否成功
|
||||
|
||||
constructor(data: any) {
|
||||
this.dayIndex = data.dayIndex;
|
||||
this.name = data.name;
|
||||
this.reward = data.reward;
|
||||
this.isSuccess = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 每日关卡活动数据
|
||||
export class DailyGKData extends ActivityBase {
|
||||
list: Array<DailyGKItem> = [];
|
||||
|
||||
public findItemByGK(gk: number) {
|
||||
let index = this.list.findIndex(obj => { return obj && obj.gk == gk })
|
||||
return (index != -1) ? this.list[index] : null;
|
||||
}
|
||||
|
||||
public findDailyGKItem(dayIndex: number) {
|
||||
let index = this.list.findIndex(obj => { return obj && obj.dayIndex == dayIndex })
|
||||
return (index != -1) ? this.list[index] : null;
|
||||
}
|
||||
|
||||
//解析玩家记录
|
||||
public setPlayerRecords(data: ActivityDailyGKModelType) {
|
||||
if (!data)
|
||||
return;
|
||||
let records = data.days ? data.days : [];
|
||||
for (let obj of this.list) {
|
||||
let index = records.findIndex(dayIndex => { return obj.dayIndex == dayIndex })
|
||||
if (index != -1) {
|
||||
obj.isSuccess = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public initData(data: string) {
|
||||
let arr = JSON.parse(data);
|
||||
for (let obj of arr) {
|
||||
this.list.push(new DailyGKItem(obj))
|
||||
}
|
||||
}
|
||||
|
||||
constructor(activityData: ActivityModelType) {
|
||||
super(activityData)
|
||||
this.initData(activityData.data)
|
||||
}
|
||||
}
|
||||
@@ -653,30 +653,32 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let huntEndTime = tempData.huntEndTime;
|
||||
let huntRoundIndex = tempData.huntRoundIndex;
|
||||
let activity = await ActivityModel.findActivity(tempData.huntActivityId);
|
||||
let playerData = new TreasureHuntData(activity);
|
||||
playerData.beginTime = moment(huntBeginTime).valueOf();
|
||||
playerData.endTime = moment(huntEndTime).valueOf();
|
||||
playerData.roundIndex = huntRoundIndex;
|
||||
let taskArray = playerData.tasks.findItemByTaskType(taskType);
|
||||
for (let task of taskArray) {
|
||||
let taskRecord: ActivityTreasureHuntTaskModelType = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex);
|
||||
if (!taskRecord || !taskRecord.isPush) {
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
let playerRecord = await ActivityTreasureHuntTaskModel.addTreasureHuntTaskCount(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex, addCount);
|
||||
//推送
|
||||
if (task.condition <= playerRecord.totalCount) {//已经完成
|
||||
playerRecord = await ActivityTreasureHuntTaskModel.pushMessage(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex);
|
||||
task.totalCount = playerRecord.totalCount;
|
||||
pushMessage = pushMessage.concat(Object.assign(task, { activityId: activity.activityId }));
|
||||
} else {//没有完成
|
||||
task.totalCount = playerRecord.totalCount;
|
||||
pushMessage = pushMessage.concat(Object.assign(task, { activityId: activity.activityId }));
|
||||
if (activity) {
|
||||
let playerData = new TreasureHuntData(activity);
|
||||
playerData.beginTime = moment(huntBeginTime).valueOf();
|
||||
playerData.endTime = moment(huntEndTime).valueOf();
|
||||
playerData.roundIndex = huntRoundIndex;
|
||||
let taskArray = playerData.tasks.findItemByTaskType(taskType);
|
||||
for (let task of taskArray) {
|
||||
let taskRecord: ActivityTreasureHuntTaskModelType = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex);
|
||||
if (!taskRecord || !taskRecord.isPush) {
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
let playerRecord = await ActivityTreasureHuntTaskModel.addTreasureHuntTaskCount(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex, addCount);
|
||||
//推送
|
||||
if (task.condition <= playerRecord.totalCount) {//已经完成
|
||||
playerRecord = await ActivityTreasureHuntTaskModel.pushMessage(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex);
|
||||
task.totalCount = playerRecord.totalCount;
|
||||
pushMessage = pushMessage.concat(Object.assign(task, { activityId: activity.activityId }));
|
||||
} else {//没有完成
|
||||
task.totalCount = playerRecord.totalCount;
|
||||
pushMessage = pushMessage.concat(Object.assign(task, { activityId: activity.activityId }));
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
await ActivityTreasureHuntTaskModel.addTreasureHuntTaskRecord(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex, JSON.stringify(record));
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
await ActivityTreasureHuntTaskModel.addTreasureHuntTaskRecord(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex, JSON.stringify(record));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user