| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const API = require("../../lib/API.js")
- const db = require("../../plugin/DataBase/db.js")
- const axios = require('axios')
- const EmailTemplate = require('../../plugin/Email/emailTemplate')
- const config = require('../../config.json')
- const { BaseStdResponse } = require("../../BaseStdResponse.js")
- // 客户端上传数据接口
- class UpdateAccount extends API {
- constructor() {
- super();
- this.setPath('/Lepao/UpdateAccount')
- this.setMethod('POST')
- }
- async onRequest(req, res) {
- let { data } = req.body
- if ([data].some(value => value === '' || value === null || value === undefined))
- return res.json({
- ...BaseStdResponse.MISSING_PARAMETER,
- endpoint: 1513126
- })
- try {
- const endpoint = config.runpy + '/decrypted_data'
- const resData = await axios.post(endpoint, { data })
- const userData = resData.data
- if (userData?.code !== 200 || !userData.data)
- return res.json({
- ...BaseStdResponse.ERR,
- msg: '无法解析用户数据,请重试'
- })
- const { uid, student_num, school_id, token } = userData.data
- if ([uid, student_num, school_id, token].some(value => value === '' || value === null || value === undefined))
- return res.json({
- ...BaseStdResponse.ERR,
- msg: '未提取出用户登录信息,请重试'
- })
- let findSql = 'SELECT email, name FROM lepao_account WHERE student_num = ?'
- let findRows = await db.query(findSql, [student_num])
- if (!findRows)
- return res.json({
- ...BaseStdResponse.ERR,
- msg: '无法解析用户数据,请重试'
- })
- if(findRows.length === 0)
- return res.json({
- ...BaseStdResponse.ERR,
- msg: '该乐跑账号尚未在RunForge系统中添加,请先前往 https://lepao.ctbu.top/ 添加你的账户'
- })
- let updateSql = 'UPDATE lepao_account SET uid = ?, token = ?, school_id = ?, state = 1 WHERE student_num = ?'
- let updateRows = await db.query(updateSql, [uid, token, school_id, student_num])
- if(updateRows && updateRows.affectedRows > 0) {
- res.json({
- ...BaseStdResponse.OK,
- data: {
- name: findRows[0].name,
- account: student_num
- }
- })
- let emailData = {
- name: findRows[0].name,
- account: student_num
- }
-
- await EmailTemplate.updateSuccess(findRows[0].email, emailData)
- }
- } catch (error) {
- }
- }
- }
- module.exports.UpdateAccount = UpdateAccount;
|