活动:礼包添加批量参数
This commit is contained in:
@@ -76,6 +76,7 @@ export class RefreshTaskHandler {
|
|||||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||||
param: { activityId, roundIndex, pageIndex, id, type },
|
param: { activityId, roundIndex, pageIndex, id, type },
|
||||||
item: dailyItemData,
|
item: dailyItemData,
|
||||||
|
totalPoint: playerData.totalPoint + dailyItemData.point,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import { getDonation } from '../../../services/donateService';
|
|||||||
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
||||||
import { ARMY } from '../../../pubUtils/dicParam';
|
import { ARMY } from '../../../pubUtils/dicParam';
|
||||||
import { addActive } from '../../../services/guildService'
|
import { addActive } from '../../../services/guildService'
|
||||||
import { checkTask } from '../../../services/taskService';
|
import { checkActivityTask, checkTask } from '../../../services/taskService';
|
||||||
export default function(app: Application) {
|
export default function (app: Application) {
|
||||||
return new DonationHandler(app);
|
return new DonationHandler(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,14 +35,14 @@ export class DonationHandler {
|
|||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
const { guildCode: code, donateCnt, receiveBoxs } = userGuild;
|
const { guildCode: code, donateCnt, receiveBoxs } = userGuild;
|
||||||
let { donateFund, reports, donationLv } = await getDonation(code, serverId);
|
let { donateFund, reports, donationLv } = await getDonation(code, serverId);
|
||||||
return resResult(STATUS.SUCCESS, { receiveBoxs, donateFund, reports, donateCnt:donateCnt||0, donationLv});
|
return resResult(STATUS.SUCCESS, { receiveBoxs, donateFund, reports, donateCnt: donateCnt || 0, donationLv });
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 捐献
|
* 捐献
|
||||||
* @param msg
|
* @param msg
|
||||||
* @param session
|
* @param session
|
||||||
*/
|
*/
|
||||||
async donate(msg: {id: number}, session: BackendSession) {
|
async donate(msg: { id: number }, session: BackendSession) {
|
||||||
const { id } = msg;
|
const { id } = msg;
|
||||||
const roleId: string = session.get('roleId');
|
const roleId: string = session.get('roleId');
|
||||||
const roleName: string = session.get('roleName');
|
const roleName: string = session.get('roleName');
|
||||||
@@ -59,11 +59,11 @@ export class DonationHandler {
|
|||||||
let { donateReward } = getArmyDonateBaseByLv(donationLv);
|
let { donateReward } = getArmyDonateBaseByLv(donationLv);
|
||||||
let { rewardGood, rewardFund, cosume } = donateReward.get(id);
|
let { rewardGood, rewardFund, cosume } = donateReward.get(id);
|
||||||
let result = await handleCost(roleId, sid, [cosume]);
|
let result = await handleCost(roleId, sid, [cosume]);
|
||||||
if(!result)
|
if (!result)
|
||||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||||
let { donateCnt } = await UserGuildModel.donateFund(roleId, 1);
|
let { donateCnt } = await UserGuildModel.donateFund(roleId, 1);
|
||||||
|
|
||||||
let { donateFund, reports } = await DonationModel.donation(code, rewardFund, { reports: {id, roleName, time: nowSeconds()}});
|
let { donateFund, reports } = await DonationModel.donation(code, rewardFund, { reports: { id, roleName, time: nowSeconds() } });
|
||||||
let goods = [];
|
let goods = [];
|
||||||
if (!!rewardGood)
|
if (!!rewardGood)
|
||||||
goods = await addItems(roleId, roleName, sid, [rewardGood]);
|
goods = await addItems(roleId, roleName, sid, [rewardGood]);
|
||||||
@@ -73,6 +73,8 @@ export class DonationHandler {
|
|||||||
await addActive(roleId, serverId, GUILD_POINT_WAYS.DONATE, id);
|
await addActive(roleId, serverId, GUILD_POINT_WAYS.DONATE, id);
|
||||||
// 任务
|
// 任务
|
||||||
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_DONATE, 1, true, {});
|
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_DONATE, 1, true, {});
|
||||||
|
//活动任务
|
||||||
|
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.GUILD_DONATE, 1);
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, { donateFund, reports, donateCnt, goods });
|
return resResult(STATUS.SUCCESS, { donateFund, reports, donateCnt, goods });
|
||||||
}
|
}
|
||||||
@@ -81,7 +83,7 @@ export class DonationHandler {
|
|||||||
* @param msg
|
* @param msg
|
||||||
* @param session
|
* @param session
|
||||||
*/
|
*/
|
||||||
async receiveBox(msg: {id: number}, session: BackendSession) {
|
async receiveBox(msg: { id: number }, session: BackendSession) {
|
||||||
const { id } = msg;
|
const { id } = msg;
|
||||||
const roleId: string = session.get('roleId');
|
const roleId: string = session.get('roleId');
|
||||||
const roleName: string = session.get('roleName');
|
const roleName: string = session.get('roleName');
|
||||||
@@ -96,9 +98,9 @@ export class DonationHandler {
|
|||||||
let { boxRewards, fund } = getArmyDonateBoxBaseById(id);
|
let { boxRewards, fund } = getArmyDonateBoxBaseById(id);
|
||||||
let { donateFund, donationLv } = await getDonation(code, serverId);
|
let { donateFund, donationLv } = await getDonation(code, serverId);
|
||||||
let { boxRewardRatio, requireRewardRatio } = getArmyDonateBaseByLv(donationLv);
|
let { boxRewardRatio, requireRewardRatio } = getArmyDonateBaseByLv(donationLv);
|
||||||
if (donateFund < Math.floor(fund * (100 + requireRewardRatio)/100) )
|
if (donateFund < Math.floor(fund * (100 + requireRewardRatio) / 100))
|
||||||
return resResult(STATUS.GUILD_DONATE_BOXS_NOT_GOT);
|
return resResult(STATUS.GUILD_DONATE_BOXS_NOT_GOT);
|
||||||
boxRewards = boxRewards.map(({id, count})=>{
|
boxRewards = boxRewards.map(({ id, count }) => {
|
||||||
return { id, count: count * (boxRewardRatio + 100) };
|
return { id, count: count * (boxRewardRatio + 100) };
|
||||||
});
|
});
|
||||||
resReceiveBoxs.push(id);
|
resReceiveBoxs.push(id);
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ import { checkEvent, checkEventStatus, getEventSuccessStatus, getEvent, checkQui
|
|||||||
import { addItems } from '../../../services/rewardService';
|
import { addItems } from '../../../services/rewardService';
|
||||||
import { STATUS } from '../../../consts/statusCode';
|
import { STATUS } from '../../../consts/statusCode';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { checkTask } from '../../../services/taskService';
|
import { checkActivityTask, checkTask } from '../../../services/taskService';
|
||||||
import { gameData } from '../../../pubUtils/data';
|
import { gameData } from '../../../pubUtils/data';
|
||||||
|
|
||||||
export default function(app: Application) {
|
export default function (app: Application) {
|
||||||
return new EventBattleHandler(app);
|
return new EventBattleHandler(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ export class EventBattleHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 主动获取奇遇事件
|
// 主动获取奇遇事件
|
||||||
async getEvents(msg: { }, session: BackendSession) {
|
async getEvents(msg: {}, session: BackendSession) {
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
let roleName = session.get('roleName');
|
let roleName = session.get('roleName');
|
||||||
let eventStatus = session.get('eventStatus');
|
let eventStatus = session.get('eventStatus');
|
||||||
@@ -30,44 +30,44 @@ export class EventBattleHandler {
|
|||||||
|
|
||||||
// 回答问题
|
// 回答问题
|
||||||
async checkAnswer(msg: { eventId: number, eventCode: string, questionId: number, answer: number }, session: BackendSession) {
|
async checkAnswer(msg: { eventId: number, eventCode: string, questionId: number, answer: number }, session: BackendSession) {
|
||||||
const {eventId, eventCode, questionId, answer} = msg;
|
const { eventId, eventCode, questionId, answer } = msg;
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
// let roleName = session.get('roleName');
|
// let roleName = session.get('roleName');
|
||||||
// let eventStatus = session.get('eventStatus');
|
// let eventStatus = session.get('eventStatus');
|
||||||
|
|
||||||
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
|
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
|
||||||
if(!event) {
|
if (!event) {
|
||||||
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
||||||
}
|
}
|
||||||
let { status, type, eventId: dataEventId, question } = event;
|
let { status, type, eventId: dataEventId, question } = event;
|
||||||
|
|
||||||
if(status != EVENT_RECORD_STATUS.WAITING) {
|
if (status != EVENT_RECORD_STATUS.WAITING) {
|
||||||
return resResult(STATUS.EVENT_STATUS_ERROR);
|
return resResult(STATUS.EVENT_STATUS_ERROR);
|
||||||
}
|
}
|
||||||
if(dataEventId != eventId) {
|
if (dataEventId != eventId) {
|
||||||
return resResult(STATUS.EVENT_WRONG_ID);
|
return resResult(STATUS.EVENT_WRONG_ID);
|
||||||
}
|
}
|
||||||
let curQuestion = question.find(cur => cur.id == questionId);
|
let curQuestion = question.find(cur => cur.id == questionId);
|
||||||
if(!curQuestion) return resResult(STATUS.EVENT_QUESTION_NOT_FOUND);
|
if (!curQuestion) return resResult(STATUS.EVENT_QUESTION_NOT_FOUND);
|
||||||
|
|
||||||
let {isCorrect, answerNo} = checkQuiz(questionId, answer);
|
let { isCorrect, answerNo } = checkQuiz(questionId, answer);
|
||||||
let result = await EventRecordModel.saveEventAnswer(eventCode, questionId, isCorrect?EVENT_ANSWER_STATUS.CORRECT:EVENT_ANSWER_STATUS.WRONG);
|
let result = await EventRecordModel.saveEventAnswer(eventCode, questionId, isCorrect ? EVENT_ANSWER_STATUS.CORRECT : EVENT_ANSWER_STATUS.WRONG);
|
||||||
if(!result) {
|
if (!result) {
|
||||||
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
||||||
}
|
}
|
||||||
let { question: newQuestion } = result;
|
let { question: newQuestion } = result;
|
||||||
let isClear = true, allCorrect = true;
|
let isClear = true, allCorrect = true;
|
||||||
for(let {status} of newQuestion) {
|
for (let { status } of newQuestion) {
|
||||||
if(status) {
|
if (status) {
|
||||||
if(status == EVENT_ANSWER_STATUS.WRONG) {
|
if (status == EVENT_ANSWER_STATUS.WRONG) {
|
||||||
allCorrect = false;
|
allCorrect = false;
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
isClear = false; allCorrect = false;
|
isClear = false; allCorrect = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isClear) {
|
if (isClear) {
|
||||||
await EventRecordModel.setStatusByCode(roleId, eventCode, allCorrect?EVENT_RECORD_STATUS.BATTLE_SUCCESS:EVENT_RECORD_STATUS.BATTLE_FAIL);
|
await EventRecordModel.setStatusByCode(roleId, eventCode, allCorrect ? EVENT_RECORD_STATUS.BATTLE_SUCCESS : EVENT_RECORD_STATUS.BATTLE_FAIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, { eventCode, eventId, questionId, isCorrect, answerNo });
|
return resResult(STATUS.SUCCESS, { eventCode, eventId, questionId, isCorrect, answerNo });
|
||||||
@@ -75,59 +75,62 @@ export class EventBattleHandler {
|
|||||||
|
|
||||||
// 获取关卡列表
|
// 获取关卡列表
|
||||||
async receiveEventReward(msg: { eventId: number, eventCode: string }, session: BackendSession) {
|
async receiveEventReward(msg: { eventId: number, eventCode: string }, session: BackendSession) {
|
||||||
const {eventId, eventCode} = msg;
|
const { eventId, eventCode } = msg;
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
let roleName = session.get('roleName');
|
let roleName = session.get('roleName');
|
||||||
let eventStatus = session.get('eventStatus');
|
let eventStatus = session.get('eventStatus');
|
||||||
let sid = session.get('sid');
|
let sid = session.get('sid');
|
||||||
|
const serverId = session.get('serverId');
|
||||||
const funcs: number[] = session.get('funcs');
|
const funcs: number[] = session.get('funcs');
|
||||||
|
|
||||||
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
|
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
|
||||||
if(!event) {
|
if (!event) {
|
||||||
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
return resResult(STATUS.EVENT_RECORD_NOT_FOUND);
|
||||||
}
|
}
|
||||||
let { status, type, eventId: dataEventId, question } = event;
|
let { status, type, eventId: dataEventId, question } = event;
|
||||||
|
|
||||||
let flag = checkEventStatus(type, status);
|
let flag = checkEventStatus(type, status);
|
||||||
if(!flag) {
|
if (!flag) {
|
||||||
return resResult(STATUS.EVENT_STATUS_ERROR);
|
return resResult(STATUS.EVENT_STATUS_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
let checkResult = getEventSuccessStatus(type, status, question);
|
let checkResult = getEventSuccessStatus(type, status, question);
|
||||||
if(checkResult.status == -1) {
|
if (checkResult.status == -1) {
|
||||||
return resResult(STATUS.EVENT_QUESTION_NO_ANSWER);
|
return resResult(STATUS.EVENT_QUESTION_NO_ANSWER);
|
||||||
}
|
}
|
||||||
let isSuccess = checkResult.isSuccess;
|
let isSuccess = checkResult.isSuccess;
|
||||||
|
|
||||||
if(dataEventId != eventId) {
|
if (dataEventId != eventId) {
|
||||||
return resResult(STATUS.EVENT_WRONG_ID);
|
return resResult(STATUS.EVENT_WRONG_ID);
|
||||||
}
|
}
|
||||||
let dicEvent = gameData.event.get(eventId);
|
let dicEvent = gameData.event.get(eventId);
|
||||||
if(!dicEvent) {
|
if (!dicEvent) {
|
||||||
return resResult(STATUS.EVENT_INFO_NOT_FOUND);
|
return resResult(STATUS.EVENT_INFO_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存状态
|
// 保存状态
|
||||||
let result = await EventRecordModel.setStatusByCode(roleId, eventCode, isSuccess?EVENT_RECORD_STATUS.SUCCESS_RECEIVED:EVENT_RECORD_STATUS.FAIL_RECEIVED);
|
let result = await EventRecordModel.setStatusByCode(roleId, eventCode, isSuccess ? EVENT_RECORD_STATUS.SUCCESS_RECEIVED : EVENT_RECORD_STATUS.FAIL_RECEIVED);
|
||||||
// 保存奖励
|
// 保存奖励
|
||||||
let reward = isSuccess?dicEvent.winReward:dicEvent.loseReward;
|
let reward = isSuccess ? dicEvent.winReward : dicEvent.loseReward;
|
||||||
let goods = await addItems(roleId, roleName, sid, reward);
|
let goods = await addItems(roleId, roleName, sid, reward);
|
||||||
if(eventStatus == EVENT_STATUS.STARTING) { // 如果是第一次开启的挑战,保存成开启状态
|
if (eventStatus == EVENT_STATUS.STARTING) { // 如果是第一次开启的挑战,保存成开启状态
|
||||||
await RoleModel.setEventStatus(roleId, EVENT_STATUS.OPEN);
|
await RoleModel.setEventStatus(roleId, EVENT_STATUS.OPEN);
|
||||||
// 第一场时间挑战完,开始正常刷新事件,所以刷新时间也重置起来
|
// 第一场时间挑战完,开始正常刷新事件,所以刷新时间也重置起来
|
||||||
session.set('eventStatus', EVENT_STATUS.OPEN);
|
session.set('eventStatus', EVENT_STATUS.OPEN);
|
||||||
session.push('eventStatus', () => {});
|
session.push('eventStatus', () => { });
|
||||||
}
|
}
|
||||||
// 推送消息刷新
|
// 推送消息刷新
|
||||||
await checkEvent(session, true);
|
await checkEvent(session, true);
|
||||||
// 任务
|
// 任务
|
||||||
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_EVENT, 1, true, { eventType: dicEvent.eventType })
|
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_EVENT, 1, true, { eventType: dicEvent.eventType })
|
||||||
|
// 活动任务
|
||||||
|
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_EVENT, 1, { eventType: dicEvent.eventType })
|
||||||
return resResult(STATUS.SUCCESS, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
isSuccess,
|
isSuccess,
|
||||||
eventCode: result.eventCode,
|
eventCode: result.eventCode,
|
||||||
eventId: result.eventId,
|
eventId: result.eventId,
|
||||||
status: result.status,
|
status: result.status,
|
||||||
goods
|
goods
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
import { CHANNEL_PREFIX, MSG_SOURCE, CHANNEL_TYPE } from './../../../consts/constModules/chatConst';
|
import { CHANNEL_PREFIX, MSG_SOURCE, CHANNEL_TYPE } from './../../../consts/constModules/chatConst';
|
||||||
import {Application, BackendSession} from 'pinus';
|
import { Application, BackendSession } from 'pinus';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { DEFAULT_MSG_PER_PAGE, STATUS, TASK_TYPE } from '../../../consts';
|
import { DEFAULT_MSG_PER_PAGE, STATUS, TASK_TYPE } from '../../../consts';
|
||||||
import { createAccuseData, createGroupMsg, createPrivateMsg, getPrivateMessages, pushGroupMsgToRoom, pushMsgToRole, updatePrivateMsgReadInfo, recentPrivateChatInfos, recentWorldMsgs, recentSysMsgs, recentGuildMsgs } from '../../../services/chatService';
|
import { createAccuseData, createGroupMsg, createPrivateMsg, getPrivateMessages, pushGroupMsgToRoom, pushMsgToRole, updatePrivateMsgReadInfo, recentPrivateChatInfos, recentWorldMsgs, recentSysMsgs, recentGuildMsgs } from '../../../services/chatService';
|
||||||
import { getSimpleRoleInfo } from '../../../services/roleService';
|
import { getSimpleRoleInfo } from '../../../services/roleService';
|
||||||
import { checkTaskWithArgs } from '../../../services/taskService';
|
import { checkActivityTask, checkTaskWithArgs } from '../../../services/taskService';
|
||||||
|
|
||||||
|
|
||||||
export default function(app: Application) {
|
export default function (app: Application) {
|
||||||
return new ChatHandler(app);
|
return new ChatHandler(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ export class ChatHandler {
|
|||||||
* @param {Object} session
|
* @param {Object} session
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
async send(msg: {content: string , target: string}, session: BackendSession) {
|
async send(msg: { content: string, target: string }, session: BackendSession) {
|
||||||
let rid = session.get('rid');
|
let rid = session.get('rid');
|
||||||
let username = session.uid.split('*')[0];
|
let username = session.uid.split('*')[0];
|
||||||
let channelService = this.app.get('channelService');
|
let channelService = this.app.get('channelService');
|
||||||
@@ -48,7 +48,7 @@ export class ChatHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async send2(msg: {content: string , target: string}, session: BackendSession) {
|
async send2(msg: { content: string, target: string }, session: BackendSession) {
|
||||||
let rid = session.get('rid');
|
let rid = session.get('rid');
|
||||||
let username = session.uid.split('*')[0];
|
let username = session.uid.split('*')[0];
|
||||||
let channelService = this.app.get('channelService');
|
let channelService = this.app.get('channelService');
|
||||||
@@ -97,7 +97,9 @@ export class ChatHandler {
|
|||||||
if (!msgData) return resResult(STATUS.WRONG_PARMS);
|
if (!msgData) return resResult(STATUS.WRONG_PARMS);
|
||||||
await pushGroupMsgToRoom(msgData);
|
await pushGroupMsgToRoom(msgData);
|
||||||
// 任务
|
// 任务
|
||||||
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get(channel) ]);
|
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [CHANNEL_TYPE.get(channel)]);
|
||||||
|
//活动任务
|
||||||
|
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.CHAT, 1, { chatType: CHANNEL_TYPE.get(channel) })
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,6 +112,7 @@ export class ChatHandler {
|
|||||||
async sendPrivateMessage(msg: { type: number, content: string, targetRoleId: string, targetMsgCode: string }, session: BackendSession) {
|
async sendPrivateMessage(msg: { type: number, content: string, targetRoleId: string, targetMsgCode: string }, session: BackendSession) {
|
||||||
const { type, content, targetRoleId, targetMsgCode } = msg;
|
const { type, content, targetRoleId, targetMsgCode } = msg;
|
||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
|
const serverId = session.get('serverId');
|
||||||
const roleName = session.get('roleName');
|
const roleName = session.get('roleName');
|
||||||
const funcs: number[] = session.get('funcs');
|
const funcs: number[] = session.get('funcs');
|
||||||
const sid = session.get('sid');
|
const sid = session.get('sid');
|
||||||
@@ -118,7 +121,10 @@ export class ChatHandler {
|
|||||||
if (!msgData) return resResult(STATUS.WRONG_PARMS);
|
if (!msgData) return resResult(STATUS.WRONG_PARMS);
|
||||||
|
|
||||||
// 任务
|
// 任务
|
||||||
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get('private') ]);
|
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [CHANNEL_TYPE.get('private')]);
|
||||||
|
//活动任务
|
||||||
|
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.CHAT, 1, { chatType: CHANNEL_TYPE.get('private') })
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, msgData);
|
return resResult(STATUS.SUCCESS, msgData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +147,7 @@ export class ChatHandler {
|
|||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
const roleName = session.get('roleName');
|
const roleName = session.get('roleName');
|
||||||
|
|
||||||
const recentPrivateChats = await recentPrivateChatInfos(roleId, roleName)||[];
|
const recentPrivateChats = await recentPrivateChatInfos(roleId, roleName) || [];
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
recentPrivateChats
|
recentPrivateChats
|
||||||
@@ -169,7 +175,7 @@ export class ChatHandler {
|
|||||||
* @param {{targetRoleId: string, fromSeqId: number, count: number}} msg 聊天对象;聊天消息的顺序 id,不传为从最新开始;count 为消息条数
|
* @param {{targetRoleId: string, fromSeqId: number, count: number}} msg 聊天对象;聊天消息的顺序 id,不传为从最新开始;count 为消息条数
|
||||||
* @memberof ChatHandler
|
* @memberof ChatHandler
|
||||||
*/
|
*/
|
||||||
async getPrivateMessage(msg: {targetRoleId: string, fromSeqId: number, count: number}, session: BackendSession) {
|
async getPrivateMessage(msg: { targetRoleId: string, fromSeqId: number, count: number }, session: BackendSession) {
|
||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
const { targetRoleId, fromSeqId = Infinity, count = DEFAULT_MSG_PER_PAGE } = msg;
|
const { targetRoleId, fromSeqId = Infinity, count = DEFAULT_MSG_PER_PAGE } = msg;
|
||||||
const msgs = await getPrivateMessages(roleId, targetRoleId, fromSeqId, count);
|
const msgs = await getPrivateMessages(roleId, targetRoleId, fromSeqId, count);
|
||||||
@@ -201,7 +207,7 @@ export class ChatHandler {
|
|||||||
* @returns
|
* @returns
|
||||||
* @memberof ChatHandler
|
* @memberof ChatHandler
|
||||||
*/
|
*/
|
||||||
async accuse(msg: {targetRoleId: string, targetMsgCode: string; reason: number}, session: BackendSession) {
|
async accuse(msg: { targetRoleId: string, targetMsgCode: string; reason: number }, session: BackendSession) {
|
||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
const { targetRoleId, targetMsgCode, reason } = msg;
|
const { targetRoleId, targetMsgCode, reason } = msg;
|
||||||
const accuseRec = await createAccuseData(roleId, targetRoleId, targetMsgCode, reason);
|
const accuseRec = await createAccuseData(roleId, targetRoleId, targetMsgCode, reason);
|
||||||
|
|||||||
@@ -210,10 +210,10 @@ export class orderHandler {
|
|||||||
* @param {BackendSession} session
|
* @param {BackendSession} session
|
||||||
* @memberof orderHandler
|
* @memberof orderHandler
|
||||||
*/
|
*/
|
||||||
async debugOrder(msg: { productID: string, magicWord: string, paramStr: string }, session: BackendSession) {
|
async debugOrder(msg: { productID: string, magicWord: string, paramStr: string, activityId: number }, session: BackendSession) {
|
||||||
const { magicWord, productID, paramStr } = msg;
|
const { magicWord, productID, paramStr, activityId } = msg;
|
||||||
if (magicWord !== DEBUG_MAGIC_WORD) {
|
if (magicWord !== DEBUG_MAGIC_WORD || !activityId) {
|
||||||
return resResult(STATUS.TOKEN_ERR);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
}
|
}
|
||||||
|
|
||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
@@ -241,13 +241,13 @@ export class orderHandler {
|
|||||||
let orderID = '';//平台订单号
|
let orderID = '';//平台订单号
|
||||||
let sdkOrderInfo = null;//客户端需要的平台订单信息
|
let sdkOrderInfo = null;//客户端需要的平台订单信息
|
||||||
|
|
||||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
// let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, productType, -1);
|
// let activityArray: ActivityModelType[] = await ActivityModel.findActivityByType(activityGroupId, productType, -1);
|
||||||
if (activityArray.length === 0) {
|
// if (activityArray.length === 0) {
|
||||||
return resResult(STATUS.ACTIVITY_MISSING);
|
// return resResult(STATUS.ACTIVITY_MISSING);
|
||||||
}
|
// }
|
||||||
let activityData = activityArray[0];
|
let activityData = await ActivityModel.findActivity(activityId);
|
||||||
let activityId = activityData.activityId;
|
if (!activityData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||||
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message);
|
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message);
|
||||||
|
|
||||||
//订单成功
|
//订单成功
|
||||||
|
|||||||
@@ -29,22 +29,33 @@ export class ItemHandler {
|
|||||||
|
|
||||||
|
|
||||||
// 道具的使用
|
// 道具的使用
|
||||||
public async useItem(msg: { id: number, selected: Array<number> }, session: BackendSession) {
|
public async useItem(msg: { id: number, selected: Array<number>, count: number }, session: BackendSession) {
|
||||||
let { id, selected } = msg;
|
let { id, selected, count } = msg;
|
||||||
const roleId = session.get('roleId');
|
const roleId = session.get('roleId');
|
||||||
const serverId = session.get('serverId');
|
const serverId = session.get('serverId');
|
||||||
const sid = session.get('sid');
|
const sid = session.get('sid');
|
||||||
const roleName = session.get('roleName');
|
const roleName = session.get('roleName');
|
||||||
const funcs = session.get('funcs');
|
const funcs = session.get('funcs');
|
||||||
|
|
||||||
let consumeResult = await handleCost(roleId, sid, [{ id: id, count: 1 }]);
|
if (count > 0) {
|
||||||
if (!consumeResult) return resResult(STATUS.ACTIVITY_RES_NOT_ENOUGH);
|
// let consumeResult = await handleCost(roleId, sid, [{ id: id, count: count }]);
|
||||||
|
// if (!consumeResult) return resResult(STATUS.ACTIVITY_RES_NOT_ENOUGH);
|
||||||
|
|
||||||
let dicGoods = gameData.goods.get(id);
|
let dicGoods = gameData.goods.get(id);
|
||||||
let giftID = dicGoods.gift;
|
if (!dicGoods) {
|
||||||
let result = await useGiftPackage(roleId, roleName, sid, serverId, funcs, giftID, selected)
|
return resResult(STATUS.ACTIVITY_DATA_ERROR);
|
||||||
|
}
|
||||||
|
let giftID = dicGoods.gift;
|
||||||
|
if (!giftID) {
|
||||||
|
return resResult(STATUS.NOT_GIFTPACKAGE);
|
||||||
|
}
|
||||||
|
let result = await useGiftPackage(roleId, roleName, sid, serverId, funcs, giftID, selected, count)
|
||||||
|
|
||||||
|
return resResult(STATUS.SUCCESS, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@ export async function getActivity(serverId: number, roleId: string, activityId:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
console.log('未知活动类型.........')
|
console.log('未知活动类型.........', activityType)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,9 +14,10 @@ import { decodeArrayListStr } from '../pubUtils/util';
|
|||||||
* @param giftID 礼包id
|
* @param giftID 礼包id
|
||||||
* @param roleId 角色id
|
* @param roleId 角色id
|
||||||
* @param roleName 角色名称
|
* @param roleName 角色名称
|
||||||
|
* @param giftCount 一共消耗多少个礼包
|
||||||
* @param sid
|
* @param sid
|
||||||
*/
|
*/
|
||||||
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = []) {
|
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = [], giftCount: number) {
|
||||||
console.log("bbbbbbbb", giftID, selected)
|
console.log("bbbbbbbb", giftID, selected)
|
||||||
let result = { goods: [], addHeros: [] }
|
let result = { goods: [], addHeros: [] }
|
||||||
let giftPackageData = gameData.giftPackage.get(giftID);
|
let giftPackageData = gameData.giftPackage.get(giftID);
|
||||||
@@ -29,7 +30,16 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
|||||||
switch (giftType) {
|
switch (giftType) {
|
||||||
case GIFT_PACKAGE_TYPE.ALL://全部
|
case GIFT_PACKAGE_TYPE.ALL://全部
|
||||||
{
|
{
|
||||||
result = await addReward(roleId, roleName, sid, serverId, funcs, reward);
|
let allReward = [];
|
||||||
|
if (giftCount > 1) {
|
||||||
|
for (let obj of reward) {
|
||||||
|
allReward.push({ type: obj.type, id: obj.id, count: obj.count * giftCount })
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
allReward = reward;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GIFT_PACKAGE_TYPE.SELECTED_X://手选
|
case GIFT_PACKAGE_TYPE.SELECTED_X://手选
|
||||||
@@ -39,16 +49,27 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let selectedReward = getSelectedReward(giftPackageData, selected)
|
let selectedReward = getSelectedReward(giftPackageData, selected)
|
||||||
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
|
let allReward = [];
|
||||||
|
if (giftCount > 1) {
|
||||||
|
for (let obj of selectedReward) {
|
||||||
|
allReward.push({ type: obj.type, id: obj.id, count: obj.count * giftCount })
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
allReward = selectedReward;
|
||||||
|
}
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GIFT_PACKAGE_TYPE.RANDOM_X://随机
|
case GIFT_PACKAGE_TYPE.RANDOM_X://随机
|
||||||
{
|
{
|
||||||
let count = giftPackageData.count;//随机个数
|
let count = giftPackageData.count;//随机个数
|
||||||
let randomArray = randomSelectedData(count);
|
let allReward = [];
|
||||||
let selectedReward = getSelectedReward(giftPackageData, randomArray)
|
for (let i = 0; i < giftCount; i++) {
|
||||||
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
|
let selectedArray = randomSelectedData(giftPackageData.reward.length, count);
|
||||||
|
let selectedReward = getSelectedReward(giftPackageData, selectedArray)
|
||||||
|
allReward = allReward.concat(selectedReward);
|
||||||
|
}
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -114,10 +135,15 @@ export function getSelectedReward(giftData: DicGiftPackage, selected: Array<numb
|
|||||||
return selectedReward;
|
return selectedReward;
|
||||||
}
|
}
|
||||||
|
|
||||||
function randomSelectedData(count: number) {
|
function randomSelectedData(total: number, count: number) {
|
||||||
let arr = [];
|
var selected: number[] = []; //temp存放生成的随机数组
|
||||||
|
var arr = Array.from({ length: total }, (v, k) => k);
|
||||||
return arr;
|
for (let i = 0; i < count; i++) {
|
||||||
|
var num = Math.floor(Math.random() * arr.length); //生成随机数num
|
||||||
|
selected.push(arr[num]); //获取arr[num]并放入temp
|
||||||
|
arr.splice(num, 1);
|
||||||
|
}
|
||||||
|
return selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
//数据格式转换'类型&id&数量|类型&id&数量|' ->> Array<RewardParam> 活动奖励
|
//数据格式转换'类型&id&数量|类型&id&数量|' ->> Array<RewardParam> 活动奖励
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
|||||||
//统计装备
|
//统计装备
|
||||||
if (equipInfos.length > 0) {
|
if (equipInfos.length > 0) {
|
||||||
let { serverId } = await RoleModel.findByRoleId(roleId);
|
let { serverId } = await RoleModel.findByRoleId(roleId);
|
||||||
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos })
|
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos.map(obj => { return { quality: obj.quality } }) })
|
||||||
}
|
}
|
||||||
|
|
||||||
//货币推送
|
//货币推送
|
||||||
|
|||||||
@@ -646,7 +646,7 @@ export enum TASK_TYPE {
|
|||||||
EQUIP_QUALITY_COUNT = 83, // 获得*件品质的*装备
|
EQUIP_QUALITY_COUNT = 83, // 获得*件品质的*装备
|
||||||
HERO_WAKE_UP_COUNT = 84, // *名武将觉醒
|
HERO_WAKE_UP_COUNT = 84, // *名武将觉醒
|
||||||
GUILD_JOIN_ACTIVITY_END = 85, // 参与*军团活动到结束
|
GUILD_JOIN_ACTIVITY_END = 85, // 参与*军团活动到结束
|
||||||
ACTIVITY_RMB = 86, // 某个活动累计充值*元
|
ACTIVITY_RMB = 86, // 累计充值*元
|
||||||
}
|
}
|
||||||
|
|
||||||
// 卡池类型
|
// 卡池类型
|
||||||
|
|||||||
@@ -367,6 +367,7 @@ export const STATUS = {
|
|||||||
MONOPOLY_BANK: { code: 50030, simStr: '已经存过' },
|
MONOPOLY_BANK: { code: 50030, simStr: '已经存过' },
|
||||||
MONOPOLY_BANK_COUNT_ERROR: { code: 50031, simStr: '数量错误' },
|
MONOPOLY_BANK_COUNT_ERROR: { code: 50031, simStr: '数量错误' },
|
||||||
MONOPOLY_BANK_SAVE_MAX: { code: 50032, simStr: '超过最大限制数量' },
|
MONOPOLY_BANK_SAVE_MAX: { code: 50032, simStr: '超过最大限制数量' },
|
||||||
|
NOT_GIFTPACKAGE: { code: 50033, simStr: '非礼包类型' },
|
||||||
// GM后台相关状态 60000 - 69999
|
// GM后台相关状态 60000 - 69999
|
||||||
GM_ERR_PASSWORD: { code: 60001, simStr: '账号或密码错误' },
|
GM_ERR_PASSWORD: { code: 60001, simStr: '账号或密码错误' },
|
||||||
GM_MISS_API: { code: 60002, simStr: '未找到该接口' },
|
GM_MISS_API: { code: 60002, simStr: '未找到该接口' },
|
||||||
|
|||||||
@@ -1176,11 +1176,28 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
|
|||||||
}
|
}
|
||||||
case TASK_TYPE.ACTIVITY_RMB:
|
case TASK_TYPE.ACTIVITY_RMB:
|
||||||
{
|
{
|
||||||
if (paramObj.activityId == param[0]) {
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.BATTLE_EVENT:
|
||||||
|
{
|
||||||
|
if (param[0] == paramObj.eventType) {
|
||||||
addCount = count;
|
addCount = count;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TASK_TYPE.GUILD_DONATE:
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.CHAT:
|
||||||
|
{
|
||||||
|
if (param[0] == paramObj.chatType) {
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
addCount = 0;
|
addCount = 0;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -767,8 +767,8 @@
|
|||||||
{
|
{
|
||||||
"id": 86,
|
"id": 86,
|
||||||
"name": "充值RMB",
|
"name": "充值RMB",
|
||||||
"info": "某个活动充值*元",
|
"info": "累计充值*元",
|
||||||
"param": "activityId&RMB",
|
"param": "RMB",
|
||||||
"string": "累计充值金额",
|
"string": "累计充值金额",
|
||||||
"content": 0,
|
"content": 0,
|
||||||
"condition": "RMB"
|
"condition": "RMB"
|
||||||
|
|||||||
Reference in New Issue
Block a user