diff --git a/game-server/app/servers/role/handler/rankHandler.ts b/game-server/app/servers/role/handler/rankHandler.ts index 3b7d576c7..018384624 100644 --- a/game-server/app/servers/role/handler/rankHandler.ts +++ b/game-server/app/servers/role/handler/rankHandler.ts @@ -1,6 +1,6 @@ import { Application, BackendSession, HandlerService, } from "pinus"; import { resResult } from "../../../pubUtils/util"; -import { STATUS, RANK_TYPE_TO_KEY, ROLE_SELECT, RANK_TYPE, HERO_SELECT, GUILD_SELECT } from "../../../consts"; +import { STATUS, RANK_TYPE_TO_KEY, ROLE_SELECT, RANK_TYPE, HERO_SELECT, GUILD_SELECT, RANK_FIRST_REWARD_STATUS } from "../../../consts"; import { RoleModel } from "../../../db/Role"; import { UserGuildModel } from "../../../db/UserGuild"; import { GuildModel } from "../../../db/Guild"; @@ -186,16 +186,14 @@ export class RoleHandler { role = await RoleModel.receiveRankReward(roleId, canReceiveId); if (canReceiveId.length <= 0) return resResult(STATUS.REWARD_CONDITION_NOT_REACH); - let received = role.rankReceived.filter(rewardId => { - let dic = gameData.generalRankReward.get(rewardId); - return dic && dic.rankId == type; - }); + let rewardStatus = canReceiveId.map(id => { + return { id, type, status: RANK_FIRST_REWARD_STATUS.RECEIVED } + }) let goods = await addItems(roleId, roleName, sid, rewards); return resResult(STATUS.SUCCESS, { - type: type, - received, + rewards: rewardStatus, goods }) } diff --git a/game-server/app/services/rankService.ts b/game-server/app/services/rankService.ts index e9c72eda6..95862e0e9 100644 --- a/game-server/app/services/rankService.ts +++ b/game-server/app/services/rankService.ts @@ -12,6 +12,7 @@ import { getWorldChannelSid } from "./chatChannelService"; import { pinus } from "pinus"; import { RankFirstModel, RankFirstType, RankFirstUpdateParam } from "../db/RankFirst"; import { getRandSingleEelm } from "../pubUtils/util"; +import { RANK_FIRST_REWARD_STATUS } from '../consts'; /** @@ -1064,10 +1065,10 @@ export async function getGeneralRank(role: RoleType & { rankReceived: number[] } } if(rankFirst) { - let status = rankReceived.includes(id)?2: 1; + let status = rankReceived.includes(id)?RANK_FIRST_REWARD_STATUS.RECEIVED: RANK_FIRST_REWARD_STATUS.CAN_RECEIVE; result.push({...rankFirst, status}); } else { - result.push({ id, type, status: 0 }); + result.push({ id, type, status: RANK_FIRST_REWARD_STATUS.WAITING }); } } return result; diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index bcd87a4e7..5c2a79da4 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -716,4 +716,10 @@ export enum ROBOT_SYS_TYPE { export enum KING_EXP_RATIO_TYPE { TASK = 1, BATTLE = 2, +} + +export enum RANK_FIRST_REWARD_STATUS { + WAITING = 0, // 不可领取 + CAN_RECEIVE = 1, // 可领取 + RECEIVED = 2, // 已领取 } \ No newline at end of file