From 63cd693935b55ebe2b8056a56fc3a1d6ab0a9781 Mon Sep 17 00:00:00 2001 From: mamengke01 <794347210@qq.com> Date: Sun, 7 Feb 2021 16:26:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/handler/guildTrainHandler.ts | 5 +++-- .../app/servers/role/handler/mailHandler.ts | 19 +++++++++++-------- shared/consts/statusCode.ts | 3 +++ shared/db/GroupMail.ts | 2 +- shared/db/GuildTrain.ts | 7 +++---- shared/db/Mail.ts | 2 +- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/game-server/app/servers/battle/handler/guildTrainHandler.ts b/game-server/app/servers/battle/handler/guildTrainHandler.ts index ea485e97b..08b39cdba 100644 --- a/game-server/app/servers/battle/handler/guildTrainHandler.ts +++ b/game-server/app/servers/battle/handler/guildTrainHandler.ts @@ -258,14 +258,15 @@ export class GuildTrainHandler { let { shilianRewardRatio } = getTrainBaseByLv(trainLv); let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId); - let { progress } = findWhere(trainInstances, {hid}); + let { progress } = findWhere(trainInstances, { hid }); + console.log('progress = ' + progress); let guildTrain = await GuildTrainModel.findTrainInstanceBoxByIndex(code, trainId, hid, progress); if (!guildTrain) { res.releaseCallback();//解锁 return resResult(STATUS.GUILD_TRAIN_SCRIPT_NOT_OPENED); } let trainInstance = findWhere(guildTrain.trainInstances, { hid }); - if (trainInstance.endTime > nowSeconds()) + if (trainInstance.endTime < nowSeconds()) return resResult(STATUS.GUILD_TRAIN_BOX_IS_OVER_TIME); let trainBox = findWhere(trainInstance.trainBoxs, { index }) if (!!trainBox) diff --git a/game-server/app/servers/role/handler/mailHandler.ts b/game-server/app/servers/role/handler/mailHandler.ts index f40c4d612..f0ca98271 100644 --- a/game-server/app/servers/role/handler/mailHandler.ts +++ b/game-server/app/servers/role/handler/mailHandler.ts @@ -53,17 +53,20 @@ export class RoleHandler { return resResult(STATUS.WRONG_PARMS); } } else {//一键删除 - let groupMailIds = await GroupMailModel.findReadAndRewardsMails(roleId); - await GroupMailModel.updateMailStatus(groupMailIds, MAIL_STATUS.DELETE, roleId); - let mailIds = await MailModel.findReadAndRewardsMails(roleId); - await MailModel.updateMailStatus(mailIds, MAIL_STATUS.DELETE); let mails = []; - groupMailIds.map((id)=>{ - mails.push({id, status: MAIL_STATUS.DELETE, mailType: MAIL_TYPE.GROUPMAIL}); + let resGroupMailIds = await GroupMailModel.findReadAndRewardsMails(roleId); + let groupMailIds: string[] = resGroupMailIds.map(({_id})=>{ + mails.push({id:_id, status: MAIL_STATUS.DELETE, mailType: MAIL_TYPE.GROUPMAIL}); + return _id; }); - mailIds.map((id)=>{ - mails.push({id, status: MAIL_STATUS.DELETE, mailType: MAIL_TYPE.SINGLEMAIL}); + await GroupMailModel.updateMailStatus(groupMailIds, MAIL_STATUS.DELETE, roleId); + let resMailIds = await MailModel.findReadAndRewardsMails(roleId); + let mailIds: string[] = resMailIds.map(({_id})=>{ + mails.push({id: _id, status: MAIL_STATUS.DELETE, mailType: MAIL_TYPE.SINGLEMAIL}); + return _id; }); + await MailModel.updateMailStatus(mailIds, MAIL_STATUS.DELETE); + return resResult(STATUS.SUCCESS, { mails }); } } diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index c3fc66c7e..daf3d53ec 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -179,6 +179,9 @@ export const STATUS = { GUILD_TRAIN_IS_NOT_COMPLETE: { code: 20968, simStr: '军团该训练场没有完成' }, GUILD_TRAIN_QUALITY_REWARD_IS_GOT: { code: 20969, simStr: '军团训练进阶奖励已经领取' }, GUILD_PERSITION_TREE_NOT_LIGHT: { code: 20970, simStr: '军团前置科技树未研发' }, + GUILD_TRAIN_BOX_IS_OVER_TIME: { code: 20971, simStr: '军团宝箱超时' }, + GUILD_TRAIN_BOX_INDEX_IS_GOT:{ code: 20972, simStr: '该位置试炼宝箱已经领取过,请重新选择' }, + GUILD_TRAIN_BOX_IS_GOT: { code: 20973, simStr: '玩家已经领取该试炼宝箱' }, // 通用 30000 - 30099 DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' }, ROLE_MATERIAL_NOT_ENOUGH: { code: 30001, simStr: '材料数量不足' }, diff --git a/shared/db/GroupMail.ts b/shared/db/GroupMail.ts index 34a86c4ae..16a23b2b7 100644 --- a/shared/db/GroupMail.ts +++ b/shared/db/GroupMail.ts @@ -82,7 +82,7 @@ export default class GroupMail extends BaseModel { } public static async findReadAndRewardsMails(roleId: string, lean = true) { - const ids: string[] = await GroupMailModel.find({ 'sendRoles.roleId': roleId, sendTime:{$lte: nowSeconds()}, $or:[ {$and: [{'sendRoles.status': MAIL_STATUS.READ, goods: []}]}, {'sendRoles.status': MAIL_STATUS.RECEIVED}] }).select('_id').lean(lean); + const ids: GroupMailType[] = await GroupMailModel.find({ 'sendRoles.roleId': roleId, sendTime:{$lte: nowSeconds()}, $or:[ {$and: [{'sendRoles.status': MAIL_STATUS.READ, goods: []}]}, {'sendRoles.status': MAIL_STATUS.RECEIVED}] }).select('_id').lean(lean); return ids; } diff --git a/shared/db/GuildTrain.ts b/shared/db/GuildTrain.ts index de2c4d203..9b45cd60f 100644 --- a/shared/db/GuildTrain.ts +++ b/shared/db/GuildTrain.ts @@ -73,7 +73,7 @@ export default class GuildTrain extends BaseModel { public static async updateGuildTrainProgress(guildCode: string, trainId: number, hid:number, progress: number, ranks:Array, isComplete: boolean,lean = true) { const guildTrain: GuildTrainType = await GuildTrainModel.findOneAndUpdate({ guildCode, trainId, 'trainInstances.hid':hid}, - { $set: {'trainInstances.$.progress': progress, ranks, isComplete,'trainInstances.$.endTime': nowSeconds() + 24*60*60} },{new: true}).lean(lean); + { $set: {'trainInstances.$.progress': progress, ranks, isComplete,'trainInstances.$.endTime': (nowSeconds() + 24 * 60 * 60)} },{new: true}).lean(lean); return guildTrain; } @@ -83,9 +83,8 @@ export default class GuildTrain extends BaseModel { return guildTrain; } - public static async findTrainInstanceBoxByIndex(guildCode: string, roleId: string, trainId: number, hid: number, index: number, progress: number, time: number, locked = false, lean = true) { - const guildTrain: GuildTrainType = await GuildTrainModel.findOne({ guildCode, trainId, locked, 'trainInstances.hid': hid, - 'trainInstances.trainBoxs.index':{$ne:index },'trainInstances.trainBoxs.roleId':{$ne:roleId }, 'trainInstances.progress': {$gte: progress}, 'trainInstances.endTime':{$gte: time}}).lean(lean); + public static async findTrainInstanceBoxByIndex(guildCode: string, trainId: number, hid: number, progress: number, locked = false, lean = true) { + const guildTrain: GuildTrainType = await GuildTrainModel.findOne({ guildCode, trainId, locked, 'trainInstances.hid': hid, 'trainInstances.progress': {$gte: progress} }).lean(lean); return guildTrain; } diff --git a/shared/db/Mail.ts b/shared/db/Mail.ts index 913b704fd..e5db49164 100644 --- a/shared/db/Mail.ts +++ b/shared/db/Mail.ts @@ -77,7 +77,7 @@ export default class Mail extends BaseModel { } public static async findReadAndRewardsMails(roleId: string, lean = true) { - const ids: string[] = await MailModel.find({ roleId, $or: [{ $and: [{ status: MAIL_STATUS.READ, goods: [] }] }, { status: MAIL_STATUS.RECEIVED }], sendTime:{$lte: nowSeconds()} }).select('_id').lean(lean); + const ids: MailType[] = await MailModel.find({ roleId, $or: [{ $and: [{ status: MAIL_STATUS.READ, goods: [] }] }, { status: MAIL_STATUS.RECEIVED }], sendTime:{$lte: nowSeconds()} }).select('_id').lean(lean); return ids; }