diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index dd9d60f7f..f58dbbd8b 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -1,6 +1,6 @@ import { FriendPointModel } from './../db/FriendPoint'; import { STATUS } from './../consts/statusCode'; -import { COM_BATTLE_ROBOT_ID_NAME, COM_BATTLE_ROBOT_CE_RATIO, COM_BATTLE_ROBOT_ROUND_LMT, COM_BATTLE_ROBOT_HURT_RATIO, COM_BATTLE_ROBOT_HURT_CH_RATIO, COM_TEAM_STATUS, COM_BATTLE_ASSIST_REWARD_RATIO, COM_BATTLE_FRDCNT_MAX, COM_BATTLE_FRDCNT_DROP, CURRENCY_BY_TYPE, CURRENCY_TYPE } from './../consts/consts'; +import { COM_BATTLE_ROBOT_ID_NAME, COM_BATTLE_ROBOT_CE_RATIO, COM_BATTLE_ROBOT_ROUND_LMT, COM_BATTLE_ROBOT_HURT_RATIO, COM_BATTLE_ROBOT_HURT_CH_RATIO, COM_TEAM_STATUS, COM_BATTLE_ASSIST_REWARD_RATIO, COM_BATTLE_FRDCNT_MAX, COM_BATTLE_FRDCNT_DROP, CURRENCY_BY_TYPE, CURRENCY_TYPE, FRIEND_DROP_TYPE } from './../consts/consts'; import { RoleStatus, ComBattleTeamModel } from './../db/ComBattleTeam'; import { getBluePrtByQuality, getComBtlSetByQuality, getRewardByBlueprtId, getWarById, getWarIdByBlueprtId } from "../pubUtils/gamedata"; import { getRandEelm, getRandValue, resResult, ratioReward } from "../pubUtils/util"; @@ -125,7 +125,7 @@ export async function getRealReward(blueprtId: number, roleSt: RoleStatus) { let fixRewardStr = warInfo['fixReward']; if (!roleSt.isCap) { if (roleSt.isFrd) { - let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleSt.roleId); + let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleSt.roleId, FRIEND_DROP_TYPE.COM_BATTLE); if (!frdPointRec || frdPointRec.cnt <= COM_BATTLE_FRDCNT_MAX - COM_BATTLE_FRDCNT_DROP) { fixRewardStr = `${CURRENCY_BY_TYPE.get(CURRENCY_TYPE.FRIEND_POINT)}&${COM_BATTLE_FRDCNT_DROP}`; } else if (frdPointRec.cnt < COM_BATTLE_FRDCNT_MAX) { diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index c4e186c88..f4b61e603 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -332,3 +332,7 @@ export const FUNC_OPT_TYPE = { export const FUNCS_ID = { EVENT: 1 } + +export const FRIEND_DROP_TYPE = { + COM_BATTLE: 1 +} \ No newline at end of file diff --git a/shared/db/FriendPoint.ts b/shared/db/FriendPoint.ts index 1be49792e..d11a4f07f 100644 --- a/shared/db/FriendPoint.ts +++ b/shared/db/FriendPoint.ts @@ -13,14 +13,16 @@ export default class FriendPoint extends BaseModel { roleName: string; // 角色名称 @prop({ required: true, default: 0 }) cnt: number; // 当天获取的点数 + @prop({ required: true, default: 0 }) + type: number; // 情谊点统计的类型,不同功能都可能有每日获取上限 /** * @description 更新每天的情谊点获取情况,cnt 有可能超过当日最大值,可根据返回值判断 * @static - * @param {string} roleId - * @param {string} roleName - * @param {number} cntInc - * @param {number} maxPerDay + * @param {string} roleId 用户 Id + * @param {string} roleName 用户名 + * @param {number} cntInc 增长数量 + * @param {number} maxPerDay 每日最大数量 * @param {boolean} [lean=true] * @memberof FriendPoint */ @@ -31,9 +33,18 @@ export default class FriendPoint extends BaseModel { return rec; } - public static async getFrdPointRecToday(roleId: string, lean = true) { + /** + * @description 某个类型当天情谊点获取情况 + * @static + * @param {string} roleId 用户 Id + * @param {number} type 掉落情谊点的功能类型 FRIEND_DROP_TYPE + * @param {boolean} [lean=true] + * @returns + * @memberof FriendPoint + */ + public static async getFrdPointRecToday(roleId: string, type: number, lean = true) { const curTime = new Date((new Date()).setHours(0, 0, 0, 0)); - const rec = await FriendPointModel.findOne({roleId, createdAt: {$gte: curTime}}).lean(lean); + const rec = await FriendPointModel.findOne({roleId, createdAt: {$gte: curTime}, type}).lean(lean); return rec; } }