活动:修复寻宝骑兵问题
This commit is contained in:
@@ -144,7 +144,7 @@ export class EntryHandler {
|
|||||||
let self = this;
|
let self = this;
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
|
|
||||||
let role = await RoleModel.findByRoleId(roleId, '-_id', true, true);
|
let role = await RoleModel.findByRoleIdAndSetTime(roleId, '-_id', true);
|
||||||
if (!role) {
|
if (!role) {
|
||||||
return resResult(STATUS.ROLE_NOT_FOUND);
|
return resResult(STATUS.ROLE_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { ITEM_CHANGE_REASON, STATUS, TREASURE_HUNT_DATA_TYPE } from '../../consts';
|
import { ACTIVITY_TYPE, ITEM_CHANGE_REASON, STATUS, TREASURE_HUNT_DATA_TYPE } from '../../consts';
|
||||||
import { ActivityTreasureHuntShopModel } from '../../db/ActivityTreasureHuntShop';
|
import { ActivityTreasureHuntShopModel } from '../../db/ActivityTreasureHuntShop';
|
||||||
import { ActivityTreasureHuntTaskModel } from '../../db/ActivityTreasureHuntTask';
|
import { ActivityTreasureHuntTaskModel } from '../../db/ActivityTreasureHuntTask';
|
||||||
import { ActivityTreasureHuntTreasureShopModel } from '../../db/ActivityTreasureHuntTreasureShop';
|
import { ActivityTreasureHuntTreasureShopModel } from '../../db/ActivityTreasureHuntTreasureShop';
|
||||||
@@ -6,7 +6,7 @@ import { ActivityTreasureHuntFirstPageModel } from '../../db/ActivityTreasureHun
|
|||||||
import { TreasureHuntData } from '../../domain/activityField/treasureHuntField';
|
import { TreasureHuntData } from '../../domain/activityField/treasureHuntField';
|
||||||
import { addReward, stringToConsumeParam, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToConsumeParam, stringToRewardParam } from './giftPackageService';
|
||||||
import { RewardParam } from '../../domain/activityField/rewardField';
|
import { RewardParam } from '../../domain/activityField/rewardField';
|
||||||
import { getActivityById, getActivityByServerId } from './activityService';
|
import { getActivitiesByType, getActivityById, getActivityByServerId } from './activityService';
|
||||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||||
import { handleCost } from '../role/rewardService';
|
import { handleCost } from '../role/rewardService';
|
||||||
import { ActivityTreasureHuntChallengeModel } from '../../db/ActivityTreasureHuntChallenge';
|
import { ActivityTreasureHuntChallengeModel } from '../../db/ActivityTreasureHuntChallenge';
|
||||||
@@ -28,6 +28,7 @@ export async function getPlayerTreasureHuntDataShow(activityId: number, serverId
|
|||||||
*/
|
*/
|
||||||
export async function getPlayerTreasureHuntData(activityId: number, serverId: number, roleId: string, dataType: TREASURE_HUNT_DATA_TYPE = TREASURE_HUNT_DATA_TYPE.ALL) {
|
export async function getPlayerTreasureHuntData(activityId: number, serverId: number, roleId: string, dataType: TREASURE_HUNT_DATA_TYPE = TREASURE_HUNT_DATA_TYPE.ALL) {
|
||||||
let activityData = await getActivityById(activityId);
|
let activityData = await getActivityById(activityId);
|
||||||
|
console.log('#####', activityId, activityData)
|
||||||
|
|
||||||
let createTime = await getRoleCreateTime(roleId);
|
let createTime = await getRoleCreateTime(roleId);
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
let serverTime = await getServerCreateTime(serverId);
|
||||||
@@ -65,7 +66,7 @@ export async function getPlayerTreasureHuntShopData(activityId: number, serverId
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getPlayerTreasureHuntTaskData(activityId: number, serverId: number, roleId: string) {
|
export async function getPlayerTreasureHuntTaskData(activityId: number, serverId: number, roleId: string) {
|
||||||
return await getPlayerTreasureHuntData(activityId, serverId, roleId, TREASURE_HUNT_DATA_TYPE.TREASURE_SHOP);
|
return await getPlayerTreasureHuntData(activityId, serverId, roleId, TREASURE_HUNT_DATA_TYPE.TASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getPlayerTreasureHuntChallengeData(activityId: number, serverId: number, roleId: string) {
|
export async function getPlayerTreasureHuntChallengeData(activityId: number, serverId: number, roleId: string) {
|
||||||
@@ -123,7 +124,7 @@ export async function makeShop(roleId: string, roleName: string, sid: string, se
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function treasureHuntChallengeConsume(serverId: number, roleId: string, sid: string) {
|
export async function treasureHuntChallengeConsume(serverId: number, roleId: string, sid: string) {
|
||||||
let activities = await getActivityByServerId(serverId);
|
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.TREASURE_HUNT);
|
||||||
for(let { activityId } of activities) {
|
for(let { activityId } of activities) {
|
||||||
let playerData = await getPlayerTreasureHuntChallengeData(activityId, serverId, roleId,);
|
let playerData = await getPlayerTreasureHuntChallengeData(activityId, serverId, roleId,);
|
||||||
if (!playerData) return false;
|
if (!playerData) return false;
|
||||||
|
|||||||
@@ -328,6 +328,12 @@ export default class Role extends BaseModel {
|
|||||||
return role;
|
return role;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async findByRoleIdAndSetTime(roleId: string, select?: string, getters = false) {
|
||||||
|
const curSec = nowSeconds();
|
||||||
|
// 为了计算累计登录,此处查询new为false
|
||||||
|
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { loginTime: curSec, quitTime: curSec }, { new: false }).select(select).lean({ getters, virtuals: true });
|
||||||
|
return role;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 根据roleId获取一条数据
|
* 根据roleId获取一条数据
|
||||||
* @param roleId 玩家id
|
* @param roleId 玩家id
|
||||||
|
|||||||
Reference in New Issue
Block a user