diff --git a/game-server/app/servers/battle/handler/ladderHandler.ts b/game-server/app/servers/battle/handler/ladderHandler.ts index 09c7a18fd..b12e3af01 100644 --- a/game-server/app/servers/battle/handler/ladderHandler.ts +++ b/game-server/app/servers/battle/handler/ladderHandler.ts @@ -361,7 +361,7 @@ export class LadderHandler { return resResult(STATUS.SUCCESS, { list: list.map(rec => { const { roleId1, battleCode, hasRpl, remoteUrl } = rec; - const rplFileUrl = battleCode && hasRpl ? getRemoteRplFilePath(remoteUrl, roleId1, WAR_TYPE.LADDER, battleCode) : ''; + const rplFileUrl = battleCode && hasRpl ? remoteUrl : ''; return { ...rec, rplFileUrl }; }), rplPrefixUrl: getRemoteRplPrefix(pinus.app.get('env')) diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 4e631e66d..30a5a0e9a 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -619,7 +619,7 @@ export class PvpHandler { return resResult(STATUS.SUCCESS, { list: pvpRecords.map(rec => { const { roleId1, battleCode, hasRpl, remoteUrl } = rec; - const rplFileUrl = battleCode && hasRpl ? getRemoteRplFilePath(remoteUrl, roleId1, WAR_TYPE.PVP, battleCode) : ''; + const rplFileUrl = battleCode && hasRpl ? remoteUrl : ''; return { ...rec, rplFileUrl }; }), rplPrefixUrl: getRemoteRplPrefix(pinus.app.get('env')) diff --git a/game-server/app/servers/guild/handler/gvgFightHandler.ts b/game-server/app/servers/guild/handler/gvgFightHandler.ts index 334cb3f5b..e4c9d51a4 100644 --- a/game-server/app/servers/guild/handler/gvgFightHandler.ts +++ b/game-server/app/servers/guild/handler/gvgFightHandler.ts @@ -396,7 +396,7 @@ export class GVGProduceHandler { let result: (GVGVestigeRecUpdate & {rplFileUrl: string})[] = []; for(let rec of list) { const { attackRoleId, battleCode, hasRpl, remoteUrl } = rec; - const rplFileUrl = battleCode && hasRpl ? getRemoteRplFilePath(remoteUrl, attackRoleId, WAR_TYPE.GVG_VESTIGE, battleCode) : ''; + const rplFileUrl = battleCode && hasRpl ? remoteUrl : ''; const obj = getVestigeRecStatus(rec); if(obj.status == VESTIGE_STATUS.COMPLETE) result.push({ ...rec, endTime: obj.time, rplFileUrl }); } diff --git a/shared/db/GVGVestigeRec.ts b/shared/db/GVGVestigeRec.ts index 53ef2f525..7a51653c1 100644 --- a/shared/db/GVGVestigeRec.ts +++ b/shared/db/GVGVestigeRec.ts @@ -122,7 +122,7 @@ export default class GVGVestigeRec extends BaseModel { let recs: GVGVestigeRecType[] = await GVGVestigeRecModel.find({ vestigeId, $or: [{attackRoleId: roleId}, { defenseRoleId: roleId }], createdAt: { $gte: getTimeFunD().getBeforeDayWithHour(3) }, - }).select({ battleCode: 1, attackRoleId: 1, defenseRoleId: 1, _id: 0, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean(); + }).select({ battleCode: 1, attackRoleId: 1, defenseRoleId: 1, _id: 0, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1, remoteUrl: 1 }).limit(1000).lean(); return recs; } } diff --git a/shared/db/LadderMatchRec.ts b/shared/db/LadderMatchRec.ts index 74916bae2..797b0e19c 100644 --- a/shared/db/LadderMatchRec.ts +++ b/shared/db/LadderMatchRec.ts @@ -118,7 +118,7 @@ export default class LadderMatchRec extends BaseModel { endTime: { $gt: startMs }, $or: [{roleId1: roleId}, { roleId2: roleId }], status: LADDER_STATUS.COMPLETE - }).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean(); + }).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1, remoteUrl: 1 }).limit(1000).lean(); return recs; } diff --git a/shared/pubUtils/battleUtils.ts b/shared/pubUtils/battleUtils.ts index db690eb9e..a6dc35694 100644 --- a/shared/pubUtils/battleUtils.ts +++ b/shared/pubUtils/battleUtils.ts @@ -37,14 +37,14 @@ export function getLocalRplUrl(roleId: string, warType: number, battleCode: stri return writePath; } -export function getRemoteRplUrl(env: string, sshHost: string, roleId: string, warType: number, battleCode: string) { +export function getRemoteRplUrl(sshHost: string, roleId: string, warType: number, battleCode: string) { const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存 - const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(sshHost).substring(0, 4)}/${roleId}/${warType}/${battleClass}`; + const rplUrl = `/${md5(sshHost).substring(0, 4)}/${roleId}/${warType}/${battleClass}`; return rplUrl; } export function getRemoteRplPrefix(env: string) { - const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(env).substring(0, 4)}`; + const rplUrl = `${getPrefixByEnv(env)}/rpls/`; return rplUrl; } diff --git a/web-server/app/controller/game.ts b/web-server/app/controller/game.ts index c5e0b0c23..39fe739ad 100644 --- a/web-server/app/controller/game.ts +++ b/web-server/app/controller/game.ts @@ -15,7 +15,7 @@ import { RedisClient } from 'redis'; import { REDIS_KEY } from '@consts'; import { RegionModel } from '@db/Region'; import { getRandEelmWithWeight } from 'app/pubUtils/util'; -import { getLocalRplUrl, getRemoteRplUrl } from 'app/pubUtils/battleUtils' +import { getLocalRplUrl, getRemoteRplUrl, getRemoteRplPrefix } from 'app/pubUtils/battleUtils' import { ChannelInfoModel } from '@db/ChannelInfo'; import { GVGVestigeRecModel } from '@db/GVGVestigeRec'; import { GVGBattleRecModel } from '@db/GVGBattleRec'; @@ -202,7 +202,7 @@ export default class GameController extends Controller { const { ctx } = this; const parts = ctx.multipart(); let part; - let [writePath, token, battleCode, fullPath, remoteUrl, warType] = ['', '', '', '', '', 0]; + let [writePath, token, battleCode, fullPath, remoteUrl, warType, prefix] = ['', '', '', '', '', 0, '']; while ((part = await parts()) != null) { if (part.length) { console.log('kv: ', `${part[0]}: ${part[1]}`); @@ -267,7 +267,8 @@ export default class GameController extends Controller { const writeStream = fs.createWriteStream(fullPath); await pump(part, writeStream); - remoteUrl = `${getRemoteRplUrl(ctx.app.config.realEnv, ctx.app.config.sshHost,roleId, warType, battleCode)}/${battleCode}.bin`; + prefix = getRemoteRplPrefix(ctx.app.config.realEnv); + remoteUrl = `${getRemoteRplUrl(ctx.app.config.sshHost,roleId, warType, battleCode)}/${battleCode}.bin`; let updateDBRes; if (warType === WAR_TYPE.PVP) { updateDBRes = await PvpRecordModel.updateRplStatus(battleCode, true, remoteUrl); @@ -284,7 +285,7 @@ export default class GameController extends Controller { } } } - ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { rplUrl: remoteUrl }); + ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { rplUrl: prefix + remoteUrl }); return; }