活动:军团限时付费活动

This commit is contained in:
luying
2022-03-09 10:50:09 +08:00
parent 130e2a16bd
commit dafc77954b
6 changed files with 37 additions and 6 deletions

View File

@@ -63,7 +63,7 @@ export class LuckyTurntableHandler {
await ActivityTurntableModel.updateData(serverId, activityId, roleId, pick(playerData, ['todayCount', 'count', 'records', 'greatRewardCount']));
await addItems(roleId, roleName, sid, goodResult, ITEM_CHANGE_REASON.ACT_TURNTABLE_PULL);
return resResult(STATUS.SUCCESS, { result, records });
return resResult(STATUS.SUCCESS, { result, records, todayCount: playerData.todayCount, count: playerData.count });
}

View File

@@ -92,6 +92,7 @@ export class GuildRemote {
*/
private pushMessage(guildCode: string, path: string, message: any) {
let channel = this.getChannel(guildCode);
console.log('##### channel', guildCode, channel)
if (!!channel) {
channel.pushMessage(path, resResult(STATUS.SUCCESS, message));
}
@@ -453,7 +454,7 @@ export class GuildRemote {
* @param path 推送地址
* @param param 内容
*/
public async pushActivityoGuild(guildCode: string, path: string, param: any) {
public async pushActivityToGuild(guildCode: string, path: string, param: any) {
try {
this.pushMessage(guildCode, path, param);
} catch(e) {

View File

@@ -27,6 +27,7 @@ import { checkActivityTask, checkTask } from '../../../services/taskService';
import { guildInter } from '../../../pubUtils/interface';
import * as dicParam from '../../../pubUtils/dicParam';
import { reportTAEvent } from '../../../services/sdkService';
import { changeGuildActivity, guildDismisActivity } from '../../../services/activity/guildPayService';
export default function (app: Application) {
@@ -575,6 +576,7 @@ export class GuildHandler {
// 删除channel
let chatSid = await getGuildChannelSid(code);
await guildDismisActivity(code, serverId);
this.app.rpc.chat.guildRemote.dismiss.toServer(chatSid, code);
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId });
@@ -620,6 +622,7 @@ export class GuildHandler {
setUserGuildSession(session, null);
reportTAEvent(roleId, TA_EVENT.GUILD_QUIT, { name: guild.name, way: GUILD_QUIT_WAY.QUIT }, ip);
changeGuildActivity('', serverId, roleId, sid);
return resResult(STATUS.SUCCESS, { hasGuild: role.hasGuild });
}
@@ -647,14 +650,16 @@ export class GuildHandler {
await removeTrainRank(code, roleId, guild.trainId);
let chatSid = await getGuildChannelSid(code);
const { isOnline, sid } = await getRoleOnlineInfo(roleId);
const { isOnline, sid } = await getRoleOnlineInfo(memberRoleId);
this.app.rpc.chat.guildRemote.memberQuit.toServer(chatSid, code, roleId, guild, sid);
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [role.roleName]);
this.app.rpc.chat.guildRemote.addRec.toServer(chatSid, rec);
if(isOnline)
if(isOnline) {
await this.app.rpc.connector.connectorRemote.setOtherUserGuildSession.toServer(sid,[{ roleId: memberRoleId, userGuild }]);
changeGuildActivity('', serverId, memberRoleId, sid);
}
await sendMailByContent(MAIL_TYPE.GUILD_BE_KICK, memberRoleId, { sendName: roleName, params: [guild.name] });
reportTAEvent(memberRoleId, TA_EVENT.GUILD_QUIT, { name: guild.name, way: GUILD_QUIT_WAY.KICK });

View File

@@ -364,6 +364,7 @@ interface pushActivityParamInter {
totalPoint?: number; // 新将好礼type37和战令type42更新后的积分
payMemberCnt?: number; // 军团充值活动,你的军团充值的人数
payMember?: string; // 军团充值活动充值人员名字添加到payRecord里面
payRecord?: string[]; // 军团全部充值人名字
}
export interface pushActivityInter {
@@ -382,6 +383,7 @@ export async function pushActivities(arr: pushActivityInter[], roleId: string, s
sid = onlineUser.sid;
}
if(!!sid && arr.length > 0) {
console.log(roleId, sid)
pinus.app.get('channelService').pushMessageByUids('onActivityUpdate',
resResult(STATUS.SUCCESS, {
activities: arr
@@ -394,7 +396,7 @@ export async function pushActivitiesToGuild(arr: pushActivityInter[], guildCode:
let chatSid = await getGuildChannelSid(guildCode);
console.log('####', chatSid, arr)
if(!!chatSid && arr.length > 0) {
pinus.app.rpc.chat.guildRemote.sendMailToGuild.toServer(chatSid, guildCode, 'onActivityUpdate',
pinus.app.rpc.chat.guildRemote.pushActivityToGuild.toServer(chatSid, guildCode, 'onActivityUpdate',
resResult(STATUS.SUCCESS, {
activities: arr
}),

View File

@@ -2,7 +2,7 @@ import { ACTIVITY_TYPE } from "../../consts";
import { ActivityGuildPayModel } from "../../db/ActivityGuildPay";
import { RoleType } from "../../db/Role";
import { GuildPayData } from "../../domain/activityField/guildPay";
import { getActivitiesByType, getActivityById, pushActivitiesToGuild, pushActivityInter } from "./activityService";
import { getActivitiesByType, getActivityById, pushActivities, pushActivitiesToGuild, pushActivityInter } from "./activityService";
import { ServerlistModel } from '../../db/Serverlist';
import { ActivityGuildPayRecordModel } from "../../db/ActivityGuildPayRecord";
@@ -58,4 +58,25 @@ export async function addGuildPay(role: RoleType, price: number) {
}
await pushActivitiesToGuild(pushResult, guildCode);
}
}
export async function changeGuildActivity(guildCode: string, serverId: number, roleId: string, sid: string) {
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY);
let pushResult: pushActivityInter[] = [];
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
let obj = await getGuildPayData(serverId, activityId, roleId, guildCode);
pushResult.push({ activityId, activityType, param: { payRecord: obj.payRecord, payMemberCnt: obj.payMemberCnt } });
}
await pushActivities(pushResult, roleId, sid);
}
export async function guildDismisActivity(guildCode: string, serverId: number) {
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY);
let pushResult: pushActivityInter[] = [];
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
pushResult.push({ activityId, activityType, param: { payRecord: [], payMemberCnt: 0 } });
}
await pushActivitiesToGuild(pushResult, guildCode);
}

View File

@@ -19,6 +19,7 @@ import { Rank } from "./rankService";
import { checkActivityTask, checkTask } from "./taskService";
import { CounterModel } from "../db/Counter";
import { getAuction } from "./auctionService";
import { changeGuildActivity } from "./activity/guildPayService";
export async function getMyGuildInfo(roleId: string, sid: string, userGuild: UserGuildType, guild: GuildType, serverId: number, session: FrontendOrBackendSession) {
@@ -121,6 +122,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
session.set('guildCode', code);
let auctionInfo = await getAuction(code, session);
pinus.app.channelService.pushMessageByUids('onAuctionUpdate', resResult(STATUS.SUCCESS, auctionInfo), [{ uid: roleId, sid }]);
changeGuildActivity(code, serverId, roleId, sid);
}
//成长任务-加入军团