寻宝:先创建在匹配真人的匹配

This commit is contained in:
luying
2022-08-24 19:11:28 +08:00
parent e6ea277b2b
commit 75db5714d2
6 changed files with 84 additions and 6 deletions
+28
View File
@@ -226,6 +226,19 @@ export async function rmRoleFromQueue(roleId: string, sid: string, lvs?: number[
await redisClient().multi(cmds).execAsync();
}
function getComCreateTeamKey(lv: number) {
return `${REDIS_KEY.COM_TEAM_CREATED_TEAM}:${lv}`;
}
export async function setCreatedTeamToRedis(teamCode: string, lv: number) {
let sid = pinus.app.getCurServer().id;
await redisClient().hsetAsync(getComCreateTeamKey(lv), teamCode, sid);
}
export async function rmCreatedTeamFromRedis(teamCode: string, lv: number) {
await redisClient().hdelAsync(getComCreateTeamKey(lv), teamCode);
}
/**
* @description 在寻宝匹配队列中随机两个玩家
* @export
@@ -249,6 +262,20 @@ export async function getTeamSearchByLv(lv: number) {
return res;
}
export async function getCreatedTeamByLv(lvs: number[]) {
let team: {lv: number, teamCode: string}[] = [];
for(let lv of lvs) {
let teams = await redisClient().hkeysAsync(getComCreateTeamKey(lv));
team.push(...teams.map(teamCode => ({ lv, teamCode })));
}
return team;
}
export async function getComTeamSidByCode(lv: number, teamCode: string) {
let sid = await redisClient().hgetAsync(getComCreateTeamKey(lv), teamCode);
return sid
}
/**
* @description 检查玩家是否在某个队列中等待寻宝匹配
* @export
@@ -274,6 +301,7 @@ export async function checkRoleInQueue(roleId: string, sid: string, lvs: number[
*/
export async function clearComBtlQueue() {
await delKeys(REDIS_KEY.COM_TEAM_SEARCH_PRE);
await delKeys(REDIS_KEY.COM_TEAM_CREATED_TEAM);
}
export function setRedis(key: string, data: string) {