🐞 fix(guild): 优化修复军团重置类问题的代码
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { gameData, getGuildActiveWeekReward, getGuildActiveByIdAndType, getGoodById } from "../pubUtils/data";
|
import { gameData, getGuildActiveWeekReward, getGuildActiveByIdAndType, getGoodById } from "../pubUtils/data";
|
||||||
import { GuildModel, GuildType, GuildUpdateParam } from "../db/Guild";
|
import { GuildModel, GuildType, GuildUpdateParam } from "../db/Guild";
|
||||||
import { resResult, shouldRefresh } from "../pubUtils/util";
|
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 { RoleModel, RoleType } from "../db/Role";
|
||||||
import { UserGuildModel, UserGuildType, WishGood } from "../db/UserGuild";
|
import { UserGuildModel, UserGuildType, WishGood } from "../db/UserGuild";
|
||||||
import { UserGuildApplyModel } from "../db/UserGuildApply";
|
import { UserGuildApplyModel } from "../db/UserGuildApply";
|
||||||
@@ -238,6 +238,21 @@ export async function getUserGuildWithRefActive(roleId: string, select?: string)
|
|||||||
return userGuild;
|
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;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -150,7 +150,7 @@ export default class UserGuild extends BaseModel {
|
|||||||
const doc = new UserGuildModel();
|
const doc = new UserGuildModel();
|
||||||
let job = isLeader? GUILD_JOB.DAJIANGJUN: GUILD_JOB.SHIBING;
|
let job = isLeader? GUILD_JOB.DAJIANGJUN: GUILD_JOB.SHIBING;
|
||||||
let auth = isLeader? GUILD_AUTH.LEADER: GUILD_AUTH.MEMBER;
|
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)) {
|
if (isToday(role.quitGuildTime)) {
|
||||||
@@ -195,6 +195,20 @@ export default class UserGuild extends BaseModel {
|
|||||||
return userGuild;
|
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) {
|
public static async dismiss(guildCode: string) {
|
||||||
const result = await UserGuildModel.updateMany({ guildCode }, { status: USER_GUILD_STATUS.DISMISSED });
|
const result = await UserGuildModel.updateMany({ guildCode }, { status: USER_GUILD_STATUS.DISMISSED });
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user