资源:冲突提交
This commit is contained in:
@@ -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);
|
||||
@@ -58,7 +94,7 @@ export class ActivityHandler {
|
||||
let data = await signInVIPActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SIGN_IN,
|
||||
type: ACTIVITY_TYPE.SIGN_IN_VIP,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
|
||||
@@ -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(activityId);
|
||||
if (!activityData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
let gachaData = new GachaData(activityData);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -99,7 +102,12 @@ export class LimitPackageHandler {
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
|
||||
|
||||
await ActivityShopModel.addRecord(activityId, roleId, roundIndex, id);
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {}));
|
||||
|
||||
item.buyCount += 1;
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
param: { activityId, roundIndex, id },
|
||||
item: item
|
||||
}));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,7 +45,9 @@ export class MonthlyTicketHandler {
|
||||
|
||||
let result = await getPlayerMonthlyTicketDayReward(roleId, roleName, sid, serverId, funcs, activityId)
|
||||
if (result) {
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
param: { activityId },
|
||||
}));
|
||||
}
|
||||
return resResult(STATUS.NO_MOTHLY_TICKET_REWARD);
|
||||
}
|
||||
|
||||
@@ -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(activityId);
|
||||
if (!activityData) {
|
||||
return resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
|
||||
@@ -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(activityId);
|
||||
let playerData = new SelfServiceShopData(activityData);
|
||||
let item = playerData.getItem(index);
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { ActivityThirtyDaysModel } from '../../../db/ActivityThirtyDays';
|
||||
import { ActivityThirtyDaysPointRewardModel } from '../../../db/ActivityThirtyDaysPointReward';
|
||||
import moment = require('moment');
|
||||
import { ActivityModel, ActivityModelType } from '../../../db/Activity';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new ThirtyDaysHandler(app);
|
||||
@@ -54,8 +55,8 @@ export class ThirtyDaysHandler {
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let todayIndex = await playerThirtyDaysActivityDays(roleId);//玩家当前的天数
|
||||
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, ACTIVITY_TYPE.THIRTY_DAYS, 1)
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.THIRTY_DAYS, 1)
|
||||
|
||||
let activityDays = 0;
|
||||
for (let i = 0; i < activityArray.length; i++) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay';
|
||||
import { makeOrder } from '../../../services/orderService';
|
||||
import { addRechargeMoney } from '../../../services/rechargeMoneyService';
|
||||
import { ActivityModel, ActivityModelType } from '../../../db/Activity';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new orderHandler(app);
|
||||
@@ -175,7 +176,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)
|
||||
@@ -223,7 +224,8 @@ export class orderHandler {
|
||||
let orderID = '';//平台订单号
|
||||
let sdkOrderInfo = null;//客户端需要的平台订单信息
|
||||
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, productType, -1);
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, productType, -1);
|
||||
if (activityArray.length === 0) {
|
||||
return resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
@@ -235,7 +237,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}`)
|
||||
|
||||
@@ -1,8 +1,32 @@
|
||||
import { ACTIVITY_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityDailyChallengesModel, ActivityDailyChallengesModelType } from '../db/ActivityDailyChallenges';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
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 { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, 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 +36,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(activityId);
|
||||
let playerRecords: ActivityDailyChallengesModelType[] = await ActivityDailyChallengesModel.findData(serverId, activityId, roleId);
|
||||
|
||||
let playerData = new DailyChallengesData(activityData);
|
||||
|
||||
@@ -1,8 +1,33 @@
|
||||
import { ACTIVITY_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityDailyGiftsModel, ActivityDailyGiftsModelType } from '../db/ActivityDailyGifts';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
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 { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, 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 +37,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(activityId);
|
||||
let playerRecords: ActivityDailyGiftsModelType[] = await ActivityDailyGiftsModel.findData(serverId, activityId, roleId);
|
||||
|
||||
let playerData = new DailyGiftsData(activityData);
|
||||
|
||||
@@ -7,6 +7,7 @@ import moment = require('moment');
|
||||
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
@@ -17,8 +18,9 @@ import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
*
|
||||
*/
|
||||
|
||||
export async function thirtyDaysActivity(type: number, serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, type, 1)
|
||||
export async function dailyGiftsActivity(type: number, serverId: number, roleId: string) {
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, type, 1)
|
||||
|
||||
let allPlayerActivity = [];
|
||||
for (let i = 0; i < activityArray.length; i++) {
|
||||
@@ -39,7 +41,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(activityId);
|
||||
|
||||
let playerData = new DailyRMBGiftsData(activityData);
|
||||
let productID = playerData.productID;
|
||||
@@ -68,7 +70,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(activityId);
|
||||
let playerData = new DailyRMBGiftsData(activityData);
|
||||
let bigGiftProductID = playerData.productID;
|
||||
if (bigGiftProductID == productID) {//一次性购买7天礼包
|
||||
|
||||
@@ -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 };
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityFirstGiftModel, ActivityFirstGiftModelType } from '../db/ActivityFirstGift';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { FirstGiftData } from '../domain/activityField/firstGiftField';
|
||||
|
||||
/**
|
||||
@@ -13,7 +14,8 @@ import { FirstGiftData } from '../domain/activityField/firstGiftField';
|
||||
*/
|
||||
|
||||
export async function firstGiftActivity(serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, ACTIVITY_TYPE.FIRST_GIFT, 1)
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.FIRST_GIFT, 1)
|
||||
|
||||
if (activityArray.length == 0) {
|
||||
return null;
|
||||
@@ -38,7 +40,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(activityId);
|
||||
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityId, roleId);
|
||||
|
||||
let playerData = new FirstGiftData(activityData);
|
||||
|
||||
@@ -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(activityId);
|
||||
if (!activityData) return false;
|
||||
|
||||
let gachaData = new GachaData(activityData);
|
||||
|
||||
@@ -4,6 +4,7 @@ import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/Acti
|
||||
import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords';
|
||||
import { RoleModel } from '../db/Role';
|
||||
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, // 精英成长基金(高阶)
|
||||
*/
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
@@ -43,7 +45,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(activityId);
|
||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activityId, roleId);
|
||||
|
||||
let playerData = new GrowthFundData(activityData);
|
||||
@@ -77,7 +79,7 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb
|
||||
let { towerLv } = await RoleModel.findByRoleId(roleId);
|
||||
for (let item of playerData.list) {
|
||||
if (item.taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||
if (towerLv < item.taskParamArray[0]) {
|
||||
if (towerLv >= item.taskParamArray[0]) {
|
||||
item.isComplete = true;
|
||||
}
|
||||
}
|
||||
@@ -90,7 +92,7 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb
|
||||
let { mainEliteWarId } = await RoleModel.findByRoleId(roleId);
|
||||
for (let item of playerData.list) {
|
||||
if (item.taskType == TASK_TYPE.BATTLE_MAIN_ELITE) {
|
||||
if (mainEliteWarId <= item.taskParamArray[0]) {
|
||||
if (mainEliteWarId >= item.taskParamArray[0]) {
|
||||
item.isComplete = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { ACTIVITY_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityGrowthModel, ActivityGrowthModelType } from '../db/ActivityGrowth';
|
||||
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../db/ActivityGrowthPoint';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { GrowthData, GrowthItem } from '../domain/activityField/growthField';
|
||||
|
||||
/**
|
||||
@@ -12,9 +13,20 @@ 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 { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, 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 +38,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(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;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
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) {
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
@@ -34,7 +36,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(activityId);
|
||||
let playerData = new LimitShopData(activityData);
|
||||
|
||||
let playerRecord: ActivityShopModelType = await ActivityShopModel.findData(activityId, roleId, playerData.roundIndex);
|
||||
@@ -53,7 +55,8 @@ export async function getPlayerLimitPackageData(activityId: number, serverId: nu
|
||||
*/
|
||||
|
||||
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) => {
|
||||
return b.activityId - a.activityId
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { MonthlyTicketData } from '../domain/activityField/monthlyTicketField';
|
||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
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) {
|
||||
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) => {
|
||||
return b.activityId - a.activityId
|
||||
});
|
||||
@@ -37,7 +39,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(activityId);
|
||||
let playerRecord: ActivityMonthlyTicketModelType = await ActivityMonthlyTicketModel.findMonthlyTicket(serverId, roleId, activityId);
|
||||
let playerData = new MonthlyTicketData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
@@ -54,7 +56,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(activityId);
|
||||
let playerRecord: ActivityMonthlyTicketModelType = await ActivityMonthlyTicketModel.findMonthlyTicket(serverId, roleId, activityId);
|
||||
if (!playerRecord) {//没有购买过
|
||||
return null;
|
||||
@@ -84,7 +86,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(activityId);
|
||||
let playerData = new MonthlyTicketData(activityData);
|
||||
|
||||
let endTime = moment(new Date()).startOf('d').add(playerData.days, 'day').toDate();
|
||||
|
||||
@@ -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';
|
||||
@@ -11,6 +11,7 @@ import { makeDailyRMBGiftsReward } from './dailyRMBGiftsService';
|
||||
import { makePopUpShopReward } from './popUpShopService';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
|
||||
|
||||
|
||||
@@ -20,14 +21,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) {
|
||||
@@ -43,7 +42,8 @@ export async function makeOrder(localOrderID: string, sid: string) {
|
||||
|
||||
//首冲礼包
|
||||
{
|
||||
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) {
|
||||
await ActivityFirstGiftModel.begin(obj.activityId, roleId);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import { PopUpShopData, } from '../domain/activityField/popUpShopField';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
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) {
|
||||
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) => {
|
||||
return b.activityId - a.activityId
|
||||
});
|
||||
@@ -36,7 +38,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(activityId);
|
||||
let playerRecords: ActivityPopUpShopModelType[] = await ActivityPopUpShopModel.findAllOpenData(serverId, activityId, roleId);
|
||||
|
||||
let allPlayerShop = [];
|
||||
@@ -65,7 +67,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(activityId);
|
||||
if (!activityData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import { RechargeMoneyData, RechargeMoneyItem } from '../domain/activityField/re
|
||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
|
||||
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) {
|
||||
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) => {
|
||||
return b.activityId - a.activityId
|
||||
});
|
||||
@@ -38,7 +40,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(activityId);
|
||||
let playerRecord: ActivityRechargeMoneyModelType[] = await ActivityRechargeMoneyModel.findData(serverId, roleId);
|
||||
|
||||
let playerData = new RechargeMoneyData(activityData);
|
||||
|
||||
@@ -2,6 +2,7 @@ import { ACTIVITY_RESOURCES_TYPE, ACTIVITY_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivitySelfServiceGoodsModel, ActivitySelfServiceGoodsModelType } from '../db/ActivitySelfServiceGoods';
|
||||
import { ActivitySelfServiceShopModel, ActivitySelfServiceShopModelType } from '../db/ActivitySelfServiceShop';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { SelfServiceShopData, SelfServiceShopItem } from '../domain/activityField/selfServiceShopField';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
@@ -16,7 +17,8 @@ import { addReward, getSelectedReward } from './giftPackageService';
|
||||
*
|
||||
*/
|
||||
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) => {
|
||||
return b.activityId - a.activityId
|
||||
});
|
||||
@@ -37,7 +39,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(activityId);
|
||||
let playerData = new SelfServiceShopData(activityData);
|
||||
|
||||
let playerRecords: ActivitySelfServiceShopModelType[] = await ActivitySelfServiceShopModel.findDataByPriceType(serverId, activityId, roleId, playerData.roundIndex, ACTIVITY_RESOURCES_TYPE.RMB);
|
||||
|
||||
@@ -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 { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
||||
|
||||
/**
|
||||
@@ -19,7 +20,8 @@ export async function signInActivity(serverId: number, roleId: string) {
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
@@ -45,7 +47,8 @@ export async function signInVIPActivity(serverId: number, roleId: string) {
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
@@ -65,7 +68,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(activityId);
|
||||
let playerData = new SignInData(activityData);
|
||||
let playerRecords: ActivitySignInModelType[] = await ActivitySignInModel.findData(activityId, roleId, playerData.roundIndex);
|
||||
|
||||
@@ -86,7 +89,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(activityId);
|
||||
let playerData = new SignInData(activityData);
|
||||
|
||||
await ActivitySignInModel.buyVIP(activityId, roleId, playerData.roundIndex);
|
||||
|
||||
@@ -7,6 +7,7 @@ import { ActivityThirtyDaysPointRewardModel, ActivityThirtyDaysPointRewardModelT
|
||||
import Role, { RoleModel } from '../db/Role';
|
||||
import moment = require('moment');
|
||||
import { deltaDays } from '../pubUtils/util';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
@@ -18,7 +19,8 @@ import { deltaDays } from '../pubUtils/util';
|
||||
*/
|
||||
|
||||
export async function thirtyDaysActivity(type: number, serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, type, 1)
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, type, 1)
|
||||
|
||||
let allPlayerActivity = [];
|
||||
for (let i = 0; i < activityArray.length; i++) {
|
||||
@@ -39,7 +41,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(activityId);
|
||||
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activityId, roleId);
|
||||
let playerPointRecords: ActivityThirtyDaysPointRewardModelType[] = await ActivityThirtyDaysPointRewardModel.findData(activityId, roleId);
|
||||
|
||||
@@ -58,7 +60,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(activityId);
|
||||
let playerRecords: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.findData(serverId, activityId, roleId);
|
||||
let playerPointRecords: ActivityThirtyDaysPointRewardModelType[] = await ActivityThirtyDaysPointRewardModel.findData(activityId, roleId);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import moment = require('moment');
|
||||
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityTreasureHuntShopModel, ActivityTreasureHuntShopModelType } from '../db/ActivityTreasureHuntShop';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { ServerTempModel, ServerTempModelType } from '../db/ServerTemp';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { TreasureHuntData } from '../domain/activityField/treasureHuntField';
|
||||
@@ -35,7 +36,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(activityId);
|
||||
|
||||
let playerData = new TreasureHuntData(activityData);
|
||||
playerData.beginTime = moment(huntBeginTime).valueOf();
|
||||
@@ -49,7 +50,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(activityId);
|
||||
|
||||
let playerData = new TreasureHuntData(activityData);
|
||||
playerData.beginTime = moment(huntBeginTime).valueOf();
|
||||
@@ -74,7 +75,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(huntActivityId);
|
||||
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
|
||||
}
|
||||
if (now > tempData.huntEndTime) {//活动过期
|
||||
@@ -83,11 +84,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(huntActivityId);
|
||||
return { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData }
|
||||
}
|
||||
if (!activityData) {
|
||||
activityData = await ActivityModel.findActivity(serverId, tempData.huntActivityId, true);
|
||||
activityData = await ActivityModel.findActivity(tempData.huntActivityId);
|
||||
}
|
||||
return {
|
||||
huntActivityId: tempData.huntActivityId,
|
||||
@@ -99,10 +100,11 @@ export async function getTreasureHuntData(serverId: number) {
|
||||
}
|
||||
|
||||
async function getNewActivityData(serverId: number) {
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
||||
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
||||
let huntRoundIndex: number = 0; // 寻宝骑兵-周期数
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
||||
let treasureHuntDataArray: TreasureHuntData[] = [];
|
||||
for (let obj of activityArray) {
|
||||
treasureHuntDataArray.push(new TreasureHuntData(obj));
|
||||
@@ -130,10 +132,11 @@ async function getNewActivityData(serverId: number) {
|
||||
}
|
||||
|
||||
async function getNextActivityData(serverId: number, oldHuntActivityId: number, oldHuntEndTime: Date, oldHuntRoundIndex: number) {
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let huntActivityId: number = 0; // 寻宝骑兵-活动Id
|
||||
let huntEndTime: Date = null; // 寻宝骑兵-结束时间
|
||||
let huntRoundIndex: number = oldHuntRoundIndex; // 寻宝骑兵-周期数
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.TREASURE_HUNT, 1)//activityId从小到大排序
|
||||
let treasureHuntDataArray: TreasureHuntData[] = [];
|
||||
for (let obj of activityArray) {
|
||||
treasureHuntDataArray.push(new TreasureHuntData(obj));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
|
||||
import { RewardParam } from '../domain/activityField/rewardField';
|
||||
import { YuanBaoShopData, YuanBaoShopItem } from '../domain/activityField/yuanBaoShopField';
|
||||
@@ -15,7 +16,8 @@ import { addReward, stringToRewardParam } from './giftPackageService';
|
||||
*/
|
||||
|
||||
export async function yuanbaoActivity(serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(serverId, ACTIVITY_TYPE.YUAN_BAO_SHOP, -1)
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, ACTIVITY_TYPE.YUAN_BAO_SHOP, -1)
|
||||
if (activityArray.length == 0) {
|
||||
return null;
|
||||
}
|
||||
@@ -33,7 +35,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(activityId);
|
||||
let playerRecord: UserOrderModelType[] = await UserOrderModel.findOrderByActivityID(activityId, roleId);
|
||||
|
||||
let playerData = new YuanBaoShopData(activityData);
|
||||
@@ -54,7 +56,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(activityId);
|
||||
let playerData = new YuanBaoShopData(activityData);
|
||||
let item = playerData.findItem(productID);
|
||||
|
||||
|
||||
@@ -13,4 +13,10 @@ export default class GameController extends Controller {
|
||||
ctx.body = await ctx.service.game.getServerListByEnv();
|
||||
return
|
||||
}
|
||||
|
||||
public async getDicHero() {
|
||||
const { ctx } = this;
|
||||
ctx.body = await ctx.service.game.getDicHero();
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ export default (app: Application) => {
|
||||
|
||||
router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv);
|
||||
router.post('/api/game/getserverlistbyenv', controller.game.getServerListByEnv);
|
||||
router.post('/api/game/getdichero', controller.game.getDicHero);
|
||||
|
||||
router.post('/api/activity/getactivitylist', controller.activity.getActivityList);
|
||||
router.post('/api/activity/updateactivity', controller.activity.updateActivity);
|
||||
|
||||
@@ -2,6 +2,8 @@ import { Service } from 'egg';
|
||||
import { STATUS } from '@consts';
|
||||
import { GameModel } from '@db/Game';
|
||||
import { ServerlistModel } from '@db/Serverlist';
|
||||
import { gameData } from '@pubUtils/data';
|
||||
import { DicHero } from '@pubUtils/dictionary/DicHero';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -37,4 +39,16 @@ export default class Game extends Service {
|
||||
});
|
||||
}
|
||||
|
||||
public async getDicHero() {
|
||||
let list: DicHero[] = [];
|
||||
for(let [heroId, hero] of gameData.hero) {
|
||||
if(heroId <= 300) {
|
||||
list.push(hero)
|
||||
}
|
||||
}
|
||||
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -270,6 +270,7 @@ export default class GMUsers extends Service {
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { uids });
|
||||
} catch(e) {
|
||||
console.error(e.stack)
|
||||
return ctx.service.utils.resResult(STATUS.GM_CREATE_ERROR, null, e.stack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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点结束
|
||||
@@ -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: '未找到该接口' },
|
||||
|
||||
@@ -10,7 +10,7 @@ import { COUNTER } from '../consts';
|
||||
|
||||
export default class Activity extends BaseModel {
|
||||
@prop({ required: true })
|
||||
serverId: number; // 服Id
|
||||
groupId: number; // 组Id
|
||||
@prop({ required: true })
|
||||
activityId: number; // 活动Id
|
||||
@prop({ required: true })
|
||||
@@ -23,25 +23,27 @@ 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(activityGroupId: number[], type: number, date: Date) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find(
|
||||
{ groupId: { $in: activityGroupId }, type, beginTime: { $lte: date }, endTime: { $gte: date } }
|
||||
).sort({ activityId: -1 }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动类型查询活动数据
|
||||
public static async findActivityByType(serverId: number, type: number, sort: number) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find({ serverId, type }).sort({ activityId: sort }).lean(true);
|
||||
public static async findActivityByType(activityGroupId: number[], type: number, sort: number) {
|
||||
let result: ActivityModelType[] = await ActivityModel.find({ groupId: { $in: activityGroupId }, type }).sort({ activityId: sort }).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
//根据活动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(activityId: number) {
|
||||
let result: ActivityModelType = await ActivityModel.findOne({ 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 +58,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;
|
||||
|
||||
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>; // 将所有字段变成可选项
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ export default class Activity_Growth_Point extends BaseModel {
|
||||
|
||||
//当日奖章领取记录
|
||||
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);
|
||||
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) {
|
||||
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId, id });
|
||||
public static async deleteActivity(serverId: number, activityId: number, roleId: string) {
|
||||
await ActivityGrowthPointModel.deleteMany({ serverId, roleId, activityId });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { index, getModelForClass, prop, DocumentType, modelOptions } from '@type
|
||||
* 游戏字段接口
|
||||
*/
|
||||
@index({ id: 1 })
|
||||
@modelOptions({schemaOptions: {id: false}})
|
||||
@modelOptions({ schemaOptions: { id: false } })
|
||||
export default class Serverlist extends BaseModel {
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
@@ -33,10 +33,13 @@ export default class Serverlist extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
serverStatus: number; // 服务器状态
|
||||
|
||||
|
||||
@prop({ required: true })
|
||||
activityGroupId: number[]; // 活动组
|
||||
|
||||
public get status() {
|
||||
let now = new Date();
|
||||
if( now > this.openTime) {
|
||||
if (now > this.openTime) {
|
||||
return this.serverStatus;
|
||||
} else {
|
||||
return 3; // 未开服
|
||||
@@ -61,19 +64,19 @@ export default class Serverlist extends BaseModel {
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public static async newServer(serverId: number, serverType: string, params: ServerlistUpdate) {
|
||||
const doc = new ServerlistModel();
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -85,7 +88,7 @@ export default class Serverlist extends BaseModel {
|
||||
|
||||
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;
|
||||
};
|
||||
export type ServerlistUpdate = Partial<ServerlistType>; // 将所有字段变成可选项
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import { TASK_TYPE, ACTIVITY_RESOURCES_TYPE } from '../../consts';
|
||||
import { ActivityModelType } from '../../db/Activity';
|
||||
import { ActivityDailyChallengesModelType } from '../../db/ActivityDailyChallenges';
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
import { parseGoodStrWithType, parseHeroStrWithType, splitString } from '../../pubUtils/util';
|
||||
import { parseGoodStrWithType, parseHeroStrWithType } from '../../pubUtils/util';
|
||||
import { CreateHeroParam } from '../roleField/hero';
|
||||
import { ActivityBase } from './activityField';
|
||||
|
||||
|
||||
@@ -2,8 +2,9 @@ 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 { parseGoodStrWithType, parseHeroStrWithType } from '../../pubUtils/util';
|
||||
import { CreateHeroParam } from '../roleField/hero';
|
||||
import { ActivityBase } from './activityField';
|
||||
|
||||
@@ -145,6 +146,7 @@ export class GrowthData extends ActivityBase {
|
||||
|
||||
//第几天的奖章兑换
|
||||
public findPointItem(id: number) {
|
||||
console.log('ddddddddddd', JSON.stringify(this.pointRewardList), id)
|
||||
let index = this.pointRewardList.findIndex(obj => { return obj && obj.id === id })
|
||||
return (index != -1) ? this.pointRewardList[index] : null;
|
||||
}
|
||||
@@ -174,13 +176,18 @@ 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;
|
||||
}
|
||||
if (obj.taskType === TASK_TYPE.HERO_NUM) {
|
||||
obj.totalCount = heroNum;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ export class GrowthFundItem {
|
||||
taskType: number; // 任务类型 dic_zyz_taskType.json
|
||||
taskParam: string; //任务数据 dic_zyz_taskType.json
|
||||
taskParamArray: Array<number>; //任务数据 dic_zyz_taskType.json
|
||||
condition: number; //0
|
||||
reward: string; // 任务奖励,格式:1&3&1(类型&id&数量) 类型定义:1.英雄,2.物品
|
||||
|
||||
|
||||
@@ -30,6 +31,7 @@ export class GrowthFundItem {
|
||||
this.taskType = data.taskType;
|
||||
this.taskParam = data.taskParam;
|
||||
this.reward = data.reward;
|
||||
this.condition = data.condition;
|
||||
this.isComplete = false;
|
||||
this.isReceive = false;
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import { ActivityGrowthModel } from '../db/ActivityGrowth';
|
||||
import { ActivityDailyChallengesModel } from '../db/ActivityDailyChallenges';
|
||||
import { ThirtyDaysData } from '../domain/activityField/thirtyDaysField';
|
||||
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) {
|
||||
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) {
|
||||
let growthActivity = new GrowthData(activity);
|
||||
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);
|
||||
if (addCount) {
|
||||
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 {
|
||||
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) {
|
||||
let growthActivity = new DailyChallengesData(activity);
|
||||
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);
|
||||
if (addCount) {
|
||||
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 {
|
||||
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
|
||||
|
||||
) {
|
||||
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) {
|
||||
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);
|
||||
let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType);
|
||||
for (let task of taskArray) {
|
||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -566,7 +568,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 +644,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;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user