活动:根据订单获得活动

This commit is contained in:
luying
2022-07-07 13:36:45 +08:00
parent a3331a2b5d
commit e4d8708898
8 changed files with 126 additions and 30 deletions
@@ -41,6 +41,8 @@ import { getGuildChannelSid } from '../chatService';
import { getGuildPayDataShow } from './guildPayService';
import { PopUpShopItemShow } from '../../domain/activityField/popUpShopField';
import { sendMessageToGuildWithSuc, sendMessageToUserWithSuc } from '../pushService';
import { UserOrderModelType } from '../../db/UserOrder';
import { isArray } from 'underscore';
/**
* 获取活动数据
@@ -56,6 +58,7 @@ export async function getActivity(serverId: number, roleId: string, guildCode: s
case ACTIVITY_TYPE.SIGN_IN://签到 4
case ACTIVITY_TYPE.SIGN_IN_VIP://高级签到 5
case ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN://新手签到 25
case ACTIVITY_TYPE.COMMON_SIGN_IN://通用签到 36
{
activityData = await getPlayerSignInData(activityId, serverId, roleId);
break;
@@ -176,11 +179,6 @@ export async function getActivity(serverId: number, roleId: string, guildCode: s
activityData = await getPlayerMonopolyData(activityId, serverId, roleId);
break;
}
case ACTIVITY_TYPE.COMMON_SIGN_IN://通用签到 36
{
activityData = await getPlayerSignInData(activityId, serverId, roleId);
break;
}
case ACTIVITY_TYPE.NEW_HERO_GIFTS://新将好礼(很多红包,用积分兑换一遍结束) 37
{
activityData = await getPlayerNewHeroGiftsData(activityId, serverId, roleId);
@@ -252,6 +250,15 @@ export async function getActivitiesByType(serverId: number, type: number) {
return activities.map(transActivityInRemoteToModelType);
}
export async function getActivitiesByTypes(serverId: number, types: number[]) {
let result: ActivityModelType[] = [];
for(let type of types) {
let activities = await getActivitiesByType(serverId, type);
if(activities && isArray(activities)) result.push(...activities);
}
return result;
}
export async function getActivities() {
let serverType = pinus.app.getServerType();
if(serverType == 'activity') {
@@ -432,4 +439,24 @@ export async function pushActivities(arr: pushActivityInter[], roleId: string, s
export async function pushActivitiesToGuild(arr: pushActivityInter[], guildCode: string) {
if(arr.length > 0) await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.ACTIVITY_UPDATE, { activities: arr })
}
export async function getActivitiesWithOrder(orderInfo: UserOrderModelType) {
let activities: ActivityModelType[] = [];
let curActivity = await getActivityById(orderInfo.activityId);
if(curActivity) activities.push(curActivity);
let activitiesWithSum = await getActivitiesByTypes(orderInfo.serverId, [ACTIVITY_TYPE.FIRST_GIFT, ACTIVITY_TYPE.RECHARGE_MONEY, ACTIVITY_TYPE.VIP_RECHARGE_MONEY, ACTIVITY_TYPE.GUILD_PAY]);
if(activitiesWithSum && isArray(activitiesWithSum)) activities.push(...activitiesWithSum);
if(orderInfo.paramStr) { //大富翁商店结算
try {
let paramObj = JSON.parse(orderInfo.paramStr);
let paramActivity = paramObj.activityId && await getActivityById(paramObj.activityId);
if(paramActivity) activities.push(paramActivity);
} catch(e) {
console.error(e);
}
}
return activities;
}