Browse Source

✨ feat: 暂停主动查询订单状态

Pchen. 8 months ago
parent
commit
53153028a5
1 changed files with 83 additions and 83 deletions
  1. 83 83
      apis/Order/CreateOrder.js

+ 83 - 83
apis/Order/CreateOrder.js

@@ -129,89 +129,89 @@ class CreateOrder extends API {
                 })
                 })
 
 
                 // 定时器轮询订单状态
                 // 定时器轮询订单状态
-                try {
-                    // 定时轮询订单状态,最多持续5分钟(300秒),每次间隔5秒
-                    const MAX_RETRIES = 60 // 5分钟 / 5秒
-                    const DELAY = 5000 // 5秒
-
-                    const queryUrl = `${paymentConfig.url}/api.php?act=order&pid=${paymentConfig.pid}&key=${paymentConfig.key}&out_trade_no=${orderId}`
-
-                    const pollOrderStatus = async (retry = 0) => {
-                        if (retry >= MAX_RETRIES) {
-                            this.logger.info(`订单超时未支付,订单号:${orderId}`)
-                            await db.query('UPDATE orders SET state = 3 WHERE orderId = ?', [orderId]);
-                            return
-                        }
-
-                        try {
-                            const queryRes = await axios.get(queryUrl)
-                            const queryData = queryRes.data
-
-                            if (queryData.code === 1 && queryData.status === 1) {
-                                const { trade_no, out_trade_no, type } = queryData
-                                const time = Date.now()
-
-                                let sql = 'UPDATE orders SET state = 1, pay_type = ?, pay_id = ?, pay_time = ? WHERE orderId = ? AND state = 0'
-                                const result = await db.query(sql, [type, trade_no, time, out_trade_no])
-
-                                if (result.affectedRows > 0) {
-                                    // 查询订单与商品信息
-                                    sql = `
-                                    SELECT 
-                                        g.lepao_count,
-                                        g.ic_count,
-                                        g.vip,
-                                        a.create_user
-                                    FROM 
-                                        orders a
-                                    LEFT JOIN 
-                                        goods g 
-                                    ON 
-                                        a.goods_id = g.id
-                                    WHERE 
-                                        a.orderId = ?
-                                `
-                                    const rows = await db.query(sql, [out_trade_no])
-                                    if (!rows || rows.length !== 1) {
-                                        this.logger.error(`订单商品信息异常,订单号:${out_trade_no}`)
-                                        await db.query('UPDATE orders SET state = 4 WHERE orderId = ?', [out_trade_no])
-                                        return
-                                    }
-
-                                    const { lepao_count, ic_count, vip, create_user } = rows[0]
-                                    sql = 'UPDATE users SET lepao_count = lepao_count + ?, ic_count = ic_count + ?, vip = ? WHERE uuid = ?'
-                                    const updateUser = await db.query(sql, [lepao_count, ic_count, vip, create_user])
-
-                                    if (!updateUser || updateUser.affectedRows !== 1) {
-                                        this.logger.error(`更新用户失败,UUID: ${create_user}`)
-                                        await db.query('UPDATE orders SET state = 4 WHERE orderId = ?', [out_trade_no])
-                                    }
-
-                                    sql = 'UPDATE orders SET state = 2 WHERE orderId = ?'
-                                    await db.query(sql, [out_trade_no])
-
-                                    this.logger.info(`订单处理成功:${out_trade_no}`)
-                                    return // 成功处理后终止轮询
-                                } else {
-                                    this.logger.warn(`订单不存在或已处理:${out_trade_no}`)
-                                }
-                            }
-
-                            // 未支付,继续轮询
-                            setTimeout(() => pollOrderStatus(retry + 1), DELAY)
-
-                        } catch (error) {
-                            this.logger.warn(`轮询支付状态失败:${error.stack}`)
-                            setTimeout(() => pollOrderStatus(retry + 1), DELAY)
-                        }
-                    }
-
-                    // 启动轮询
-                    pollOrderStatus()
-
-                } catch {
-                    this.logger.info(`获取订单支付状态失败!${error.stack}`)
-                }
+                // try {
+                //     // 定时轮询订单状态,最多持续5分钟(300秒),每次间隔5秒
+                //     const MAX_RETRIES = 60 // 5分钟 / 5秒
+                //     const DELAY = 5000 // 5秒
+
+                //     const queryUrl = `${paymentConfig.url}/api.php?act=order&pid=${paymentConfig.pid}&key=${paymentConfig.key}&out_trade_no=${orderId}`
+
+                //     const pollOrderStatus = async (retry = 0) => {
+                //         if (retry >= MAX_RETRIES) {
+                //             this.logger.info(`订单超时未支付,订单号:${orderId}`)
+                //             await db.query('UPDATE orders SET state = 3 WHERE orderId = ?', [orderId]);
+                //             return
+                //         }
+
+                //         try {
+                //             const queryRes = await axios.get(queryUrl)
+                //             const queryData = queryRes.data
+
+                //             if (queryData.code === 1 && queryData.status === 1) {
+                //                 const { trade_no, out_trade_no, type } = queryData
+                //                 const time = Date.now()
+
+                //                 let sql = 'UPDATE orders SET state = 1, pay_type = ?, pay_id = ?, pay_time = ? WHERE orderId = ? AND state = 0'
+                //                 const result = await db.query(sql, [type, trade_no, time, out_trade_no])
+
+                //                 if (result.affectedRows > 0) {
+                //                     // 查询订单与商品信息
+                //                     sql = `
+                //                     SELECT 
+                //                         g.lepao_count,
+                //                         g.ic_count,
+                //                         g.vip,
+                //                         a.create_user
+                //                     FROM 
+                //                         orders a
+                //                     LEFT JOIN 
+                //                         goods g 
+                //                     ON 
+                //                         a.goods_id = g.id
+                //                     WHERE 
+                //                         a.orderId = ?
+                //                 `
+                //                     const rows = await db.query(sql, [out_trade_no])
+                //                     if (!rows || rows.length !== 1) {
+                //                         this.logger.error(`订单商品信息异常,订单号:${out_trade_no}`)
+                //                         await db.query('UPDATE orders SET state = 4 WHERE orderId = ?', [out_trade_no])
+                //                         return
+                //                     }
+
+                //                     const { lepao_count, ic_count, vip, create_user } = rows[0]
+                //                     sql = 'UPDATE users SET lepao_count = lepao_count + ?, ic_count = ic_count + ?, vip = ? WHERE uuid = ?'
+                //                     const updateUser = await db.query(sql, [lepao_count, ic_count, vip, create_user])
+
+                //                     if (!updateUser || updateUser.affectedRows !== 1) {
+                //                         this.logger.error(`更新用户失败,UUID: ${create_user}`)
+                //                         await db.query('UPDATE orders SET state = 4 WHERE orderId = ?', [out_trade_no])
+                //                     }
+
+                //                     sql = 'UPDATE orders SET state = 2 WHERE orderId = ?'
+                //                     await db.query(sql, [out_trade_no])
+
+                //                     this.logger.info(`订单处理成功:${out_trade_no}`)
+                //                     return // 成功处理后终止轮询
+                //                 } else {
+                //                     this.logger.warn(`订单不存在或已处理:${out_trade_no}`)
+                //                 }
+                //             }
+
+                //             // 未支付,继续轮询
+                //             setTimeout(() => pollOrderStatus(retry + 1), DELAY)
+
+                //         } catch (error) {
+                //             this.logger.warn(`轮询支付状态失败:${error.stack}`)
+                //             setTimeout(() => pollOrderStatus(retry + 1), DELAY)
+                //         }
+                    // }
+
+                    // // 启动轮询
+                    // pollOrderStatus()
+
+                // } catch {
+                //     this.logger.info(`获取订单支付状态失败!${error.stack}`)
+                // }
 
 
             } else {
             } else {
                 return res.json({
                 return res.json({