后台:虚拟充值

This commit is contained in:
luying
2022-02-10 20:20:31 +08:00
parent c77337d139
commit 04ebd0a9d7
7 changed files with 236 additions and 2 deletions
+93 -1
View File
@@ -1,5 +1,5 @@
import Marquee, { MarqueeType, MarqueeModel } from "../db/Marquee";
import { GM_MAIL_STATUS, GM_MAIL_TYPE, MAIL_TIME_TYPE, MARQUEE_SHOW_TYPE, MARQUEE_TIME_TYPE, REF_CIRCLE_MAIL_TIME, SERVER_STATUS } from "../consts";
import { ACTIVITY_TYPE, GM_MAIL_STATUS, GM_MAIL_TYPE, MAIL_TIME_TYPE, MARQUEE_SHOW_TYPE, MARQUEE_TIME_TYPE, REF_CIRCLE_MAIL_TIME, SERVER_STATUS } from "../consts";
import { scheduleJob, scheduledJobs, Job } from 'node-schedule';
import { createMarqueeMsg as sysCreateMarqueeMsg, pushMarqueeMsg as sysPushMarqueeMsg } from './sysChatService';
import { GroupMessageType } from "../db/GroupMessage";
@@ -12,9 +12,20 @@ import GMMail, { GMMailModel, GMMailType } from '../db/GMMail';
import moment = require("moment");
import { getSeconds, nowSeconds } from "../pubUtils/timeUtil";
import { CreateServerParam } from "../domain/backEndField/params";
import { SignInData } from "../domain/activityField/signInField";
import { RegionModel, RegionType } from "../db/Region";
import { GMMail as StategyMail } from "../db/ServerStategy";
import { uniq } from "underscore";
import { ActivityModelType } from "../db/Activity";
import { dicRMB } from "../pubUtils/dictionary/DicRMB";
import { LimitShopData } from "../domain/activityField/limitShopField";
import { YuanBaoShopData } from "../domain/activityField/yuanBaoShopField";
import { MonthlyTicketData } from "../domain/activityField/monthlyTicketField";
import { DailyRMBGiftsData } from "../domain/activityField/dailyRMBGiftsField";
import { PopUpShopData } from "../domain/activityField/popUpShopField";
import { GrowthFundData } from "../domain/activityField/growthFundField";
import { TreasureHuntData } from "../domain/activityField/treasureHuntField";
import { RefreshShopData } from "../domain/activityField/refreshShopField";
// —————————————— 跑马灯 —————————————— //
// 初始
@@ -188,4 +199,85 @@ export async function createNewServer(region: RegionType ,serverId: number, para
if(params.openMail) await sendOpenServerMail('openMail', params.openMail, newServer, uid);
if(params.circleMail) await sendOpenServerMail('circleMail', params.circleMail, newServer, uid);
await RegionModel.newServer(region.id, newServer);
}
function getDicRMB(productID: string) {
let dic = dicRMB.get(productID);
if(!dic) return null
return {
value: dic.productID,
label: `${dic.message}(${dic.productID})`,
}
};
export function getActivityProducts(activity: ActivityModelType) {
switch(activity.type) {
case ACTIVITY_TYPE.SIGN_IN_VIP: // 高级签到
{
let data = new SignInData(activity, 0);
return [getDicRMB(data.productID)];
}
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE: // 新手限定RMB购买礼包
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY: // 日限购
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY: // 周限购
{
let data = new LimitShopData(activity, 0);
return data.list.map(item => {
return getDicRMB(item.productID);
});
}
case ACTIVITY_TYPE.YUAN_BAO_SHOP: // 元宝
{
let data = new YuanBaoShopData(activity, 0);
return data.list.map(item => {
return getDicRMB(item.productID);
});
}
case ACTIVITY_TYPE.MONTHLY_TICKET_1:
case ACTIVITY_TYPE.MONTHLY_TICKET_2:
{
let data = new MonthlyTicketData(activity, 0);
return [getDicRMB(data.productID)];
}
case ACTIVITY_TYPE.DAILY_RMB_GIFTS:
{
let data = new DailyRMBGiftsData(activity, 0);
return [getDicRMB(data.productID)];
}
case ACTIVITY_TYPE.POP_UP_SHOP://弹出礼包
{
let data = new PopUpShopData(activity, 0);
return [getDicRMB(data.productID)];
}
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP: //主线成长基金(高阶)
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP://镇念塔成长基金(高阶)
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP://精英成长基金(高阶)
{
let data = new GrowthFundData(activity, 0);
return data.list.map(item => {
return getDicRMB(item.productID);
});
}
case ACTIVITY_TYPE.TREASURE_HUNT:
{
let data = new TreasureHuntData(activity, 0);
let shop = data.shop;
return shop.list.map(item => {
return getDicRMB(item.productID);
});
}
case ACTIVITY_TYPE.REFRESH_SHOP:
{
let data = new RefreshShopData(activity, 0);
let products: { label: string, value: string }[] = [];
for(let shop of data.list) {
for(let item of shop.items) {
products.push(getDicRMB(item.productID));
}
}
return products;
}
}
return false
}
+1
View File
@@ -720,6 +720,7 @@ export class Rank {
let myId = this.decodeFields(this.key, field);
const scores = this.decodeScore(rankFromDb[ii + 1]);
const info = await redisClient().hgetAsync(this.infoKey, this.composeFields(this.infoKey, myId));
if(!info) continue;
const userInfo = JSON.parse(info);
let param: RoleRankInfo | GuildRankInfo;