军团活动:修复rpc调用以及其他问题
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Application, BackendSession, ChannelService } from "pinus";
|
||||
import { setMedianCe, getMedianCe, getGuildActivityStatus, getRecordScore, getGuildActivityObj, getGuildActivityRank } from "../../../services/guildActivityService";
|
||||
import { Application, BackendSession, ChannelService, pinus } from "pinus";
|
||||
import { setMedianCe, getMedianCe, getGuildActivityStatus, getRecordScore, getGuildActivityObj, getGuildActivityRank, sendSingleGuildGateActEndMsg, sendGuildActEndMsg } from "../../../services/guildActivityService";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { STATUS, GUILD_ACTIVITY_TYPE, GUILD_POINT_WAYS, ENEMIES_TYPE, GET_POINT_WAYS } from "../../../consts";
|
||||
import { GameModel } from "../../../db/Game";
|
||||
@@ -14,6 +14,8 @@ import { setRank, getGuildKeyName, getRankScore, getRank, getUnionRank } from ".
|
||||
import { REDIS_KEY } from "../../../consts";
|
||||
import { addActive } from "../../../services/guildService";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { getGuildChannelSid } from "../../../services/chatService";
|
||||
import { guildActivityStart } from "../../../services/timeTaskService";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GateActivityHandler(app);
|
||||
@@ -42,7 +44,7 @@ export class GateActivityHandler {
|
||||
if(!guildActivityRec) return resResult(STATUS.INTERNAL_ERR);
|
||||
|
||||
let { code: sourceCode } = guildActivityRec;
|
||||
let myGuildActivityRec = await UserGuildActivityRecModel.getRecord(roleId, roleName, guildCode, serverId, sourceCode, [], this.aid);
|
||||
let myGuildActivityRec = await UserGuildActivityRecModel.getRecord(roleId, roleName, guildCode, serverId, sourceCode, this.aid);
|
||||
let { challengeCnt } = myGuildActivityRec;
|
||||
|
||||
let ranks = await getGuildActivityRank(guildCode, serverId, roleId, roleName);
|
||||
@@ -64,8 +66,9 @@ export class GateActivityHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const guildCode = session.get('guildCode');
|
||||
if(!guildCode) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
|
||||
let obj = getGuildActivityObj(this.aid);
|
||||
|
||||
let gateHp = getGuildActivityObj(this.aid).getGateHpAndInc(guildCode);
|
||||
let gateHp = obj.getGateHpAndInc(guildCode);
|
||||
if(gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO);
|
||||
|
||||
let statusResult = getGuildActivityStatus(this.aid);
|
||||
@@ -77,11 +80,15 @@ export class GateActivityHandler {
|
||||
if(!guildActivityRec) return resResult(STATUS.INTERNAL_ERR);
|
||||
|
||||
let { code: sourceCode } = guildActivityRec;
|
||||
let myGuildActivityRec = await UserGuildActivityRecModel.getRecord(roleId, roleName, guildCode, serverId, sourceCode, heroes, this.aid);
|
||||
let myGuildActivityRec = await UserGuildActivityRecModel.getRecord(roleId, roleName, guildCode, serverId, sourceCode, this.aid);
|
||||
if(myGuildActivityRec.challengeCnt > 0) {
|
||||
return resResult(STATUS.CHALLENGE_CNT_NOT_ENOUGH);
|
||||
}
|
||||
await UserGuildActivityRecModel.incChallengeCnt(myGuildActivityRec.code, heroes);
|
||||
let { code, challengeCnt } = myGuildActivityRec;
|
||||
|
||||
// 更新公会参与的玩家
|
||||
getGuildActivityObj(this.aid).pushMembers(guildCode, serverId, roleId);
|
||||
obj.pushMembers(guildCode, serverId, roleId);
|
||||
|
||||
// 返回当前军团总军功
|
||||
let guildScore = await getRankScore(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
|
||||
@@ -108,21 +115,22 @@ export class GateActivityHandler {
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
let { code, record } = msg;
|
||||
let obj = getGuildActivityObj(this.aid);
|
||||
|
||||
let statusResult = getGuildActivityStatus(this.aid);
|
||||
if(!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
// TODO 测试完成后去掉这条判断
|
||||
// if(!statusResult.isOpen) return resResult(STATUS.GUILD_ACTIVITY_NOT_OPEN);
|
||||
|
||||
let gateHp = getGuildActivityObj(this.aid).getGateHpAndInc(guildCode);
|
||||
let gateHp = obj.getGateHpAndInc(guildCode);
|
||||
if(gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO);
|
||||
|
||||
// 计算record内得分
|
||||
let memberRecord = getGuildActivityObj(this.aid).getMemberRecord(code, roleId);
|
||||
let memberRecord = obj.getMemberRecord(code, roleId);
|
||||
let scoreResult = getRecordScore(this.aid, record, memberRecord);
|
||||
if(!scoreResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
let { score, newRecords, memberRecord: newMemberRecord } = scoreResult;
|
||||
getGuildActivityObj(this.aid).setMemberRecord(code, memberRecord);
|
||||
obj.setMemberRecord(code, newMemberRecord);
|
||||
|
||||
// 更新redis数据
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
@@ -154,7 +162,8 @@ export class GateActivityHandler {
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
let { code, damage } = msg;
|
||||
let gateHp = getGuildActivityObj(this.aid).getGateHpAndInc(guildCode);
|
||||
let obj = getGuildActivityObj(this.aid);
|
||||
let gateHp = obj.getGateHpAndInc(guildCode);
|
||||
if(gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO);
|
||||
|
||||
let statusResult = getGuildActivityStatus(this.aid);
|
||||
@@ -162,11 +171,14 @@ export class GateActivityHandler {
|
||||
// TODO 测试完成后去掉这条判断
|
||||
// if(!statusResult.isOpen) return resResult(STATUS.GUILD_ACTIVITY_NOT_OPEN);
|
||||
|
||||
gateHp = getGuildActivityObj(this.aid).getGateHpAndInc(guildCode, -1 * damage);
|
||||
gateHp = obj.getGateHpAndInc(guildCode, -1 * damage);
|
||||
if(gateHp <= 0) {
|
||||
// TODO 推送 停止活动
|
||||
// 推送 停止活动并结算奖励
|
||||
await sendSingleGuildGateActEndMsg(guildCode, serverId);
|
||||
}
|
||||
// TODO 推送 城门血量
|
||||
// 推送 城门血量
|
||||
let chatSid = await getGuildChannelSid(guildCode);
|
||||
pinus.app.rpc.chat.guildRemote.pushGateHp.toServer(chatSid, guildCode, { gateHp });
|
||||
|
||||
// 返回当前军团总军功
|
||||
let guildScore = await getRankScore(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
|
||||
@@ -189,6 +201,7 @@ export class GateActivityHandler {
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
let { code, isSuccess } = msg;
|
||||
let obj = getGuildActivityObj(this.aid);
|
||||
|
||||
let statusResult = getGuildActivityStatus(this.aid);
|
||||
if(!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
@@ -217,7 +230,7 @@ export class GateActivityHandler {
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let { lv, vLv, head, frame, spine, title } = role;
|
||||
let userParam = new RankParam(roleName, lv, vLv, head, frame, spine, title);
|
||||
await setRank(getGuildKeyName(REDIS_KEY.USER_GUILD_ACTIVITY, guildCode), serverId, guildCode, score, Date.now(), userParam);
|
||||
await setRank(getGuildKeyName(REDIS_KEY.USER_GUILD_ACTIVITY, guildCode), serverId, roleId, score, Date.now(), userParam);
|
||||
|
||||
let guild = await GuildModel.findByCode(guildCode, serverId);
|
||||
let leader = <RoleType>guild.leader;
|
||||
@@ -230,9 +243,9 @@ export class GateActivityHandler {
|
||||
// 返回当前军团总军功
|
||||
let guildScore = await getRankScore(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
|
||||
let myScore = await getRankScore(getGuildKeyName(REDIS_KEY.USER_GUILD_ACTIVITY, guildCode), serverId, roleId, true);
|
||||
let gateHp = getGuildActivityObj(this.aid).getGateHpAndInc(guildCode);
|
||||
let gateHp = obj.getGateHpAndInc(guildCode);
|
||||
|
||||
getGuildActivityObj(this.aid).delMemberRecord(code);
|
||||
obj.delMemberRecord(code);
|
||||
let info = {
|
||||
round,
|
||||
enemyCnt, littleBossCnt, bossCnt,
|
||||
@@ -261,7 +274,9 @@ export class GateActivityHandler {
|
||||
|
||||
async debugGetPrivate(msg: { }, session: BackendSession) {
|
||||
let guildCode = session.get('guildCode');
|
||||
let res = getGuildActivityObj(this.aid).getObj(guildCode);
|
||||
console.log(guildCode);
|
||||
let serverId = session.get('serverId');
|
||||
let res = getGuildActivityObj(this.aid).getObj(guildCode, serverId);
|
||||
return resResult(STATUS.SUCCESS, res)
|
||||
}
|
||||
|
||||
@@ -270,4 +285,24 @@ export class GateActivityHandler {
|
||||
let result = await setMedianCe();
|
||||
return resResult(STATUS.SUCCESS, {result});
|
||||
}
|
||||
|
||||
async debugIncChallengeCnt(msg: { }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let res = await UserGuildActivityRecModel.updateInfoByRoleId(roleId, { challengeCnt: 0 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, { challengeCnt: res.challengeCnt });
|
||||
}
|
||||
|
||||
async debugStartActivity(msg: { aid: number }, session: BackendSession) {
|
||||
let { aid } = msg;
|
||||
let dic = gameData.guildActivity.get(aid);
|
||||
await guildActivityStart(dic);
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
async debugEndActivity(msg: { aid: number }, session: BackendSession) {
|
||||
let { aid } = msg;
|
||||
await sendGuildActEndMsg(aid);
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user