活动:活动按照合集调整数据结构
This commit is contained in:
@@ -1,4 +1,12 @@
|
||||
|
||||
/**
|
||||
* 活动类型
|
||||
*/
|
||||
|
||||
export enum ACTIVITY_GROUP_TYPE {
|
||||
UNKNOW = 0, // 未知类型
|
||||
FESTIVAL = 1, // 节日活动合集
|
||||
}
|
||||
|
||||
/**
|
||||
* 活动类型
|
||||
|
||||
@@ -22,6 +22,8 @@ export default class Activity_Group extends BaseModel {
|
||||
endTime: Date; // 里面的activity的最晚的时间
|
||||
@prop({ required: true, type: Number })
|
||||
serverIds: number[]; // 关联服务器列表
|
||||
@prop({ required: true })
|
||||
type: number; // 类型 ACTIVITY_GROUP_TYPE
|
||||
|
||||
|
||||
//查询组
|
||||
@@ -34,6 +36,12 @@ export default class Activity_Group extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
//查询组
|
||||
public static async findGroupsData(groupIds: number[]) {
|
||||
let result: ActivityGroupModelType[] = await ActivityGroupModel.find({ groupId: { $in: groupIds } }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
//查询组
|
||||
public static async findGroupData(groupId: number) {
|
||||
let result: ActivityGroupModelType = await ActivityGroupModel.findOne({ groupId }).lean();
|
||||
@@ -71,9 +79,9 @@ export default class Activity_Group extends BaseModel {
|
||||
private static async updateTime(groupId: number, aids: number[]) {
|
||||
let activities = await ActivityModel.findActivityByIds(aids);
|
||||
let beginTime = undefined, endTime = undefined;
|
||||
for(let activity of activities) {
|
||||
if(!beginTime || activity.beginTime < beginTime) beginTime = activity.beginTime;
|
||||
if(!endTime || activity.endTime > endTime) endTime = activity.endTime;
|
||||
for (let activity of activities) {
|
||||
if (!beginTime || activity.beginTime < beginTime) beginTime = activity.beginTime;
|
||||
if (!endTime || activity.endTime > endTime) endTime = activity.endTime;
|
||||
}
|
||||
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
|
||||
{ $set: { beginTime, endTime } }, { new: true }).lean(true);
|
||||
@@ -85,7 +93,7 @@ export default class Activity_Group extends BaseModel {
|
||||
public static async pullByActivityIds(activities: number[], uid = 1) {
|
||||
await ActivityModel.updateGroupId(activities, 0, uid);
|
||||
let activityGroups = await ActivityGroupModel.find({ activities: { $in: activities } });
|
||||
for(let { groupId } of activityGroups) {
|
||||
for (let { groupId } of activityGroups) {
|
||||
let result = await ActivityGroupModel.findOneAndUpdate({ groupId }, { $pull: { activities: { $in: activities } } }, { new: true }).lean(true);
|
||||
await this.updateTime(result.groupId, result.activities);
|
||||
}
|
||||
@@ -108,7 +116,7 @@ export default class Activity_Group extends BaseModel {
|
||||
//查询
|
||||
public static async findByCondition(page: number, pageSize: number, serverId: number = 0, current: boolean = false, groupId: number = 0) {
|
||||
let searchObj = {};
|
||||
if (serverId != 0) searchObj['serverIds'] = { $elemMatch:{$eq:serverId} };
|
||||
if (serverId != 0) searchObj['serverIds'] = { $elemMatch: { $eq: serverId } };
|
||||
if (groupId != 0) searchObj['groupId'] = groupId;
|
||||
if (current) {
|
||||
searchObj['beginTime'] = { $lte: new Date };
|
||||
|
||||
@@ -66,7 +66,7 @@ export class DailyCoinData extends ActivityBase {
|
||||
|
||||
public isExtra(index: number) {
|
||||
let arr = splitString(this.extraRewardCount, '&');
|
||||
return arr.indexOf(index) != -1;
|
||||
return arr.indexOf(index);
|
||||
}
|
||||
|
||||
public findConsumeExchangeFormulaItem(index: number) {
|
||||
|
||||
Reference in New Issue
Block a user