guhongwei 2 éve
szülő
commit
68d8d533fd
2 módosított fájl, 29 hozzáadás és 0 törlés
  1. 12 0
      app/schedule/watchvip.js
  2. 17 0
      app/service/user.js

+ 12 - 0
app/schedule/watchvip.js

@@ -0,0 +1,12 @@
+'use strict';
+module.exports = {
+  schedule: {
+    // interval: '30s', // 1 分钟间隔
+    cron: '0 0 23 * * *', // 每天晚上十一点
+    // cron: '5 * * * * ?', // 30s
+    type: 'worker', // 指定所有的 worker 都需要执行
+  },
+  async task(ctx) {
+    ctx.service.user.watchvip();
+  },
+};

+ 17 - 0
app/service/user.js

@@ -3,6 +3,8 @@ const { CrudService } = require('naf-framework-mongoose-free/lib/service');
 const { BusinessError, ErrorCode } = require('naf-core').Error;
 const _ = require('lodash');
 const Excel = require('exceljs');
+const { ObjectId } = require('mongoose').Types;
+const moment = require('moment');
 // 用户
 class UserService extends CrudService {
   constructor(ctx) {
@@ -42,6 +44,21 @@ class UserService extends CrudService {
     const token = this.ctx.service.util.jwt.encrypt(user);
     return token;
   }
+  // 监听用户vip信息
+  async watchvip() {
+    const list = [];
+    const data = await this.model.find();
+    for (const val of data) {
+      if (val.is_vip === '1') {
+        if (moment().isAfter(val.vip_end_time)) list.push(val);
+      }
+    }
+    if (list.length > 0) {
+      for (const val of list) {
+        await this.model.updateOne({ _id: ObjectId(val._id) }, { is_vip: '0' });
+      }
+    }
+  }
 }
 
 module.exports = UserService;