🐞 fix(节日活动): 龙舟前置节点判断
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { Application, BackendSession, HandlerService, } from 'pinus';
|
import { Application, BackendSession, HandlerService, } from 'pinus';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { parseNumberList, resResult } from '../../../pubUtils/util';
|
||||||
import { ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
import { ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
||||||
import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../services/activity/giftPackageService';
|
import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../services/activity/giftPackageService';
|
||||||
import { getPlayerDragonBoatData, getPlayerDragonBoatDataShow } from '../../../services/activity/dragonBoatService';
|
import { getPlayerDragonBoatData, getPlayerDragonBoatDataShow } from '../../../services/activity/dragonBoatService';
|
||||||
@@ -54,9 +54,13 @@ export class DragonBoatHandler {
|
|||||||
let route = playerData.findRoute(id);
|
let route = playerData.findRoute(id);
|
||||||
if(!route) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_ROUTE_NOTFOUND);
|
if(!route) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_ROUTE_NOTFOUND);
|
||||||
if(route.hasPass) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_ROUTE_HAS_PASS);
|
if(route.hasPass) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_ROUTE_HAS_PASS);
|
||||||
if(route.preId) {
|
if(route.preId && route.preId != '&') {
|
||||||
let preRoute = playerData.findRoute(route.preId);
|
let preIds = parseNumberList(route.preId);
|
||||||
if(!preRoute || !preRoute.hasPass) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_PRE_NOT_PASS);
|
let hasPass = preIds.find(preId => {
|
||||||
|
let preRoute = playerData.findRoute(preId);
|
||||||
|
return preRoute && preRoute.hasPass;
|
||||||
|
});
|
||||||
|
if(!hasPass) return resResult(STATUS.ACTIVITY_DRAGON_BOAT_PRE_NOT_PASS);
|
||||||
}
|
}
|
||||||
let rewards = stringToRewardParam(route.reward);
|
let rewards = stringToRewardParam(route.reward);
|
||||||
let playerRecord = await ActivityDragonBoatModel.record(serverId, activityId, playerData.roundIndex, roleId, { todayIndex: playerData.todayIndex, id, time: new Date(), rewards })
|
let playerRecord = await ActivityDragonBoatModel.record(serverId, activityId, playerData.roundIndex, roleId, { todayIndex: playerData.todayIndex, id, time: new Date(), rewards })
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { ActivityBase } from './activityField';
|
|||||||
// 后台格式
|
// 后台格式
|
||||||
interface RouteInDb {
|
interface RouteInDb {
|
||||||
id: number; // 唯一id,对应 dic_zyz_duanwu_dragonBoat的id
|
id: number; // 唯一id,对应 dic_zyz_duanwu_dragonBoat的id
|
||||||
preId: number; // 前一个的节点,对应dic_zyz_duanwu_dragonBoat的id
|
preId: string; // 前一个的节点,对应dic_zyz_duanwu_dragonBoat的id
|
||||||
type: number; // 节点显示类型,1-普通奖励 2-高级奖励 3-漩涡
|
type: number; // 节点显示类型,1-普通奖励 2-高级奖励 3-漩涡
|
||||||
reward: string; // 到了这个节点可以获得的奖励,type&id&count
|
reward: string; // 到了这个节点可以获得的奖励,type&id&count
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ interface DragonBoatDataInDb {
|
|||||||
|
|
||||||
class RouteData {
|
class RouteData {
|
||||||
id: number; // 唯一id,对应 dic_zyz_duanwu_dragonBoat的id
|
id: number; // 唯一id,对应 dic_zyz_duanwu_dragonBoat的id
|
||||||
preId: number; // 前一个的节点,对应dic_zyz_duanwu_dragonBoat的id
|
preId: string; // 前一个的节点,对应dic_zyz_duanwu_dragonBoat的id
|
||||||
type: number; // 节点显示类型,1-普通奖励 2-高级奖励 3-漩涡
|
type: number; // 节点显示类型,1-普通奖励 2-高级奖励 3-漩涡
|
||||||
reward: string; // 到了这个节点可以获得的奖励,type&id&count
|
reward: string; // 到了这个节点可以获得的奖励,type&id&count
|
||||||
resultReward: {id: number, count: number}[];
|
resultReward: {id: number, count: number}[];
|
||||||
|
|||||||
Reference in New Issue
Block a user