军团限时付费:退出军团后减少付费人数

This commit is contained in:
luying
2022-09-27 17:36:50 +08:00
parent 53a252a392
commit 2d2fd1014a
4 changed files with 63 additions and 21 deletions

View File

@@ -40,25 +40,48 @@ export async function getGuildPayDataShow(serverId: number, activityId: number,
export async function addGuildPay(role: RoleType, price: number) {
let { hasGuild, roleId, roleName, serverId, guildCode } = role;
if(hasGuild) { // 向全军团推送充值的人
let { openTime } = await ServerlistModel.findByServerId(serverId);
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY);
let pushResult: pushActivityInter[] = [];
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
let obj = new GuildPayData(activityData, 0, openTime * 1000);
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 } });
}
if(!hasGuild) return;
let serverTime = await getServerCreateTime(serverId);
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY);
let pushResult: pushActivityInter[] = [];
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
let obj = new GuildPayData(activityData, 0, serverTime);
if(obj && obj.canPay()) {
let { isNew, result } = await ActivityGuildPayModel.addRecord(serverId, activityId, obj.roundIndex, guildCode, {
roleId, roleName, price, hasQuit: false
});
if(isNew) {
let { memberRecord = [] } = result;
let payMemberCnt = memberRecord.filter(member => !member.hasQuit).length;
pushResult.push({ activityId, activityType, param: { payMember: roleName, payMemberCnt } });
}
}
await pushActivitiesToGuild(pushResult, guildCode);
}
console.log('##### addGuildPay', pushResult.length)
await pushActivitiesToGuild(pushResult, guildCode);
}
export async function guildPayQuitGuild(serverId: number, guildCode: string, roleId: string) {
if(!guildCode) return;
let serverTime = await getServerCreateTime(serverId);
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY);
let pushResult: pushActivityInter[] = [];
for(let activityData of activities) {
let { activityId, type: activityType } = activityData;
let obj = new GuildPayData(activityData, 0, serverTime);
if(obj && obj.canPay()) {
let result = await ActivityGuildPayModel.quitGuild(serverId, activityId, obj.roundIndex, guildCode, roleId);
if(result) {
let { memberRecord = [] } = result;
let records = memberRecord.filter(member => !member.hasQuit);
let payRecord = records.map(member => member.roleName);
pushResult.push({ activityId, activityType, param: { payRecord, payMemberCnt: payRecord.length } });
}
}
}
await pushActivitiesToGuild(pushResult, guildCode);
}
export async function changeGuildActivity(guildCode: string, serverId: number, roleId: string, sid: string) {