镇念塔:刷新任务防并发

This commit is contained in:
luying
2022-09-23 16:03:53 +08:00
parent 8d62021c12
commit d3683b5b4b
4 changed files with 19 additions and 18 deletions

View File

@@ -162,8 +162,7 @@ export class TowerBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let role = await RoleModel.findByRoleId(roleId);
let result = await getTasks(role);
let result = await getTasks(roleId);
return resResult(STATUS.SUCCESS, result);
}

View File

@@ -47,13 +47,14 @@ export async function addGuildPay(role: RoleType, price: number) {
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
let obj = new GuildPayData(activityData, 0, openTime * 1000);
let { isNew, result } = await ActivityGuildPayModel.addRecord(serverId, activityId, obj.roundIndex, guildCode, {
roleId, roleName, price
});
if(isNew) {
let { memberRecord } = result;
pushResult.push({ activityId, activityType, param: { payMember: roleName, payMemberCnt: memberRecord.length } });
if(obj && obj.canShow()) {
let { isNew, result } = await ActivityGuildPayModel.addRecord(serverId, activityId, obj.roundIndex, guildCode, {
roleId, roleName, price
});
if(isNew) {
let { memberRecord } = result;
pushResult.push({ activityId, activityType, param: { payMember: roleName, payMemberCnt: memberRecord.length } });
}
}
}
await pushActivitiesToGuild(pushResult, guildCode);

View File

@@ -107,8 +107,9 @@ export async function getHungupRewards(roleId: string, role?: RoleType) {
* 获取派遣任务列表
* @param role
*/
export async function getTasks(role: RoleType) {
let { roleId, roleName, towerLv, towerTaskRefTime, towerTaskReCnt = 0 } = role;
export async function getTasks(roleId: string) {
let role = await RoleModel.findByRoleId(roleId, 'roleName towerLv towerTaskRefTime towerTaskReCnt');
let { roleName, towerLv, towerTaskRefTime, towerTaskReCnt = 0 } = role;
// towerLv从1开始下次打得层数dicParam内的从0开始打过的层数
if(towerLv - 1 < dicParam.TOWER_SEARCH.TOWER_SEARCH_STARTLIMITED) {
@@ -116,11 +117,10 @@ export async function getTasks(role: RoleType) {
}
let curTime = new Date();
let curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前显示中的任务
const needRefresh = shouldRefresh(towerTaskRefTime, curTime);
let curTasks: TowerTaskRecType[] = []
if(needRefresh) {
role = await RoleModel.resetTowerCnt(roleId, curTime);
const batchCode = genCode(8);
let preTasks = await TowerTaskRecModel.getPreTasks(roleId);
if(preTasks && preTasks.length) {
@@ -133,9 +133,11 @@ export async function getTasks(role: RoleType) {
curTasks = await refreshTasks(towerLv, batchCode, roleId, roleName, []); // 新建任务
// 重置派遣次数
role = await RoleModel.resetTowerCnt(roleId, curTime);
towerTaskReCnt = role.towerTaskReCnt;
}
if(curTasks.length <=0 ) {
curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前显示中的任务
}
let refRemainTime = getRemainTime(curTime);
let nextCostGold = getTowerTaskCostGold(role.towerTaskReCnt, role.towerTaskRefTime);

View File

@@ -243,11 +243,10 @@ async function getTowerEntryData(role: RoleType) {
const { roleId } = role;
const status = await getTowerStatus(role);
const hungUp = await getHungupRewards(roleId);
const tasks = await getTasks(role);
if (!hungUp) {
return { status, hungUp: {}, tasks }
return { status, hungUp: {} }
} else {
return { status, hungUp: hungUp, tasks }
return { status, hungUp: hungUp }
}
}