Browse Source

新学生管理批量添加修改学生账号

11wqe1 5 days ago
parent
commit
22bc7c13c0
3 changed files with 218 additions and 1 deletions
  1. 159 0
      package-lock.json
  2. 1 1
      package.json
  3. 58 0
      pbl.js

+ 159 - 0
package-lock.json

@@ -3,6 +3,23 @@
   "requires": true,
   "lockfileVersion": 1,
   "dependencies": {
+    "@types/bson": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmmirror.com/@types/bson/-/bson-4.0.5.tgz",
+      "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==",
+      "requires": {
+        "@types/node": "*"
+      }
+    },
+    "@types/mongodb": {
+      "version": "3.6.20",
+      "resolved": "https://registry.npmmirror.com/@types/mongodb/-/mongodb-3.6.20.tgz",
+      "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==",
+      "requires": {
+        "@types/bson": "*",
+        "@types/node": "*"
+      }
+    },
     "@types/node": {
       "version": "22.13.13",
       "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.13.tgz",
@@ -160,6 +177,20 @@
       "resolved": "https://registry.npm.taobao.org/bignumber.js/download/bignumber.js-9.0.0.tgz",
       "integrity": "sha1-gFiA+Eoym16sbny2+CdLbYK98HU="
     },
+    "bl": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/bl/-/bl-2.2.1.tgz",
+      "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
+      "requires": {
+        "readable-stream": "^2.3.5",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "bluebird": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.5.1.tgz",
+      "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+    },
     "body-parser": {
       "version": "1.19.0",
       "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
@@ -826,6 +857,11 @@
         "verror": "1.10.0"
       }
     },
+    "kareem": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmmirror.com/kareem/-/kareem-2.3.2.tgz",
+      "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
+    },
     "loader": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/loader/-/loader-2.1.1.tgz",
@@ -974,6 +1010,72 @@
         }
       }
     },
+    "mongoose": {
+      "version": "5.13.23",
+      "resolved": "https://registry.npmmirror.com/mongoose/-/mongoose-5.13.23.tgz",
+      "integrity": "sha512-Q5bo1yYOcH2wbBPP4tGmcY5VKsFkQcjUDh66YjrbneAFB3vNKQwLvteRFLuLiU17rA5SDl3UMcMJLD9VS8ng2Q==",
+      "requires": {
+        "@types/bson": "1.x || 4.0.x",
+        "@types/mongodb": "^3.5.27",
+        "bson": "^1.1.4",
+        "kareem": "2.3.2",
+        "mongodb": "3.7.4",
+        "mongoose-legacy-pluralize": "1.0.2",
+        "mpath": "0.8.4",
+        "mquery": "3.2.5",
+        "ms": "2.1.2",
+        "optional-require": "1.0.x",
+        "regexp-clone": "1.0.0",
+        "safe-buffer": "5.2.1",
+        "sift": "13.5.2",
+        "sliced": "1.0.1"
+      },
+      "dependencies": {
+        "bson": {
+          "version": "1.1.6",
+          "resolved": "https://registry.npmmirror.com/bson/-/bson-1.1.6.tgz",
+          "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg=="
+        },
+        "mongodb": {
+          "version": "3.7.4",
+          "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-3.7.4.tgz",
+          "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==",
+          "requires": {
+            "bl": "^2.2.1",
+            "bson": "^1.1.4",
+            "denque": "^1.4.1",
+            "optional-require": "^1.1.8",
+            "safe-buffer": "^5.1.2",
+            "saslprep": "^1.0.0"
+          },
+          "dependencies": {
+            "optional-require": {
+              "version": "1.1.10",
+              "resolved": "https://registry.npmmirror.com/optional-require/-/optional-require-1.1.10.tgz",
+              "integrity": "sha512-0r3OB9EIQsP+a5HVATHq2ExIy2q/Vaffoo4IAikW1spCYswhLxqWQS0i3GwS3AdY/OIP4SWZHLGz8CMU558PGw==",
+              "requires": {
+                "require-at": "^1.0.6"
+              }
+            }
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+        }
+      }
+    },
+    "mongoose-legacy-pluralize": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+      "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
+    },
     "morgan": {
       "version": "1.10.0",
       "resolved": "https://registry.npm.taobao.org/morgan/download/morgan-1.10.0.tgz",
@@ -1006,6 +1108,38 @@
         }
       }
     },
+    "mpath": {
+      "version": "0.8.4",
+      "resolved": "https://registry.npmmirror.com/mpath/-/mpath-0.8.4.tgz",
+      "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
+    },
+    "mquery": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmmirror.com/mquery/-/mquery-3.2.5.tgz",
+      "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
+      "requires": {
+        "bluebird": "3.5.1",
+        "debug": "3.1.0",
+        "regexp-clone": "^1.0.0",
+        "safe-buffer": "5.1.2",
+        "sliced": "1.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+        }
+      }
+    },
     "ms": {
       "version": "2.1.3",
       "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz",
@@ -1244,6 +1378,11 @@
         "wrappy": "1"
       }
     },
+    "optional-require": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/optional-require/-/optional-require-1.0.3.tgz",
+      "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA=="
+    },
     "os-homedir": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -1496,6 +1635,11 @@
         "util-deprecate": "~1.0.1"
       }
     },
+    "regexp-clone": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/regexp-clone/-/regexp-clone-1.0.0.tgz",
+      "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
+    },
     "request": {
       "version": "2.88.2",
       "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1589682741998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz",
@@ -1530,6 +1674,11 @@
         }
       }
     },
+    "require-at": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/require-at/-/require-at-1.0.6.tgz",
+      "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g=="
+    },
     "require_optional": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/require_optional/-/require_optional-1.0.1.tgz",
@@ -1644,11 +1793,21 @@
       "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz",
       "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM="
     },
+    "sift": {
+      "version": "13.5.2",
+      "resolved": "https://registry.npmmirror.com/sift/-/sift-13.5.2.tgz",
+      "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
+    },
     "signal-exit": {
       "version": "3.0.3",
       "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz?cache=0&sync_timestamp=1589682814780&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz",
       "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw="
     },
+    "sliced": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/sliced/-/sliced-1.0.1.tgz",
+      "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA=="
+    },
     "sorted-array-functions": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",

+ 1 - 1
package.json

@@ -221,7 +221,7 @@
       "version": "2.1.17"
     },
     "mongodb": "^4.0.1",
-    "mongoose": "^5.7.12",
+    "mongoose": "^5.13.23",
     "morgan": "^1.9.1",
     "ms": {
       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",

+ 58 - 0
pbl.js

@@ -6887,7 +6887,65 @@ router.route("/batchRegistrationMore").post(function(req, res, next) {
     }
 });
 
+//批量添加学生 新学生管理批量添加修改学生账号
+router.route("/batchRegistrationMoreCopy").post(function(req, res, next) {
+    let users = req.body[0];
+    let arr = JSON.parse(decodeURIComponent(req.body[0].arr));
+    for (let i = 0; i < arr.length; i++) {
+        let _username = encodeURIComponent(arr[i].name);
+        let _mail = encodeURIComponent(arr[i].mail)
+        let _password = users.password || "Coco1234";
+        let _alias = encodeURIComponent(arr[i].name)
+        let _oid = users.oid;
+        let _ph = encodeURIComponent(arr[i].phone ? arr[i].phone : "")
+        let _class = encodeURIComponent(arr[i].class)
+        let _sId = encodeURIComponent(arr[i].sId)
+        //加密密碼
+        _password = bcrypt.hashSync(_password, bcrypt.genSaltSync(10));
+        //生成激活碼
+        let _hashstr = new Date().getTime() + "";
+        let _digest = crypto
+            .createHash("sha256")
+            .update(_hashstr, "utf8")
+            .digest("hex");
+        //用戶數據
+        let _userdata = [
+            _mail,
+            _password,
+            _alias,
+            "",
+            1, //0老师 1学生
+            _username,
+            "",
+            generateAPIKey(_username),
+            _digest,
+            "",
+            _username,
+            _sId,
+            2, //1老师 2学生
+            _oid,
+            _ph,
+            _class,
+            "",
+            "0",
+        ];
+        //參數拼接,註冊
+        _userdata.unshift(_mysqluser[0], _mysqluser[1], "pbl_add_batchregister");
+        //用戶註冊處理
+        mysql.usselect(_userdata, function(ret) {
+            // console.log(ret);
+
+            let _pbluserdata = [ ret[1][0].userid ];
 
+            // console.log(_pbluserdata,'_pbluserdata');
+
+            _pbluserdata.unshift(_mysqlLabor[0], _mysqlLabor[1], "updateAccountList");
+            mysql.usselect(_pbluserdata, function(ret) {
+                res.end(JSON.stringify({ success: 1 }));
+            });
+        });
+    }
+});