活动:修改任务接口

This commit is contained in:
qiaoxin
2021-05-27 21:13:03 +08:00
parent 265bace67a
commit 8679ca946d
20 changed files with 190 additions and 63 deletions
+3 -4
View File
@@ -7,8 +7,7 @@ import { HERO_SYSTEM_TYPE, TASK_TYPE } from "../consts";
import { EquipType } from "../db/Equip";
import { calEquipSeids } from '../pubUtils/playerCe';
import { indexOf, findIndex } from 'underscore';
import { checkTask, checkTaskWithHero, checkTaskWithEquip } from './taskService';
import { accomplishTask } from '../pubUtils/taskUtil';
import { checkTask, checkTaskWithHero, checkTaskWithEquip, checkActivityTask } from './taskService';
/**
* 校验前端传入的消耗数量是否准确,并返回消耗的道具并加上特殊材料needConsumes
* @param consumes
@@ -129,8 +128,8 @@ export async function dressEquip(serverId: number, roleId: string, sid: string,
await checkTask(roleId, sid, funcs, TASK_TYPE.EQUIP_SUM, 1, true, {});
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)
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.EQUIP_QUALITY, 1, { quality: equip.quality })
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.EQUIP_SUM, 1)
return { seqId: equip.seqId, hid: hero.hid };
}
@@ -112,3 +112,26 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb
}
/**
* 购买高阶版
*
* @param {number} serverId 区Id
* @param {number} activityId 活动Id
* @param {string} roleId 角色Id
* @param {string} productID 商品ID
*
*/
export async function makeGrowthFund(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
activityId: number, productID: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
if (!activityData) {
return null;
}
let playerData = new GrowthFundData(activityData);
let pageData = playerData.findPageByProductID(productID);
let pageIndex = pageData.pageIndex;
await ActivityBuyRecordsModel.addRecord(activityId, roleId, activityData.type, pageIndex, true);
return Object.assign({}, { item: { pageIndex }, activityId: activityId })
}
+2 -3
View File
@@ -20,8 +20,7 @@ import { getMailContent } from '../services/mailService';
import { DATA_NAME } from '../consts/dataName';
import { addRoleToGuildChannel } from "./chatService";
import { Rank } from "./rankService";
import { checkTask } from "./taskService";
import { accomplishTask } from "../pubUtils/taskUtil";
import { checkActivityTask, checkTask } from "./taskService";
/**
* @description 检查该玩家是否有权限做操作
@@ -93,7 +92,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
}
//成长任务-加入军团
await accomplishTask(serverId, roleId, TASK_TYPE.GUILD_JOIN, 1);
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.GUILD_JOIN, 1);
session.set('guildCode', code);
session.push('guildCode', () => { });
@@ -8,8 +8,7 @@ import { FUNC_OPT_TYPE, TASK_TYPE } from '../consts';
import { BackendSession } from 'pinus';
import { REDIS_KEY } from '../consts';
import { Rank } from './rankService';
import { checkTask } from './taskService';
import { accomplishTask } from '../pubUtils/taskUtil';
import { checkActivityTask, checkTask } from './taskService';
export async function roleLevelup(roleId: string, kingExp: number, session: BackendSession) {
const serverId = session.get('serverId');
@@ -36,7 +35,7 @@ export async function roleLevelup(roleId: string, kingExp: number, session: Back
// 任务
await checkTask(roleId, session.get('sid'), session.get('funcs'), TASK_TYPE.ROLE_LV, newLv, false, {});
//成长任务
await accomplishTask(serverId, roleId, TASK_TYPE.ROLE_LV, newLv);
await checkActivityTask(serverId, session.get('sid'), session.get('funcs'), roleId, TASK_TYPE.ROLE_LV, newLv);
}
let actordata: { lv: number, exp: number, getExp: number, mostExp: number }[] = [];
+7 -3
View File
@@ -12,6 +12,7 @@ import { makePopUpShopReward } from './popUpShopService';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityFirstGiftModel } from '../db/ActivityFirstGift';
import { ServerlistModel } from '../db/Serverlist';
import { makeGrowthFund } from './growthFundService';
@@ -84,16 +85,19 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
rewardResult = await makePopUpShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP:
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP: //主线成长基金(高阶)
{
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP:
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP://镇念塔成长基金(高阶)
{
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP:
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP://精英成长基金(高阶)
{
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
break;
}
default:
+22 -2
View File
@@ -73,6 +73,26 @@ export async function pushTaskUpdate(roleId: string, sid: string, funcs: number[
}
}
export async function checkActivityTask(serverId: number, sid: string, funcs: number[], roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
let pushMessage = await taskUtil.accomplishTask(serverId, roleId, taskType, count, parma);
pushTaskUpdate(roleId, sid, funcs, pushMessage);
}
export async function pushActivityUpdate(roleId: string, sid: string, funcs: number[], pushMessage: any[]) {
if (pushMessage.length > 0) {
if (!sid || !funcs) {
let onlineUser = await getRoleOnlineInfo(roleId);
sid = onlineUser.sid;
funcs = onlineUser.funcs || [];
}
if (!!sid) {
let uids = [{ uid: roleId, sid }];
pinus.app.get('channelService').pushMessageByUids('onActivityUpdate', resResult(STATUS.SUCCESS, pushMessage), uids);
}
}
}
/**
* battle.normalBattleHandler.battleEnd 中会触发的任务,因为有点多提出来了
*/
@@ -88,7 +108,7 @@ export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_VESTIGE, battleId, heroes, 1, star);
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_EXPEDITION, battleId, heroes, 1, star);
//成长任务
await taskUtil.accomplishTask(serverId, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId })
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId })
}
@@ -248,7 +268,7 @@ export async function checkTaskConditionEquipSuitJewelStage(hero: HeroType) {
let jewelLevel = -1;//宝石阶数
for (let i = 0; i < hero.ePlace.length; i++) {
let equipObj = <EquipType>hero.ePlace[i].equip;
if(equipObj) {
if (equipObj) {
let equipObjInfo = getGoodById(equipObj.id);
if (equipObj.holes.length == equipObjInfo.hole && equipObjInfo.hole > 0) {
for (let j = 0; j < equipObj.holes.length; j++) {
+2 -2
View File
@@ -57,13 +57,13 @@ 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 records = await UserOrderModel.findSuccessOrderByProductID(productID, roleId, activityId);
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
let playerData = new YuanBaoShopData(activityData);
let item = playerData.findItem(productID);
let rewardParamArr: Array<RewardParam> = [];
if (records.length == 0) {//首充
if (records.length == 1) {//首充
rewardParamArr = rewardParamArr.concat(stringToRewardParam(item.baseReward));
rewardParamArr = rewardParamArr.concat(stringToRewardParam(item.firstReward));
} else {