router.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var express = require('express');
  2. var router = express.Router();
  3. var mysql = require('../model/mysql');
  4. const _mysqluser = ["183.36.25.93", "registration"]; //用戶數據庫信息
  5. const crypto = require('crypto');
  6. router.route('/user').post(async function (req, res) {
  7. const signUpData = [];
  8. const reqData = req.body;
  9. const uuid = crypto.randomUUID();
  10. let userData = JSON.parse(reqData.user);
  11. await mysql.usselect([_mysqluser[0], _mysqluser[1], "select_registration_user", reqData.idCard], function (r) {
  12. if (r[0] && r[0][0] && r[0][0]['count(id)'] != 0) {
  13. res.send({ status: 'error', message: '选手报名失败,选手身份证号已存在' });
  14. } else {
  15. const insertUserPromises = userData.map(item => {
  16. return new Promise((resolve, reject) => {
  17. const userList = [];
  18. 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);
  19. mysql.usselect(userList, function (data) {
  20. // 可以根据 data 判断是否插入成功
  21. if (data != 0) {
  22. resolve(data);
  23. } else {
  24. reject(data);
  25. }
  26. });
  27. });
  28. });
  29. signUpData.unshift(_mysqluser[0], _mysqluser[1], "insert_registrations", reqData.uploadUrl, "", reqData.type, reqData.idCard);
  30. Promise.all(insertUserPromises).then(() => {
  31. // 所有用户插入完成后再插入报名数据
  32. mysql.usselect(signUpData, function (data) {
  33. if (data != 0) {
  34. res.send({ status: 'ok', message: '选手报名成功' });
  35. } else {
  36. res.send({ status: 'error', message: '选手报名失败' });
  37. }
  38. });
  39. }).catch(error => {
  40. console.error("error", error);
  41. res.send({ status: 'error', message: '选手报名失败,选手身份证号已存在' });
  42. });
  43. }
  44. })
  45. });
  46. router.route('/update').post(async function (req, res) {
  47. const { url, id_number } = req.body;
  48. const queryList = [_mysqluser[0], _mysqluser[1], "update_registration",url, id_number];
  49. mysql.usselect(queryList, function (data) {
  50. console.log(data);
  51. if (data == 1) {
  52. res.send({ status: 'ok', message: '报名信息更新成功' });
  53. } else {
  54. res.send({ status: 'error', message: '未找到报名信息' });
  55. }
  56. });
  57. });
  58. module.exports = router;