🐞 fix(guild): 优化修复军团重置类问题的代码
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { gameData, getGuildActiveWeekReward, getGuildActiveByIdAndType, getGoodById } from "../pubUtils/data";
|
||||
import { GuildModel, GuildType, GuildUpdateParam } from "../db/Guild";
|
||||
import { resResult, shouldRefresh } from "../pubUtils/util";
|
||||
import { STATUS, MAIL_TYPE, GUILD_AUTH, GUILD_JOB, REDIS_KEY, CHAT_SERVER, TASK_TYPE, COUNTER, GUILD_REC_TYPE, PUSH_ROUTE, WAR_TYPE } from "../consts";
|
||||
import { STATUS, MAIL_TYPE, GUILD_AUTH, GUILD_JOB, REDIS_KEY, CHAT_SERVER, TASK_TYPE, COUNTER, GUILD_REC_TYPE, PUSH_ROUTE, WAR_TYPE, USER_GUILD_STATUS } from "../consts";
|
||||
import { RoleModel, RoleType } from "../db/Role";
|
||||
import { UserGuildModel, UserGuildType, WishGood } from "../db/UserGuild";
|
||||
import { UserGuildApplyModel } from "../db/UserGuildApply";
|
||||
@@ -238,6 +238,21 @@ export async function getUserGuildWithRefActive(roleId: string, select?: string)
|
||||
return userGuild;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询我在今天退出的军团中是否许过愿
|
||||
*
|
||||
* @param {string} roleId
|
||||
* @return {*}
|
||||
*/
|
||||
async function isIWishedInMyTodayQuitGuilds(roleId: string): Promise<Boolean> {
|
||||
const guilds = await UserGuildModel.findMyGuildsOfToday(roleId, 'wishGoods status');
|
||||
|
||||
const myWishedGuild = guilds.find((guild) => {
|
||||
return (guild.status != USER_GUILD_STATUS.ON) && (guild.wishGoods && guild.wishGoods.length > 0);
|
||||
});
|
||||
|
||||
return !!myWishedGuild;
|
||||
}
|
||||
/**
|
||||
* 今天在军团中是否能许愿
|
||||
*
|
||||
@@ -250,13 +265,8 @@ export async function canWishToday(roleId: string): Promise<Boolean> {
|
||||
return false;
|
||||
}
|
||||
|
||||
let userGuild = await UserGuildModel.findMyLastGuild(roleId, ' wishGoods');
|
||||
if (!userGuild) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 今天退出过军团 & 在退出的军团许过愿
|
||||
if (isToday(role.quitGuildTime) && (userGuild.wishGoods && userGuild.wishGoods.length > 0)) {
|
||||
if (isToday(role.quitGuildTime) && (await isIWishedInMyTodayQuitGuilds(roleId))) {
|
||||
// 新加入的军团不允许许愿
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ export default class UserGuild extends BaseModel {
|
||||
const doc = new UserGuildModel();
|
||||
let job = isLeader? GUILD_JOB.DAJIANGJUN: GUILD_JOB.SHIBING;
|
||||
let auth = isLeader? GUILD_AUTH.LEADER: GUILD_AUTH.MEMBER;
|
||||
let update = Object.assign(doc.toJSON(), { guildCode, roleId: role.roleId, role: role._id, job, auth, receiveBoxs, donateCnt, receivedActive, encourageCnt, bossChallengeCnt, receivedWishPool, wishGoods, wishDntCnt, refTimeDaily, refBossTime, trainCount, buyTrainCount, trainTime });
|
||||
const update = Object.assign(doc.toJSON(), { guildCode, roleId: role.roleId, role: role._id, job, auth, receiveBoxs, donateCnt, receivedActive, encourageCnt, bossChallengeCnt, receivedWishPool, wishGoods, wishDntCnt, refTimeDaily, refBossTime, trainCount, buyTrainCount, trainTime });
|
||||
|
||||
// 【退出军团】 和 【再加入军团】在同一天
|
||||
if (isToday(role.quitGuildTime)) {
|
||||
@@ -195,6 +195,20 @@ export default class UserGuild extends BaseModel {
|
||||
return userGuild;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询我今天所有加入过的军团(从上次的刷新时间(5AM)到现在)
|
||||
*
|
||||
* @static
|
||||
* @param {string} roleId
|
||||
* @param {string} select
|
||||
* @return {*}
|
||||
* @memberof UserGuild
|
||||
*/
|
||||
public static async findMyGuildsOfToday(roleId: string, select: string) {
|
||||
const userGuilds = await UserGuildModel.find({ roleId, createdAt: { $gt: getZeroPointD() } }).select(select).lean();
|
||||
return userGuilds;
|
||||
}
|
||||
|
||||
public static async dismiss(guildCode: string) {
|
||||
const result = await UserGuildModel.updateMany({ guildCode }, { status: USER_GUILD_STATUS.DISMISSED });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user