定时器

This commit is contained in:
luying
2022-10-09 19:11:29 +08:00
parent 2d3a1c7c30
commit e9170e61e1
6 changed files with 101 additions and 11 deletions
+7
View File
@@ -72,6 +72,13 @@ export default class Activity_Group_Shop_Rec extends BaseModel {
).lean();
return result;
}
public static async setSum(activityId: number, id: number, sum: number) {
let result: ActivityGroupShopRecType = await ActivityGroupShopRecModel.findOneAndUpdate(
{ activityId, id, sum: { $lt: sum } }, { $set: { sum } }, { new: true, upsert: true }
).lean();
return result;
}
}
export const ActivityGroupShopRecModel = getModelForClass(Activity_Group_Shop_Rec);
+5 -1
View File
@@ -8,7 +8,7 @@ import { GroupShopDiscount } from '../domain/activityField/groupShopField';
*/
@index({ activityId: 1 })
@index({ activityId: 1, roleId: 1 })
@index({ activityId: 1, roleId: 1, id: 1, discountId: 1 })
@index({ activityId: 1, id: 1, 'records.price': 1 })
export class GroupShopBuyRecord {
@@ -78,6 +78,10 @@ export default class Activity_Group_Shop_User_Rec extends BaseModel {
return result;
}
public static async findByPrice(activityId: number, id: number, price: number) {
let result: ActivityGroupShopUserRecType[] = await ActivityGroupShopUserRecModel.find({ activityId, id, 'records.price': { $lt: price } }).lean();
return result;
}
}
export const ActivityGroupShopUserRecModel = getModelForClass(Activity_Group_Shop_User_Rec);
+2 -1
View File
@@ -111,7 +111,8 @@ export class Teraph {
@index({ towerLv: -1, towerUpTime: 1 })
@index({ topLineupCe: 1, updatedAt: 1 })
@index({ ce: -1 })
// @index({ userInfo.uid: 1, serverId: 1 })
@index({ 'userInfo.uid': 1, serverId: 1 })
export default class Role extends BaseModel {
@prop({ required: true })
@@ -32,12 +32,12 @@ interface GroupShopInDb {
// 数据
class GroupShopTimer {
time: number; // 活动开始之后的时间
time: number; // 时间戳
itemId: number; // items唯一id
sum: number; // 如果次数不足sum次则强行设成sum次
constructor(id: number, data: GroupShopTimerInDb) {
this.time = data.time;
constructor(beginTime: number, id: number, data: GroupShopTimerInDb) {
this.time = beginTime + data.time * 60 * 1000;
this.sum = data.sum;
this.itemId = id;
}
@@ -130,7 +130,7 @@ export class GroupShopData extends ActivityBase {
this.itemMap.set(item.id, this.items.length - 1);
if(item.timers && item.timers.length > 0) {
for(let timer of item.timers) {
this.timer.push(new GroupShopTimer(item.id, timer));
this.timer.push(new GroupShopTimer(this.beginTime, item.id, timer));
}
}
}