寻宝:情谊点每日上限按获取途径区分

This commit is contained in:
liangtongchuan
2020-12-03 16:31:39 +08:00
parent f2a62f2334
commit 47b9faec01
3 changed files with 23 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
import { FriendPointModel } from './../db/FriendPoint'; import { FriendPointModel } from './../db/FriendPoint';
import { STATUS } from './../consts/statusCode'; 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 { RoleStatus, ComBattleTeamModel } from './../db/ComBattleTeam';
import { getBluePrtByQuality, getComBtlSetByQuality, getRewardByBlueprtId, getWarById, getWarIdByBlueprtId } from "../pubUtils/gamedata"; import { getBluePrtByQuality, getComBtlSetByQuality, getRewardByBlueprtId, getWarById, getWarIdByBlueprtId } from "../pubUtils/gamedata";
import { getRandEelm, getRandValue, resResult, ratioReward } from "../pubUtils/util"; import { getRandEelm, getRandValue, resResult, ratioReward } from "../pubUtils/util";
@@ -125,7 +125,7 @@ export async function getRealReward(blueprtId: number, roleSt: RoleStatus) {
let fixRewardStr = warInfo['fixReward']; let fixRewardStr = warInfo['fixReward'];
if (!roleSt.isCap) { if (!roleSt.isCap) {
if (roleSt.isFrd) { 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) { 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}`; fixRewardStr = `${CURRENCY_BY_TYPE.get(CURRENCY_TYPE.FRIEND_POINT)}&${COM_BATTLE_FRDCNT_DROP}`;
} else if (frdPointRec.cnt < COM_BATTLE_FRDCNT_MAX) { } else if (frdPointRec.cnt < COM_BATTLE_FRDCNT_MAX) {

View File

@@ -332,3 +332,7 @@ export const FUNC_OPT_TYPE = {
export const FUNCS_ID = { export const FUNCS_ID = {
EVENT: 1 EVENT: 1
} }
export const FRIEND_DROP_TYPE = {
COM_BATTLE: 1
}

View File

@@ -13,14 +13,16 @@ export default class FriendPoint extends BaseModel {
roleName: string; // 角色名称 roleName: string; // 角色名称
@prop({ required: true, default: 0 }) @prop({ required: true, default: 0 })
cnt: number; // 当天获取的点数 cnt: number; // 当天获取的点数
@prop({ required: true, default: 0 })
type: number; // 情谊点统计的类型,不同功能都可能有每日获取上限
/** /**
* @description 更新每天的情谊点获取情况cnt 有可能超过当日最大值,可根据返回值判断 * @description 更新每天的情谊点获取情况cnt 有可能超过当日最大值,可根据返回值判断
* @static * @static
* @param {string} roleId * @param {string} roleId 用户 Id
* @param {string} roleName * @param {string} roleName 用户名
* @param {number} cntInc * @param {number} cntInc 增长数量
* @param {number} maxPerDay * @param {number} maxPerDay 每日最大数量
* @param {boolean} [lean=true] * @param {boolean} [lean=true]
* @memberof FriendPoint * @memberof FriendPoint
*/ */
@@ -31,9 +33,18 @@ export default class FriendPoint extends BaseModel {
return rec; 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 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; return rec;
} }
} }