拍卖行:修复获取排品缺少演武的问题

This commit is contained in:
luying
2021-05-06 15:25:10 +08:00
parent f5654c402f
commit 2ef00e8179
6 changed files with 44 additions and 11 deletions
@@ -1,6 +1,6 @@
import { Application, BackendSession } from 'pinus';
import { resResult, genCode, getRandomByLen } from '../../../pubUtils/util';
import { STATUS, TASK_TYPE } from '../../../consts';
import { STATUS, TASK_TYPE, AUCTION_SOURCE } from '../../../consts';
import { BossInstanceModel } from '../../../db/BossInstance';
import { BattleRecordModel } from '../../../db/BattleRecord';
import { nowSeconds, getTodayZeroPoint } from '../../../pubUtils/timeUtil';
@@ -16,6 +16,7 @@ import { getBossByLv } from '../../../pubUtils/data';
import { lockData } from '../../../services/redLockService';
import { pushGuildBossSucMsg } from '../../../services/chatService';
import { checkTask } from '../../../services/taskService';
import { genAuction } from '../../../services/auctionService';
export default function (app: Application) {
return new GuildHandler(app);
@@ -105,7 +106,7 @@ export class GuildHandler {
async battleBoss(msg: {}, session: BackendSession) {
const roleId: string = session.get('roleId');
const roleName: string = session.get('roleName');
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode job');
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
const { guildCode: code } = userGuild;
@@ -129,7 +130,7 @@ export class GuildHandler {
const serverId:number = parseInt(session.get('serverId'));
await addBossInstance(code, serverId, roleId);
if (!findWhere(ranks, {roleId})) {
await BossInstanceModel.pushRanks(code, {roleId, score: 0, time: nowSeconds()});
await BossInstanceModel.pushRanks(code, {roleId, score: 0, time: nowSeconds(), job: userGuild.job});
} else {
await BossInstanceModel.updateRank(code, roleId);
}
@@ -20,6 +20,7 @@ import { GuildActivityCityType, GuildActivityCityModel } from "../db/GuildActivi
import { DicCityActivity } from "../pubUtils/dictionary/DicCityActivity";
import { GateActivityObject, CityActivityObject, RaceActivityObject } from "./guildActivityObjService";
import { Rank } from "./rankService";
import { BossInstanceModel } from "../db/BossInstance";
let gateActivityObj: GateActivityObject;
let cityActivityObj: CityActivityObject;
@@ -486,10 +487,19 @@ export async function autoDeclare(serverId: number) {
* @param sourceCode 活动唯一code
*/
export async function participants(guildCode: string, sourceType: number, sourceCode: string) {
let rec = await GuildActivityRecordModel.findBySourceCode(guildCode, sourceType, sourceCode);
if(!rec) return [];
if(sourceType == AUCTION_SOURCE.BOSS) {
let rec = await BossInstanceModel.findBySourceCode(guildCode, sourceCode);
if(!rec) return [];
return rec.members||[];
return rec.ranks.map(cur => {
return { roleId: cur.roleId, job: cur.job }
});
} else {
let rec = await GuildActivityRecordModel.findBySourceCode(guildCode, sourceType, sourceCode);
if(!rec) return [];
return rec.members||[];
}
}
/**
+10 -3
View File
@@ -8,11 +8,12 @@ import { pinus } from 'pinus';
import { STATUS } from '../consts/statusCode';
import { deepCopy, resResult } from '../pubUtils/util';
import { BattleRecordModel } from '../db/BattleRecord';
import { getArmyBossRank } from '../pubUtils/data';
import { getArmyBossRank, gameData } from '../pubUtils/data';
import { getMailContent } from '../services/mailService';
import { pushMail } from '../pubUtils/interface';
import { MAIL_TYPE } from '../consts';
import { MAIL_TYPE, AUCTION_SOURCE } from '../consts';
import { GUILD_BOSS_STATUS } from '../consts/constModules/guildConst';
import { genAuction } from './auctionService';
/**
* 获得boss界面
* @param bossInstance
@@ -102,7 +103,7 @@ export async function bossResult(code: string, serverId: number, dataName: strin
let res:any = await lockData(serverId, dataName, code);//加锁
if (!!res.err)
return true;
let {winSettled, ranks, num, warId, bossHp, bossLv} = await BossInstanceModel.findBossInstance(code);//锁定关卡信息
let {winSettled, ranks, num, warId, bossHp, bossLv, code: bossCode } = await BossInstanceModel.findBossInstance(code);//锁定关卡信息
if (winSettled) {
res.releaseCallback();//解锁
await BossInstanceModel.recordRoleIdWhenCheck(code, roleId);
@@ -138,6 +139,12 @@ export async function bossResult(code: string, serverId: number, dataName: strin
pushMessage.forEach(({route, data, uids })=>{
pinus.app.channelService.pushMessageByUids(route, resResult(STATUS.SUCCESS, { mails: data }), uids);
});
// 加入拍卖行
let dicBossBase = gameData.bossBaseByBossLv.get(bossLv);
if(dicBossBase) {
await genAuction(code, AUCTION_SOURCE.BOSS, bossCode, serverId, dicBossBase.reward);
}
return true;
}
/**