定时任务:自动开发修复
This commit is contained in:
@@ -38,8 +38,16 @@ export class ActivityRemote {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private clearData() {
|
||||||
|
this.activityByServer.clear();
|
||||||
|
this.activities.clear();
|
||||||
|
this.activityByType.clear();
|
||||||
|
this.groupToServer.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public async loadActivities() {
|
public async loadActivities() {
|
||||||
try {
|
try {
|
||||||
|
this.clearData();
|
||||||
let activityGroup = await ActivityGroupModel.findAllActivityGroup();
|
let activityGroup = await ActivityGroupModel.findAllActivityGroup();
|
||||||
for(let { groupId, serverIds } of activityGroup) {
|
for(let { groupId, serverIds } of activityGroup) {
|
||||||
for(let serverId of serverIds) {
|
for(let serverId of serverIds) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { MarqueeType, MarqueeModel } from "../db/Marquee";
|
import { MarqueeType, MarqueeModel } from "../db/Marquee";
|
||||||
import { ACTIVITY_TYPE, MARQUEE_SHOW_TYPE, MARQUEE_TIME_TYPE, SURVEY_SELECT } from "../consts";
|
import { ACTIVITY_TYPE, MARQUEE_SHOW_TYPE, MARQUEE_TIME_TYPE, REDIS_KEY, SURVEY_SELECT } from "../consts";
|
||||||
import { scheduleJob, scheduledJobs, Job } from 'node-schedule';
|
import { scheduleJob, scheduledJobs, Job } from 'node-schedule';
|
||||||
import { createMarqueeMsg as sysCreateMarqueeMsg, pushMarqueeMsg as sysPushMarqueeMsg } from './sysChatService';
|
import { createMarqueeMsg as sysCreateMarqueeMsg, pushMarqueeMsg as sysPushMarqueeMsg } from './sysChatService';
|
||||||
import { GroupMessageType } from "../db/GroupMessage";
|
import { GroupMessageType } from "../db/GroupMessage";
|
||||||
@@ -13,7 +13,7 @@ import { SignInData } from "../domain/activityField/signInField";
|
|||||||
import { RegionModel, RegionType } from "../db/Region";
|
import { RegionModel, RegionType } from "../db/Region";
|
||||||
import { GMMail as StategyMail } from "../db/ServerStategy";
|
import { GMMail as StategyMail } from "../db/ServerStategy";
|
||||||
import { uniq } from "underscore";
|
import { uniq } from "underscore";
|
||||||
import { ActivityModelType } from "../db/Activity";
|
import { ActivityModel, ActivityModelType } from "../db/Activity";
|
||||||
import { dicRMB } from "../pubUtils/dictionary/DicRMB";
|
import { dicRMB } from "../pubUtils/dictionary/DicRMB";
|
||||||
import { LimitShopData } from "../domain/activityField/limitShopField";
|
import { LimitShopData } from "../domain/activityField/limitShopField";
|
||||||
import { YuanBaoShopData } from "../domain/activityField/yuanBaoShopField";
|
import { YuanBaoShopData } from "../domain/activityField/yuanBaoShopField";
|
||||||
@@ -31,6 +31,9 @@ import { SurveyModel } from "../db/Survery";
|
|||||||
import { SurveyRecModel } from "../db/SurveyRec";
|
import { SurveyRecModel } from "../db/SurveyRec";
|
||||||
import { getPopUpShopData } from "./activity/popUpShopService";
|
import { getPopUpShopData } from "./activity/popUpShopService";
|
||||||
import { TaskPassData } from "../domain/activityField/taskPassField";
|
import { TaskPassData } from "../domain/activityField/taskPassField";
|
||||||
|
import { ActivityGroupModel } from "../db/ActivityGroup";
|
||||||
|
import { ActivityInRemote } from "../domain/activityField/activityField";
|
||||||
|
import { redisClient } from "./redisService";
|
||||||
|
|
||||||
// —————————————— 跑马灯 —————————————— //
|
// —————————————— 跑马灯 —————————————— //
|
||||||
// 初始
|
// 初始
|
||||||
@@ -187,7 +190,17 @@ export async function createNewServer(region: RegionType ,serverId: number, para
|
|||||||
let newServer = await ServerlistModel.newServer(params, region, serverId, uid);
|
let newServer = await ServerlistModel.newServer(params, region, serverId, uid);
|
||||||
if(params.openMail) await sendOpenServerMail('openMail', params.openMail, newServer, uid);
|
if(params.openMail) await sendOpenServerMail('openMail', params.openMail, newServer, uid);
|
||||||
if(params.circleMail) await sendOpenServerMail('circleMail', params.circleMail, newServer, uid);
|
if(params.circleMail) await sendOpenServerMail('circleMail', params.circleMail, newServer, uid);
|
||||||
|
if(params.activityGroupId && params.activityGroupId.length > 0) {
|
||||||
|
await ActivityGroupModel.addServerToGroupData(newServer.id, params.activityGroupId);
|
||||||
|
let activityServers = pinus.app.getServersByType('activity');
|
||||||
|
for(let server of activityServers) {
|
||||||
|
pinus.app.rpc.activity.activityRemote.loadActivities.toServer(server.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
await RegionModel.newServer(region.id, newServer);
|
await RegionModel.newServer(region.id, newServer);
|
||||||
|
await redisClient().hsetAsync(REDIS_KEY.SERVER, `${newServer.id}`, `${newServer.name}`);
|
||||||
|
await redisClient().hsetAsync(REDIS_KEY.SERVER_OPEN_TIME, `${newServer.id}`, `${newServer.openTime}`);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDicRMB(productID: string) {
|
function getDicRMB(productID: string) {
|
||||||
|
|||||||
@@ -63,6 +63,14 @@ export default class Activity extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static async findOpenActivityByGroupId(activityGroupId: number[]) {
|
||||||
|
let result: ActivityModelType[] = await ActivityModel.find(
|
||||||
|
{ groupId: { $in: activityGroupId }, isEnable: true }
|
||||||
|
).sort({ activityId: -1 }).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//根据活动类型查询活动数据
|
//根据活动类型查询活动数据
|
||||||
public static async findActivityByType(type: number) {
|
public static async findActivityByType(type: number) {
|
||||||
let result: ActivityModelType[] = await ActivityModel.find({ type }).lean(true);
|
let result: ActivityModelType[] = await ActivityModel.find({ type }).lean(true);
|
||||||
|
|||||||
@@ -84,6 +84,12 @@ export default class Activity_Group extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//更新询组
|
||||||
|
public static async addServerToGroupData(serverId: number, groupIds: number[]) {
|
||||||
|
await ActivityGroupModel.updateMany({ groupId: { $in: groupIds} },
|
||||||
|
{ $addToSet: { serverIds: serverId } }, { new: true }).lean(true);
|
||||||
|
}
|
||||||
|
|
||||||
// 根据包含的活动更新开始和结束时间
|
// 根据包含的活动更新开始和结束时间
|
||||||
private static async updateTime(groupId: number, aids: number[], uid = 1) {
|
private static async updateTime(groupId: number, aids: number[], uid = 1) {
|
||||||
let activities = await ActivityModel.findActivityByIds(aids);
|
let activities = await ActivityModel.findActivityByIds(aids);
|
||||||
|
|||||||
Reference in New Issue
Block a user