寻宝:协助次数&匹配范围修改
This commit is contained in:
@@ -133,11 +133,10 @@ export async function updateUserInfo(key: string, roleId: string, arr: Array<{fi
|
||||
|
||||
/**
|
||||
* @description 拼接匹配分组的 key
|
||||
* @param {number} quality 品质
|
||||
* @param {number} lvRange 等级范围
|
||||
* @param {number} lv 藏宝图品阶
|
||||
*/
|
||||
function getComTeamKey(quality: number, lvRange: number) {
|
||||
return `${REDIS_KEY.COM_TEAM_SEARCH_PRE}:${quality}_${lvRange}`;
|
||||
function getComTeamKey(lv: number) {
|
||||
return `${REDIS_KEY.COM_TEAM_SEARCH_PRE}:${lv}`;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -159,14 +158,9 @@ function getComTeamValue(roleId: string, sid: string) {
|
||||
* @param {number} lvRange
|
||||
* @returns
|
||||
*/
|
||||
export async function setTeamSearchReq(roleId: string, sid: string, qualityArr: Array<number>, lvRange: number) {
|
||||
let cmds = [];
|
||||
qualityArr.forEach(quality => {
|
||||
if (quality) {
|
||||
cmds.push(['sadd', getComTeamKey(quality, lvRange), getComTeamValue(roleId, sid)]);
|
||||
}
|
||||
});
|
||||
const res = await redisClient().multi(cmds).execAsync();
|
||||
export async function setTeamSearchReq(roleId: string, sid: string, lv: number) {
|
||||
|
||||
const res = await redisClient().saddAsync(getComTeamKey(lv), [getComTeamValue(roleId, sid)]);
|
||||
console.log('setTeamSearchReq: ', res);
|
||||
return res;
|
||||
}
|
||||
@@ -176,21 +170,18 @@ export async function setTeamSearchReq(roleId: string, sid: string, qualityArr:
|
||||
* @export
|
||||
* @param {string} roleId
|
||||
* @param {string} sid
|
||||
* @param {Array<number>} qualityArr
|
||||
* @param {number} lvRange
|
||||
* @param {number} lv 如果不填表示所有品阶
|
||||
*/
|
||||
export async function rmRoleFromQueue(roleId: string, sid: string, qualityArr: Array<number>, lvRange: number) {
|
||||
export async function rmRoleFromQueue(roleId: string, sid: string, lv?: number) {
|
||||
|
||||
let cmds = [];
|
||||
for (let q of qualityArr) {
|
||||
if (lvRange) {
|
||||
cmds.push(['srem', getComTeamKey(q, lvRange), getComTeamValue(roleId, sid)]);
|
||||
} else {
|
||||
for (let range of comBtlRanges()) {
|
||||
cmds.push(['srem', getComTeamKey(q, range), getComTeamValue(roleId, sid)]);
|
||||
}
|
||||
if (lv) {
|
||||
cmds.push(['srem', getComTeamKey(lv), getComTeamValue(roleId, sid)]);
|
||||
} else {
|
||||
for (let range of comBtlRanges()) {
|
||||
cmds.push(['srem', getComTeamKey(range), getComTeamValue(roleId, sid)]);
|
||||
}
|
||||
};
|
||||
}
|
||||
await redisClient().multi(cmds).execAsync();
|
||||
}
|
||||
|
||||
@@ -201,10 +192,10 @@ export async function rmRoleFromQueue(roleId: string, sid: string, qualityArr: A
|
||||
* @param {number} lvRange 等级范围
|
||||
* @returns
|
||||
*/
|
||||
export async function getTeamSearchByQuality(quality: number, lvRange: number) {
|
||||
export async function getTeamSearchByLv(lv: number) {
|
||||
// TODO: 操作不具有原子性
|
||||
const userInfos = await redisClient().srandmemberAsync(getComTeamKey(quality, lvRange), 2);
|
||||
console.log('getTeamSearchByQuality: ' + userInfos);
|
||||
const userInfos = await redisClient().srandmemberAsync(getComTeamKey(lv), 2);
|
||||
console.log('getTeamSearchByLv: ' + userInfos);
|
||||
if (!userInfos || !userInfos.length) return null;
|
||||
|
||||
let res = [];
|
||||
@@ -213,7 +204,7 @@ export async function getTeamSearchByQuality(quality: number, lvRange: number) {
|
||||
if (decodeData.length !== 2) return null;
|
||||
res.push({roleId: decodeData[0], sid: decodeData[1]});
|
||||
}
|
||||
console.log('getTeamSearchByQuality res: ', res);
|
||||
console.log('getTeamSearchByLv res: ', res);
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -222,17 +213,14 @@ export async function getTeamSearchByQuality(quality: number, lvRange: number) {
|
||||
* @export
|
||||
* @param {string} roleId
|
||||
* @param {string} sid
|
||||
* @param {Array<number>} qualityArr
|
||||
* @param {number} lvRange
|
||||
* @param {number} lv
|
||||
* @returns
|
||||
*/
|
||||
export async function checkRoleInQueue(roleId: string, sid: string, qualityArr: Array<number>, lvRange: number) {
|
||||
for (let quality of qualityArr) {
|
||||
let res = await redisClient().sismemberAsync(getComTeamKey(quality, lvRange), `${roleId}:${sid}`);
|
||||
if (res) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
export async function checkRoleInQueue(roleId: string, sid: string, lv: number) {
|
||||
let res = await redisClient().sismemberAsync(getComTeamKey(lv), `${roleId}:${sid}`);
|
||||
if (res) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -241,11 +229,7 @@ export async function checkRoleInQueue(roleId: string, sid: string, qualityArr:
|
||||
* @export
|
||||
*/
|
||||
export async function clearComBtlQueue() {
|
||||
for (let q of COM_BTL_QUALITY) {
|
||||
for (let lvRange of comBtlRanges()) {
|
||||
await redisClient().delAsync(getComTeamKey(q, lvRange));
|
||||
}
|
||||
}
|
||||
await delKeys(REDIS_KEY.COM_TEAM_SEARCH_PRE);
|
||||
}
|
||||
|
||||
export function setRedis(key: string, data: string) {
|
||||
|
||||
Reference in New Issue
Block a user