12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- const API = require("../../../lib/API");
- const { BaseStdResponse } = require("../../../BaseStdResponse");
- const db = require("../../../plugin/DataBase/db");
- const { getUserID } = require("../../../plugin/WXWork/GetInfo");
- const AccessControl = require("../../../lib/AccessControl");
- class BindWXWork extends API {
- constructor() {
- super();
- this.setMethod("POST");
- this.setPath("/User/BindWXWork");
- }
- async onRequest(req, res) {
- const { 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 = 'UPDATE users SET wxid = ? WHERE uuid = ?';
- let result = await db.query(sql, [wxid, uuid]);
- if (!result || result.affectedRows !== 1)
- return res.json({
- ...BaseStdResponse.DATABASE_ERR
- })
- sql = 'SELECT uuid, username, avatar, email, session FROM users WHERE uuid = ?';
- let rows = await db.query(sql, [uuid]);
- if (rows.length > 0) {
- let { id, uuid, username, avatar, email, session } = rows[0];
- res.json({
- ...BaseStdResponse.OK,
- data: {
- uuid,
- username,
- wxid,
- email,
- avatar,
- session
- }
- });
-
- } else {
- return res.json({
- ...BaseStdResponse.USER_NOT_EXISTS
- })
- }
- } catch (error) {
- this.logger.error(`绑定企业微信失败!${error.stack}`)
- return res.json({ ...BaseStdResponse.ERR, endpoint: 7894379, msg: '绑定失败!' });
- }
- }
- }
- module.exports.BindWXWork = BindWXWork;
|