Browse Source

✨ feat: 适配uniapp

Pchen. 6 months ago
parent
commit
87c817b340
3 changed files with 73 additions and 4 deletions
  1. 66 0
      apis/Lepao/GetLepaoData.js
  2. 5 3
      apis/User/uniLogin/GetLoginUrl.js
  3. 2 1
      config.json

+ 66 - 0
apis/Lepao/GetLepaoData.js

@@ -0,0 +1,66 @@
+const API = require("../../lib/API.js")
+const db = require("../../plugin/DataBase/db.js")
+const { BaseStdResponse } = require("../../BaseStdResponse.js")
+const AccessControl = require("../../lib/AccessControl.js")
+
+class GetLepaoData extends API {
+    constructor() {
+        super();
+
+        this.setPath('/Lepao/GetLepaoData')
+        this.setMethod('GET')
+    }
+
+    async onRequest(req, res) {
+        let { uuid, session } = req.query
+
+        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
+            return res.json({
+                ...BaseStdResponse.MISSING_PARAMETER
+            })
+
+        if (!await AccessControl.checkSession(uuid, session))
+            return res.status(401).json({
+                ...BaseStdResponse.ACCESS_DENIED
+            })
+
+        try {
+            let selectSql = `
+                            SELECT 
+                                u.lepao_count,
+                                (
+                                    SELECT COUNT(*) 
+                                    FROM lepao_account a 
+                                    WHERE a.create_user = u.uuid
+                                ) AS lepao_account_total,
+                                (
+                                    SELECT COUNT(*) 
+                                    FROM lepao_record r 
+                                    WHERE r.uuid = u.uuid
+                                ) AS lepao_record_total
+                            FROM users u
+                            WHERE u.uuid = ?;
+                        `
+            
+            let selectRows = await db.query(selectSql, [uuid])
+            if (!selectRows || selectRows.length === 0)
+                return res.json({
+                    ...BaseStdResponse.ERR,
+                    msg: '查询用户信息失败'
+                })
+
+            res.json({
+                ...BaseStdResponse.OK,
+                data: selectRows[0]
+            })
+
+        } catch (err) {
+            return res.json({
+                ...BaseStdResponse.ERR,
+                msg: "查询用户信息失败"
+            })
+        }
+    }
+}
+
+module.exports.GetLepaoData = GetLepaoData

+ 5 - 3
apis/User/uniLogin/GetLoginUrl.js

@@ -13,18 +13,20 @@ class GetLoginUrl extends API {
     }
 
     async onRequest(req, res) {
-        let { type } = req.query
+        let { type, device } = req.query
 
         const uniConfig = config.unilogin
 
         let url = `${uniConfig.url}/connect.php?act=login&appid=${uniConfig.appid}&appkey=${uniConfig.appkey}&type=${type || 'qq'}&redirect_uri=${encodeURIComponent(uniConfig.return_url)}`
+        if (device && device === 'uniapp')
+            url = `${uniConfig.url}/connect.php?act=login&appid=${uniConfig.appid}&appkey=${uniConfig.appkey}&type=${type || 'qq'}&redirect_uri=${encodeURIComponent(uniConfig.uni_return_url)}`
 
         try {
             const r = await axios.get(url, {
                 proxy: false,
                 httpsAgent: new https.Agent({
-                rejectUnauthorized: false
-              })
+                    rejectUnauthorized: false
+                })
             })
 
             if (!r || r.data?.code !== 0 || !r.data?.url) {

+ 2 - 1
config.json

@@ -53,7 +53,8 @@
         "url": "https://open.losfer.cn",
         "appid": "1274",
         "appkey": "e9dd049e0d991b997901957200036b30",
-        "return_url": "https://xxoo365.top/uniLogin/loginSuccess"
+        "return_url": "https://xxoo365.top/uniLogin/loginSuccess",
+        "uni_return_url": "https://xxoo365.top/#/pages/login/login"
     },
     "server": "CTBU_CLUB 重庆1号服务器"
 }