var express = require('express'); var router = express.Router(); var mysql = require('../model/mysql'); const _mysqluser = ["172.16.12.5", "registration"]; //用戶數據庫信息 //const _mysqluser = ["183.36.25.93", "registration"]; //用戶數據庫信息 const crypto = require('crypto'); router.route('/user').post(async function (req, res) { const signUpData = []; const reqData = req.body; const uuid = crypto.randomUUID(); let userData = JSON.parse(reqData.user); await mysql.usselect([_mysqluser[0], _mysqluser[1], "select_registration_user", reqData.idCard], function (r) { if (r[0] && r[0][0] && r[0][0]['count(id)'] != 0) { res.send({ status: 'error', message: '选手报名失败,选手身份证号已存在' }); } else { const insertUserPromises = userData.map(item => { return new Promise((resolve, reject) => { const userList = []; userList.unshift(_mysqluser[0], _mysqluser[1], "insert_registration_users", item.name, item.gender, item.ethnicity, item.birthdate, item.email, item.id_number, item.group, item.grade, item.school, item.schoolRegion, item.phone, uuid); mysql.usselect(userList, function (data) { // 可以根据 data 判断是否插入成功 if (data != 0) { resolve(data); } else { reject(data); } }); }); }); signUpData.unshift(_mysqluser[0], _mysqluser[1], "insert_registrations", reqData.uploadUrl, "", reqData.type, reqData.idCard); Promise.all(insertUserPromises).then(() => { // 所有用户插入完成后再插入报名数据 mysql.usselect(signUpData, function (data) { if (data != 0) { res.send({ status: 'ok', message: '选手报名成功' }); } else { res.send({ status: 'error', message: '选手报名失败' }); } }); }).catch(error => { console.error("error", error); res.send({ status: 'error', message: '选手报名失败,选手身份证号已存在' }); }); } }) }); router.route('/update').post(async function (req, res) { const { url, id_number } = req.body; const queryList = [_mysqluser[0], _mysqluser[1], "update_registration",url, id_number]; mysql.usselect(queryList, function (data) { console.log(data); if (data == 1) { res.send({ status: 'ok', message: '报名信息更新成功' }); } else { res.send({ status: 'error', message: '未找到报名信息' }); } }); }); module.exports = router;