Browse Source

✨ feat(WXWorkLogin): 为第一个登录的用户授予admin权限

Pchen. 8 months ago
parent
commit
bdb6efe142
1 changed files with 14 additions and 3 deletions
  1. 14 3
      apis/User/WXWorkLogin.js

+ 14 - 3
apis/User/WXWorkLogin.js

@@ -41,7 +41,7 @@ class WXWorkLogin extends API {
             if (rows.length > 0) {
             if (rows.length > 0) {
                 // 用户存在,更新 session
                 // 用户存在,更新 session
                 ({ uuid, username, avatar } = rows[0]);
                 ({ uuid, username, avatar } = rows[0]);
-
+                avatar = avatar && avatar != '' ? avatar : 'https://git.vthc.cn/avatars/1';
                 const updateQuery = 'UPDATE users SET session = ? WHERE wxid = ?';
                 const updateQuery = 'UPDATE users SET session = ? WHERE wxid = ?';
                 result = await db.query(updateQuery, [session, wxid]); 
                 result = await db.query(updateQuery, [session, wxid]); 
             } else {
             } else {
@@ -52,10 +52,21 @@ class WXWorkLogin extends API {
                 }
                 }
 
 
                 ({ name: username, avatar } = infoRes);
                 ({ name: username, avatar } = infoRes);
+
+                // TODO 企微扫码登录不会返回用户头像 这里疏忽了 后面再改 
+                avatar = avatar && avatar != '' ? avatar : 'https://git.vthc.cn/avatars/1';
                 uuid = md5(Date.now() + wxid + code);
                 uuid = md5(Date.now() + wxid + code);
 
 
-                const insertQuery = 'INSERT INTO users (uuid, username, wxid, avatar, session) VALUES (?, ?, ?, ?, ?)';
-                result = await db.query(insertQuery, [uuid, username, wxid, avatar != '' ? avatar : 'https://git.vthc.cn/avatars/1', session]);
+                // 查询users表中是否有用户
+                const userCountQuery = 'SELECT COUNT(*) as count FROM users';
+                const [userCountResult] = await db.query(userCountQuery);
+                const userCount = userCountResult.count;
+
+                // 如果是第一个注册的用户 授予admin权限
+                const admin = userCount === 0 ? 1 : 0;
+
+                const insertQuery = 'INSERT INTO users (uuid, username, wxid, avatar, session, admin) VALUES (?, ?, ?, ?, ?, ?)';
+                result = await db.query(insertQuery, [uuid, username, wxid, avatar, session, admin]);
             }
             }
 
 
             if (result && result.affectedRows > 0) {
             if (result && result.affectedRows > 0) {