Browse Source

增加状态筛选功能

Pchen. 1 month ago
parent
commit
d2b204cd66
2 changed files with 24 additions and 5 deletions
  1. 2 2
      apis/QK/Task/Task.js
  2. 22 3
      lib/QK/TaskScheduler.js

+ 2 - 2
apis/QK/Task/Task.js

@@ -20,8 +20,8 @@ class GetTask extends API {
 
     async onRequest(req, res) {
         try {
-            const { uuid } = req.query
-            const list = await scheduler.listUserTasks(uuid)
+            const { uuid, status, student_num, name, batch_id } = req.query
+            const list = await scheduler.listUserTasks(uuid, { status, student_num, name, batch_id })
             return res.json({ ...BaseStdResponse.OK, data: list })
         } catch (err) {
             this.logger.error(`获取抢课任务失败:${err.stack || err}`)

+ 22 - 3
lib/QK/TaskScheduler.js

@@ -600,14 +600,33 @@ class TaskScheduler {
         })
     }
 
-    async listUserTasks(uuid) {
+    async listUserTasks(uuid, filters = {}) {
+        const where = ['t.create_user = ?']
+        const params = [uuid]
+        if (filters.status) {
+            where.push('t.status = ?')
+            params.push(filters.status)
+        }
+        if (filters.student_num) {
+            where.push('t.student_num LIKE ?')
+            params.push(`%${filters.student_num}%`)
+        }
+        if (filters.name) {
+            where.push('t.name LIKE ?')
+            params.push(`%${filters.name}%`)
+        }
+        if (filters.batch_id) {
+            where.push('t.batch_id = ?')
+            params.push(Number(filters.batch_id))
+        }
+        const whereSql = where.join(' AND ')
         const rows = await db.query(
             `SELECT t.*${this.taskBatchSelectSql('t')}
             FROM qk_task t
             ${this.taskBatchJoinSql('t')}
-            WHERE t.create_user = ?
+            WHERE ${whereSql}
             ORDER BY t.create_time DESC`,
-            [uuid]
+            params
         )
         return (rows || []).map(row => this.serializeTask(row))
     }