✨ feat(gvgBattle): 补充进入城池返回值中的部分结构
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { GVGCityType } from './../../../db/GVGCity';
|
import { GVGCityType } from './../../../db/GVGCity';
|
||||||
import { GVGRecModel } from '../../../db/GVGRec';
|
import { GVGRecModel } from '../../../db/GVGRec';
|
||||||
import { LeagueGood } from '../../../domain/gvgField/returnData';
|
import { LeagueGood } from '../../../domain/gvgField/returnData';
|
||||||
import { GVGTeamModel } from '../../../db/GVGTeam';
|
import { GVGTeamModel, GVGTeamType } from '../../../db/GVGTeam';
|
||||||
import { GVGUserDataModel } from '../../../db/GVGUserData';
|
import { GVGUserDataModel } from '../../../db/GVGUserData';
|
||||||
import { GVGCityModel } from '../../../db/GVGCity';
|
import { GVGCityModel } from '../../../db/GVGCity';
|
||||||
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
||||||
@@ -120,6 +120,7 @@ export class GVGBattleHandler {
|
|||||||
return resResult(STATUS.GVG_USER_NOT_FOUND);
|
return resResult(STATUS.GVG_USER_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let teams: GVGTeamType[] = [];
|
||||||
// 检测是否已经在城池中,玩家不在这个城池中时进行处理
|
// 检测是否已经在城池中,玩家不在这个城池中时进行处理
|
||||||
if (gvgUserData.cityId !== cityId) {
|
if (gvgUserData.cityId !== cityId) {
|
||||||
if(gvgUserData.cityId > 0) { // 如果leaveCity没有退出成功,玩家还遗留在上一座城中,做一下处理
|
if(gvgUserData.cityId > 0) { // 如果leaveCity没有退出成功,玩家还遗留在上一座城中,做一下处理
|
||||||
@@ -132,12 +133,23 @@ export class GVGBattleHandler {
|
|||||||
// 更新内存队伍信息
|
// 更新内存队伍信息
|
||||||
let areaId = getBirthAreaOfCity(city, myLeague.leagueCode);
|
let areaId = getBirthAreaOfCity(city, myLeague.leagueCode);
|
||||||
await GVGTeamModel.enterCity(roleId, cityId, areaId, groupId, serverType);
|
await GVGTeamModel.enterCity(roleId, cityId, areaId, groupId, serverType);
|
||||||
let teams = await GVGTeamModel.findByRole(roleId);
|
teams = await GVGTeamModel.findByRole(roleId);
|
||||||
let teamObj = getGVGBattleData(groupId, serverType);
|
let teamObj = getGVGBattleData(groupId, serverType);
|
||||||
teamObj.enterCity(teams);
|
teamObj.enterCity(teams);
|
||||||
}
|
}
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, { city });
|
if (!teams || teams.length === 0) {
|
||||||
|
teams = await GVGTeamModel.findByRole(roleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
const recs = await GVGRecModel.findByCity(cityId, configId);
|
||||||
|
|
||||||
|
return resResult(STATUS.SUCCESS, {
|
||||||
|
cityId,
|
||||||
|
ranks: [], // ! redis 中积分排行榜
|
||||||
|
recs,
|
||||||
|
teams,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 离开城池
|
// 离开城池
|
||||||
|
|||||||
@@ -70,16 +70,16 @@ describe('gvg激战期测试', function () {
|
|||||||
}, (data) => {
|
}, (data) => {
|
||||||
checkSuccessResponse(data);
|
checkSuccessResponse(data);
|
||||||
// 检查返回值中的 city
|
// 检查返回值中的 city
|
||||||
expect(data.data.cityId).to.be.an('number');
|
expect(data.data.cityId).to.be.a('number');
|
||||||
expect(data.data.guardLeague).to.be.an('object');
|
expect(data.data.guardLeague).to.be.an('object');
|
||||||
expect(data.data.guardLeague.leagueCode).to.be.an('string');
|
expect(data.data.guardLeague.leagueCode).to.be.a('string');
|
||||||
expect(data.data.guardLeague.name).to.be.an('string');
|
expect(data.data.guardLeague.name).to.be.a('string');
|
||||||
expect(data.data.guardLeague.icon).to.be.an('number');
|
expect(data.data.guardLeague.icon).to.be.a('number');
|
||||||
expect(data.data.guardStartTime).to.be.an('number');
|
expect(data.data.guardStartTime).to.be.a('number');
|
||||||
expect(data.data.startTime).to.be.an('number');
|
expect(data.data.startTime).to.be.a('number');
|
||||||
expect(data.data.endTime).to.be.an('number');
|
expect(data.data.endTime).to.be.a('number');
|
||||||
expect(data.data.ourTeamCnt).to.be.an('number');
|
expect(data.data.ourTeamCnt).to.be.a('number');
|
||||||
expect(data.data.oppTeamCnt).to.be.an('number');
|
expect(data.data.oppTeamCnt).to.be.a('number');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
// });
|
// });
|
||||||
@@ -93,7 +93,13 @@ describe('gvg激战期测试', function () {
|
|||||||
}, (data) => {
|
}, (data) => {
|
||||||
checkSuccessResponse(data);
|
checkSuccessResponse(data);
|
||||||
// 检查 city 中的属性类型是否合法
|
// 检查 city 中的属性类型是否合法
|
||||||
checkCity(data.data.city);
|
expect(data.data.cityId).to.be.a('number');
|
||||||
|
expect(data.data.ranks).to.be.an('array');
|
||||||
|
expect(data.data.recs).to.be.an('array');
|
||||||
|
expect(data.data.teams).to.be.an('array');
|
||||||
|
data.data.teams.forEach((team) => {
|
||||||
|
checkTeam(team);
|
||||||
|
});
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { index, getModelForClass, prop, DocumentType, } from '@typegoose/typegoo
|
|||||||
import { GVG_REC_TYPE } from '../consts';
|
import { GVG_REC_TYPE } from '../consts';
|
||||||
|
|
||||||
@index({ leagueCode: 1, guildCode: 1, configId: 1 })
|
@index({ leagueCode: 1, guildCode: 1, configId: 1 })
|
||||||
|
@index({ cityId: 1, configId: 1 })
|
||||||
@index({ createTime: -1 })
|
@index({ createTime: -1 })
|
||||||
export default class GVGRec extends BaseModel {
|
export default class GVGRec extends BaseModel {
|
||||||
|
|
||||||
@@ -42,6 +43,13 @@ export default class GVGRec extends BaseModel {
|
|||||||
const result: GVGRecType[] = await GVGRecModel.find({ leagueCode, type }, { _id: 0, recId: 1, params: 1, createTime: 1 }).sort({ createTime: -1 }).limit(50).lean();
|
const result: GVGRecType[] = await GVGRecModel.find({ leagueCode, type }, { _id: 0, recId: 1, params: 1, createTime: 1 }).sort({ createTime: -1 }).limit(50).lean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询城池战报
|
||||||
|
public static async findByCity(cityId: number, configId: number) {
|
||||||
|
const result: GVGRecType[] = await GVGRecModel.find({ cityId, configId }, { _id: 0, recId: 1, params: 1, createTime: 1 }).sort({ createTime: -1 }).limit(50).lean();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const GVGRecModel = getModelForClass(GVGRec);
|
export const GVGRecModel = getModelForClass(GVGRec);
|
||||||
|
|||||||
Reference in New Issue
Block a user