Browse Source

✨ feat: 新工单可发送邮件通知

Pchen. 1 month ago
parent
commit
b9a142db1f
1 changed files with 17 additions and 3 deletions
  1. 17 3
      lib/Lepao/Mcp.js

+ 17 - 3
lib/Lepao/Mcp.js

@@ -2,6 +2,7 @@ const db = require('../../plugin/DataBase/db')
 const path = require('path')
 const Logger = require('../Logger')
 const mq = require('../../plugin/mq')
+const EmailTemplate = require('../../plugin/Email/emailTemplate')
 
 class Mcp {
     constructor() {
@@ -41,9 +42,8 @@ class Mcp {
             this.logger.info(`MCP接收绑定账号请求:${sender},绑定码:${bind_code}`)
             let selectSql = 'SELECT bot_account FROM lepao_extra WHERE bot_account = ?'
             let selectRows = await db.query(selectSql, [sender])
-            if(!selectRows) return '系统出错,请稍后再试'
-            if(selectRows.length !== 0) return '您已绑定其他账号,请先解绑'
-
+            if (!selectRows) return '系统出错,请稍后再试'
+            if (selectRows.length !== 0) return '您已绑定其他账号,请先解绑'
 
             let umo = `QQ2749761853:FriendMessage:${sender}`
             let sql = `
@@ -282,6 +282,20 @@ class Mcp {
             if (!r || r.affectedRows !== 1)
                 return '系统出错,请稍后再试'
 
+            let kefuSql = `
+                    SELECT email FROM users
+                    WHERE JSON_CONTAINS(permission, '"admin"') OR JSON_CONTAINS(permission, '"service"')
+                `
+
+            let kefuRows = await db.query(kefuSql);
+
+            let emails = [...new Set(kefuRows.map(row => row.email))]
+
+            for (const email of emails) {
+                if (!email) break
+                await EmailTemplate.orderNewReply(email, { id: r.insertId || id, content, files })
+            }
+
             return `提交成功`
         } catch (error) {
             this.logger.error(`MCP工单创建出错:${e}`)