123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const API = require("../../lib/API");
- const { BaseStdResponse } = require("../../BaseStdResponse");
- const db = require("../../plugin/DataBase/db");
- const AccessControl = require("../../lib/AccessControl");
- const {
- getUserInfo,
- getUserID
- } = require("../../plugin/WXWork/GetInfo");
- class UpdateInfo extends API {
- constructor() {
- super();
- this.setMethod("POST");
- this.setPath("/User/UpdateInfo");
- }
- async onRequest(req, res) {
- let { uuid, session, code } = req.body;
- if (!uuid || !session || !code) {
- res.json({ ...BaseStdResponse.MISSING_PARAMETER, endpoint: 7841686 });
- return;
- }
- // 检查 session 是否有效
- if (!await AccessControl.checkSession(uuid, session)) {
- return res.json({
- ...BaseStdResponse.ACCESS_DENIED,
- endpoint: 48153145
- });
- }
- try {
- const idRes = await getUserID(code);
- if (!idRes || !idRes.success) {
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894377, msg: `更新失败!${idRes.msg}` });
- }
- const wxid = idRes.userid;
- let sql = 'SELECT wxid FROM users WHERE uuid = ?';
- let { rows } = await db.query(sql, [uuid]);
- if (rows.length !== 1 || !rows[0].wxid || !rows[0].session)
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894188, msg: `更新失败!` });
- if(rows[0].wxid !== wxid)
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894188, msg: `更新失败!当前登录的企业微信账号与绑定的企业微信账号不一致` });
- const infoRes = await getUserInfo(wxid);
- if (!infoRes || !infoRes.success) {
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894198, msg: `更新失败!${infoRes.msg}` });
- }
- let { name: username, avatar } = infoRes;
- sql = 'UPDATE users SET username = ?, avatar = ? WHERE uuid = ?';
- result = await db.query(sql, [username, avatar != '' ? avatar : 'https://git.vthc.cn/avatars/1', uuid]);
- if (result && result.affectedRows > 0) {
- return res.json({
- ...BaseStdResponse.OK,
- data: {
- uuid,
- username,
- wxid,
- avatar,
- session
- }
- });
- } else {
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894377, msg: '更新失败!' });
- }
- } catch (error) {
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894377, msg: '更新失败!' });
- }
- }
- }
- module.exports.UpdateInfo = UpdateInfo;
|