军团:改表
This commit is contained in:
@@ -117,14 +117,11 @@ export class DonationHandler {
|
||||
const { guildCode: code, receiveBoxs: resReceiveBoxs } = userGuild;
|
||||
if (resReceiveBoxs.indexOf(id) != -1)
|
||||
return resResult(STATUS.GUILD_DONATE_BOXS_IS_GOT);
|
||||
let { boxRewards, fund } = getArmyDonateBoxBaseById(id);
|
||||
let { boxRewards, fund, level } = getArmyDonateBoxBaseById(id);
|
||||
let { donateFund, donationLv } = await getDonation(code, serverId);
|
||||
let { boxRewardRatio, requireRewardRatio } = getArmyDonateBaseByLv(donationLv);
|
||||
if (donateFund < Math.floor(fund * (100 + requireRewardRatio) / 100))
|
||||
if( donationLv < level) return resResult(STATUS.GUILD_DONATE_LV_NOT_ENOUGH)
|
||||
if (donateFund < fund)
|
||||
return resResult(STATUS.GUILD_DONATE_BOXS_NOT_GOT);
|
||||
boxRewards = boxRewards.map(({ id, count }) => {
|
||||
return { id, count: count * (boxRewardRatio + 100) };
|
||||
});
|
||||
resReceiveBoxs.push(id);
|
||||
let { receiveBoxs } = await UserGuildModel.updateInfo(roleId, { receiveBoxs: resReceiveBoxs }, {}, 'receiveBoxs');
|
||||
let goods = await addItems(roleId, roleName, sid, boxRewards, ITEM_CHANGE_REASON.DONATE_BOX);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession, pinus, HandlerService, } from 'pinus';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS, GUILD_OPERATE, TASK_TYPE, ITEM_CHANGE_REASON } from '../../../consts';
|
||||
import { STATUS, GUILD_OPERATE, TASK_TYPE, ITEM_CHANGE_REASON, ITID, CONSUME_TYPE } from '../../../consts';
|
||||
import { GuildRefineModel } from '../../../db/GuildRefine';
|
||||
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
@@ -59,10 +59,12 @@ export class GuildRefineHandler {
|
||||
for (let scienceTree of scienceTrees) {
|
||||
if (scienceTree.endTime < nowSeconds()) {
|
||||
let developConsume = getArmyDevelopConsumeById(scienceTree.id);
|
||||
if (developConsume.quality && developConsume.levelMax >= pieceInfo.lvLimited && pieceInfo.lvLimited <= developConsume.levelMin) { // TODO 改成星级
|
||||
let dicItid = ITID.get(pieceInfo.itid);
|
||||
if (developConsume.quality >= pieceInfo.quality && (dicItid.type != CONSUME_TYPE.PIECE || (dicItid.type == CONSUME_TYPE.PIECE && pieceInfo.equipLvl >= developConsume.starLevel))) {
|
||||
findDevelopConsume = developConsume;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (!findDevelopConsume)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, HandlerService, } from 'pinus';
|
||||
import { resResult, genCode, getRandSingleEelm } from '../../../pubUtils/util';
|
||||
import { DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, STATUS, TASK_TYPE, TRAIN_REWARD_TYPE } from '../../../consts';
|
||||
import { GuildTrainModel } from '../../../db/GuildTrain';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getTimeFun, getZeroPoint } from '../../../pubUtils/timeUtil';
|
||||
@@ -10,7 +10,7 @@ import { lockData } from '../../../services/redLockService';
|
||||
import { GUILD_REPORT_NUM, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
import { getArmyTrainJuDian, getTrainSoloReward, getTrainBaseByLv, gameData } from '../../../pubUtils/data';
|
||||
import { getArmyTrainJuDian, getTrainBaseByLv, gameData } from '../../../pubUtils/data';
|
||||
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
@@ -20,7 +20,7 @@ import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { pushGuildTrainSucMsg } from '../../../services/chatService';
|
||||
import { checkActivityTask, checkTask } from '../../../services/taskService';
|
||||
import { sendPopUpActivityData } from '../../../services/guildActivityService';
|
||||
import { guildInter } from '../../../pubUtils/interface';
|
||||
import { guildInter, RewardInter } from '../../../pubUtils/interface';
|
||||
import { getGuildTrainGkInfo } from '../../../pubUtils/data';
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -132,6 +132,7 @@ export class GuildTrainHandler {
|
||||
* @param session
|
||||
*/
|
||||
async trainBattleEnd(msg: guildInter & { battleCode: string, isSuccess: boolean }, session: BackendSession) {
|
||||
|
||||
const { battleCode, isSuccess, myUserGuild } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
@@ -167,6 +168,8 @@ export class GuildTrainHandler {
|
||||
let res: any = await lockData(serverId, DATA_NAME.TRAIN, code + '_' + trainId);//加锁
|
||||
if (!!res.err)
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
try {
|
||||
|
||||
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
||||
if (!guildTrain) {
|
||||
res.releaseCallback();//解锁
|
||||
@@ -179,19 +182,19 @@ export class GuildTrainHandler {
|
||||
}
|
||||
|
||||
let { trainInstances, soloRewardRatio } = getArmyTrainJuDian(trainId);
|
||||
let dicWar = gameData.war.get(battleRecord.battleId);
|
||||
if(!dicWar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let instance = findWhere(trainInstances, { hid });
|
||||
if (!instance) {//校验是否存在该关卡
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let trainSoloReward = getTrainSoloReward(difficulty);
|
||||
if (!trainSoloReward) {//获得个人奖励信息
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let addScore = Math.floor((isSuccess ? trainSoloReward.winScore : trainSoloReward.failScore));//个人获得积分,也是压制进度
|
||||
let score = isSuccess ? dicWar.winReward.get(TRAIN_REWARD_TYPE.SCORE) : dicWar.failReward.get(TRAIN_REWARD_TYPE.SCORE);
|
||||
let item = isSuccess ? dicWar.winReward.get(TRAIN_REWARD_TYPE.ITEM) : dicWar.failReward.get(TRAIN_REWARD_TYPE.ITEM);
|
||||
let addScore = Math.floor(<number>score);//个人获得积分,也是压制进度
|
||||
//个人功勋奖励
|
||||
let goods = await addItems(roleId, roleName, sid, [{ id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR), count: Math.floor((isSuccess ? trainSoloReward.winHonour : trainSoloReward.failHonour) * soloRewardRatio) }], ITEM_CHANGE_REASON.TRAIN_BATTLE_END);
|
||||
let goods = await addItems(roleId, roleName, sid, <RewardInter[]>item, ITEM_CHANGE_REASON.TRAIN_BATTLE_END);
|
||||
let { isComplete, ranks } = guildTrain;
|
||||
let reports = [];
|
||||
// let index = findIndex(ranks, { roleId });
|
||||
@@ -261,6 +264,11 @@ export class GuildTrainHandler {
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.GUILD_TRAIN, 1)
|
||||
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
|
||||
} catch(e) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.INTERNAL_ERR);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 领取练兵场宝箱 hid:副本id,index:领取位置
|
||||
|
||||
@@ -4,7 +4,7 @@ import { GuildModel } from '../../../db/Guild';
|
||||
import { WishPoolReportModel } from '../../../db/WishPoolReport';
|
||||
import { resResult, genCode } from '../../../pubUtils/util';
|
||||
import { ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
||||
import { getArmyWishPoolBaseByLv, getGoodById } from '../../../pubUtils/data';
|
||||
import { getArmyWishPoolBaseByLv, getGoodById, getWishPoolReward } from '../../../pubUtils/data';
|
||||
import { addItems, checkGoods, checkHeroes } from '../../../services/rewardService';
|
||||
import { IT_TYPE } from '../../../consts/constModules/itemConst';
|
||||
import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
|
||||
@@ -15,6 +15,7 @@ import { getRoleOnlineInfo } from '../../../services/redisService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { guildInter } from '../../../pubUtils/interface';
|
||||
import { getSeconds, getZeroPoint, nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { getHonourObject } from '../../../pubUtils/itemUtils';
|
||||
export default function(app: Application) {
|
||||
return new WishPoolHandler(app);
|
||||
}
|
||||
@@ -97,6 +98,7 @@ export class WishPoolHandler {
|
||||
let { wishRoleId, id, myUserGuild } = msg;
|
||||
const dntRoleId: string = session.get('roleId');
|
||||
const dntRoleName: string = session.get('roleName');
|
||||
const sid: string = session.get('sid');
|
||||
if (wishRoleId == dntRoleId)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let role = await RoleModel.findByRoleId(wishRoleId);
|
||||
@@ -118,16 +120,21 @@ export class WishPoolHandler {
|
||||
return resResult(STATUS.WRONG_PARMS);//没有该许愿
|
||||
if (wishGood.receiveCnt >= wishGood.count)
|
||||
return resResult(STATUS.HAS_RECEIVE_WISH_GOOD);//已经收到
|
||||
|
||||
let dicWishReward = getWishPoolReward(wishGood.goodId);
|
||||
if(!dicWishReward) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let { wishDntCnt } = await UserGuildModel.donateGoods(dntRoleId, 1, 'wishDntCnt');
|
||||
let { wishGoods: resWishGoods } = await UserGuildModel.donateUpdate(wishRoleId, dntRoleName, id, 'wishGoods');
|
||||
|
||||
let hisOnlineInfo = await getRoleOnlineInfo(wishRoleId);
|
||||
if(hisOnlineInfo.isOnline && hisOnlineInfo.sid) {
|
||||
await addItems(wishRoleId, role.roleName, hisOnlineInfo.sid , [{ id : wishGood.goodId, count: 1 }], ITEM_CHANGE_REASON.WISH_POOL_DONATE);
|
||||
// await addItems(wishRoleId, role.roleName, hisOnlineInfo.sid , [{ id : wishGood.goodId, count: 1 }], ITEM_CHANGE_REASON.WISH_POOL_DONATE);
|
||||
this.app.channelService.pushMessageByUids('onWishGoodsRecive', resResult(STATUS.SUCCESS, { wishGoods: resWishGoods }), [{uid:wishRoleId, sid: hisOnlineInfo.sid}]);
|
||||
}
|
||||
await WishPoolReportModel.addReport(code, wishRoleId, role.roleName , dntRoleId, dntRoleName, wishGood.goodId, 1);
|
||||
return resResult(STATUS.SUCCESS, { wishDntCnt, updateWishGoods: resWishGoods.map(({type, goodId, count, receiveCnt, drawCnt, id})=>{
|
||||
let goods = await addItems(dntRoleId, dntRoleName, sid, [getHonourObject(dicWishReward.honourReward)], ITEM_CHANGE_REASON.WISH_POOL_DONATE);
|
||||
return resResult(STATUS.SUCCESS, { wishDntCnt, goods, updateWishGoods: resWishGoods.map(({type, goodId, count, receiveCnt, drawCnt, id})=>{
|
||||
return { type, goodId, count, receiveCnt, drawCnt, id, roleId: wishRoleId };
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user