router.js 2.9 KB

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