pbl.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. // ROUTES FOR OUR API
  2. // =============================================================================
  3. var express = require('express');
  4. var bcrypt = require('bcryptjs');
  5. var router = express.Router(); // get an instance of the express Router
  6. const querystring = require('querystring');
  7. var mysql = require('./mysql');
  8. // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
  9. const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
  10. //統壹處理區域
  11. router.use(async function (req, res, next) {
  12. await asynnext(req, res, next);
  13. //// make sure we go to the next routes and don't stop here
  14. //res.end("");
  15. });
  16. /**
  17. * @des 參數解釋同上
  18. */
  19. function asynnext(req, res, next) {
  20. //異步處理
  21. return new Promise(async (resolve, reject) => {
  22. next();
  23. //resolve(true);aa
  24. });
  25. }
  26. /*測試*/
  27. router.route('/a').all((req, res, next) => {
  28. var json = queryString(req.url);
  29. getmysql(req, res, "a", json['ph'], json['pa']);
  30. });
  31. router.route('/b').all((req, res, next) => {
  32. var json = queryString(req.url);
  33. getmysql(req, res, "b", json['ph'], json['pa']);
  34. });
  35. /* 注册接口 */
  36. router.route('/register').post(function (req, res, next) {
  37. //mode的处理
  38. if (req.body[0]) {
  39. // 0 用户名 1 用户密码 2用户身份 3 第三方id(可有可无)
  40. p = Object.values(req.body[0]); //获取用户密码
  41. //没有第三方id的处理
  42. // if (p.length < 4) {
  43. // p.push("")
  44. // }
  45. p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  46. //密码加密
  47. // bcrypt.hash(p[1], 10, function (err, hash) {
  48. // if (err) {
  49. // return next(err);
  50. // }
  51. // p[1] = hash;
  52. // });
  53. //参数拼接,注册
  54. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "register");
  55. //返回注册用户数据
  56. // mysql.usselect(p, function (ret) {
  57. // res.end(ret);
  58. // });
  59. mysql.usselect(p, function (ret) {
  60. res.end(JSON.stringify(ret));
  61. });
  62. }
  63. });
  64. /*登录接口*/
  65. router.route('/login').all((req, res, next) => {
  66. //mode的处理
  67. if (req.body[0]) {
  68. // 0 用户名 1 用户密码
  69. c = Object.values(req.body[0]); //获取用户密码
  70. p = [c[0]]
  71. // p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  72. var _password = [c[0]];
  73. _password.unshift(_mysqlLabor[0], _mysqlLabor[1], "selectPassword");
  74. mysql.usselect(_password, function (ret) {
  75. var _ret = ret
  76. var paJ = _ret[0][0].userpassword
  77. bcrypt.compare(c[1], paJ, function (err, result) {
  78. // console.log(result)
  79. if (result) {
  80. //参数拼接,登录
  81. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "selectLogin");
  82. //执行存储过程
  83. mysql.usselect(p, function (ret) {
  84. res.end(JSON.stringify({ status: "1", ...ret }));
  85. });
  86. } else {
  87. res.end(JSON.stringify([{ status: "0" }]));
  88. }
  89. })
  90. });
  91. // console.log(isEqual)
  92. }
  93. });
  94. /* 找寻重复手机号 */
  95. router.route('/findPhone').all((req, res, next) => {
  96. var json = queryString(req.url);
  97. getmysql(req, res, "findPhone", json['un']);
  98. });
  99. /* 新增班级 */
  100. router.route('/insertClass').all((req, res, next) => {
  101. var json = queryString(req.url);
  102. getmysql(req, res, "insertClass", json['name']);
  103. });
  104. /* 查询班级 */
  105. router.route('/selectClass').all((req, res, next) => {
  106. var json = queryString(req.url);
  107. getmysql(req, res, "selectClass", json['cu'], json['cn'],json['page'],10);
  108. });
  109. /* 删除班级 */
  110. router.route('/deleteClass').all((req, res, next) => {
  111. var json = queryString(req.url);
  112. getmysql(req, res, "deleteClass", json['id']);
  113. });
  114. /* 查询学校 */
  115. router.route('/selectOrg').all((req, res, next) => {
  116. var json = queryString(req.url);
  117. getmysql(req, res, "selectOrg");
  118. });
  119. /* 新增学生 */
  120. router.route('/insertStudent').all((req, res, next) => {
  121. var json = queryString(req.url);
  122. getmysql(req, res, "insertStudent",json['ph'],json['username'],json['type'],json['oid'],json['tid'],json['cid']);
  123. });
  124. /* 新增学生 */
  125. router.route('/iStudent').all((req, res, next) => {
  126. postmysql(req, res, "insertStudent");
  127. });
  128. /* 查询学生 */
  129. router.route('/selectStudent').all((req, res, next) => {
  130. var json = queryString(req.url);
  131. getmysql(req, res, "selectStudent",json['uid'],json['cu'], json['cn'],json['page'],10);
  132. });
  133. /* 查询班级是否有重复 */
  134. router.route('/selectC').all((req, res, next) => {
  135. var json = queryString(req.url);
  136. getmysql(req, res, "selectC",json['className']);
  137. });
  138. /* 查询学校是否有重复 */
  139. router.route('/selectS').all((req, res, next) => {
  140. var json = queryString(req.url);
  141. getmysql(req, res, "selectS",json['schoolName']);
  142. });
  143. /* 修改个人信息 */
  144. router.route('/updateUser').all((req, res, next) => {
  145. postmysql(req, res, "updateUser");
  146. });
  147. //查询老师的信息
  148. router.route('/findTeacherDeail').all((req, res, next) => {
  149. var json = queryString(req.url);
  150. getmysql(req, res, "selectUserDeail", json['uid']);
  151. });
  152. //查询教师端消息
  153. router.route('/getNewsTeacher').all((req, res, next) => {
  154. var json = queryString(req.url);
  155. getmysql(req, res, "selectNew", json['uid'], json['page'], 10);
  156. });
  157. //查询通知详情
  158. router.route('/selectNewDetail').all((req, res, next) => {
  159. var json = queryString(req.url);
  160. getmysql(req, res, "selectNewDetail", json['nid']);
  161. });
  162. //查出分组分类
  163. router.route('/getGroup').all((req, res, next) => {
  164. getmysql(req, res, "selectGroupTeacher");
  165. });
  166. //查询这个老师底下的学生提交的作业
  167. router.route('/getWorks').all((req, res, next) => {
  168. var json = queryString(req.url);
  169. getmysql(req, res, "selectWorks", json['bid'], json['isRate'], json['classx'],json['cid'],json['page'],10);
  170. });
  171. //查询项目
  172. router.route('/getProject').all((req, res, next) => {
  173. var json = queryString(req.url);
  174. getmysql(req, res, "selectProject", json['cu'], json['cn'],json['page'],10);
  175. });
  176. queryString = function (url) {
  177. var a = url.split("?");
  178. var json = querystring.parse(a[1])
  179. return json;
  180. }
  181. //post存儲過程處理
  182. postmysql = function (req, res, functionname) {
  183. //mode的處理
  184. if (req.body[0]) {
  185. p = Object.values(req.body[0]);
  186. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  187. //執行存儲過程
  188. mysql.usselect(p, function (ret) { res.end(JSON.stringify(ret)); });
  189. }
  190. }
  191. //get獲取數據庫信息
  192. getmysql = function (req, res, functionname, ...p) {
  193. p = p || [];
  194. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  195. //執行存儲過程
  196. mysql.usselect(p, function (ret) { res.end(JSON.stringify(ret)); }); //
  197. }
  198. module.exports = router;