test.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const db = require("./plugin/DataBase/db");
  2. // 生成 6 位数字 + 字母混合码
  3. function generateCode() {
  4. const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 全部大写,避免大小写重复
  5. let code = "";
  6. for (let i = 0; i < 6; i++) {
  7. code += chars.charAt(Math.floor(Math.random() * chars.length));
  8. }
  9. return code;
  10. }
  11. // 生成唯一的 code
  12. async function generateUniqueCode(existingCodes) {
  13. let code;
  14. do {
  15. code = generateCode();
  16. } while (existingCodes.has(code)); // 查重
  17. return code;
  18. }
  19. async function updateFaceCodes() {
  20. try {
  21. // 查询所有账号
  22. const accounts = await db.query("SELECT student_num FROM lepao_account");
  23. // 收集已有的 face_code
  24. const usedCodes = new Set();
  25. for (let account of accounts) {
  26. // 如果已有 code,就覆盖(如果你想保留,可以加判断)
  27. const code = await generateUniqueCode(usedCodes);
  28. usedCodes.add(code);
  29. // 更新数据库
  30. let sql = 'INSERT INTO lepao_face (face_code, student_num ) VALUES (?, ?)'
  31. await db.query(sql, [
  32. code,
  33. account.student_num,
  34. ]);
  35. console.log(`账号ID: ${account.student_num} 更新 face_code 为: ${code}`);
  36. }
  37. console.log("所有 face_code 更新完成!");
  38. } catch (err) {
  39. console.error("执行出错:", err);
  40. } finally {
  41. db.end && db.end();
  42. }
  43. }
  44. updateFaceCodes();