pbl.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. // ROUTES FOR OUR API
  2. // =============================================================================
  3. var express = require("express");
  4. var request = require("request");
  5. var bcrypt = require("bcryptjs");
  6. var router = express.Router(); // get an instance of the express Router
  7. const querystring = require("querystring");
  8. var mysql = require("./mysql");
  9. // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
  10. // const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息
  11. const _mysqlLabor = ["172.16.12.5", "evenYT"]; //edu數據庫信息
  12. const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
  13. var crypto = require("crypto");
  14. var https = require("https");
  15. //統壹處理區域
  16. router.use(async function(req, res, next) {
  17. await asynnext(req, res, next);
  18. //// make sure we go to the next routes and don't stop here
  19. //res.end("");
  20. });
  21. /**
  22. * @des 參數解釋同上
  23. */
  24. function asynnext(req, res, next) {
  25. //異步處理
  26. return new Promise(async(resolve, reject) => {
  27. next();
  28. //resolve(true);aa
  29. });
  30. }
  31. /*測試*/
  32. router.route("/a").all((req, res, next) => {
  33. var json = queryString(req.url);
  34. getmysql(req, res, "a", json["ph"], json["pa"]);
  35. });
  36. router.route("/b").all((req, res, next) => {
  37. var json = queryString(req.url);
  38. getmysql(req, res, "b", json["ph"], json["pa"]);
  39. });
  40. /* 根据市级用户查询评审员 */
  41. router.route("/selectReviewer").all((req, res, next) => {
  42. var json = queryString(req.url);
  43. getmysql(
  44. req,
  45. res,
  46. "selectReviewer",
  47. json["uid"],
  48. json["cn"],
  49. json["page"],
  50. 10
  51. );
  52. });
  53. /* 市级区县管理接口 */
  54. router.route("/selectCReviewer").all((req, res, next) => {
  55. var json = queryString(req.url);
  56. getmysql(
  57. req,
  58. res,
  59. "selectCReviewer",
  60. json["uid"],
  61. json["cn"],
  62. json["page"],
  63. 10
  64. );
  65. });
  66. /* 修改评审员 */
  67. router.route("/updateReviewer").all((req, res, next) => {
  68. var json = queryString(req.url);
  69. getmysql(
  70. req,
  71. res,
  72. "updateReviewer",
  73. json["n"],
  74. json["p"],
  75. json["t"],
  76. json["s"],
  77. json["uid"]
  78. );
  79. });
  80. /* 删除评审员 */
  81. router.route("/deleteReviewer").all((req, res, next) => {
  82. var json = queryString(req.url);
  83. getmysql(req, res, "deleteReviewer", json["uid"]);
  84. });
  85. /* 查询区县案例 */
  86. router.route("/selecAnliBox").all((req, res, next) => {
  87. var json = queryString(req.url);
  88. getmysql(req, res, "selecAnliBox", json["title"]);
  89. });
  90. /* 查询市级案例 */
  91. router.route("/selecAnliBox1").all((req, res, next) => {
  92. var json = queryString(req.url);
  93. getmysql(req, res, "selecAnliBox1", json["title"]);
  94. });
  95. /* 查询省级案例 */
  96. router.route("/selecAnliBox2").all((req, res, next) => {
  97. var json = queryString(req.url);
  98. getmysql(req, res, "selecAnliBox2");
  99. });
  100. /* 案例征集查询通知公告 */
  101. router.route("/selectRaceNotice").all((req, res, next) => {
  102. var json = queryString(req.url);
  103. getmysql(req, res, "selectRaceNotice", json["page"], 10);
  104. });
  105. /* 案例征集查询通知公告详情 */
  106. router.route("/getRaceNoticeDetail").all((req, res, next) => {
  107. var json = queryString(req.url);
  108. getmysql(req, res, "getRaceNoticeDetail", json["nid"]);
  109. });
  110. /* 案例征集发送通知 */
  111. router.route("/insertRaceNote").all((req, res, next) => {
  112. var json = queryString(req.url);
  113. getmysql(req, res, "insertRaceNote", json["t"], json["c"], json["uid"]);
  114. });
  115. //新增赛事项目
  116. router.route("/addRace").all((req, res, next) => {
  117. if (req.body[0]) {
  118. p = [
  119. req.body[0].uid,
  120. req.body[0].info,
  121. req.body[0].over,
  122. req.body[0].pro,
  123. req.body[0].act,
  124. req.body[0].exc,
  125. req.body[0].res,
  126. ];
  127. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "addRace"); //執行存儲過程
  128. mysql.usselect(p, function(ret) {
  129. let course = req.body[0].courseType;
  130. let courseId = ret[0][0].id;
  131. let userid = req.body[0].uid;
  132. delCourseType1(course, courseId, userid);
  133. res.end(JSON.stringify({ courseId: courseId, success: 1 }));
  134. });
  135. }
  136. });
  137. //新增赛事账号信息
  138. router.route("/addRaceUser").all((req, res, next) => {
  139. if (req.body[0]) {
  140. p = [
  141. req.body[0].reg,
  142. req.body[0].res,
  143. req.body[0].sch,
  144. req.body[0].n,
  145. req.body[0].p,
  146. req.body[0].t,
  147. req.body[0].parent,
  148. ];
  149. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "addRaceUser"); //執行存儲過程
  150. mysql.usselect(p, function(ret) {
  151. let num = ret[0][0].num;
  152. let userid = ret[0][0].userid;
  153. if (num < 10) {
  154. num = "SZ" + "00" + num + "@gdae.com";
  155. } else if (num < 100) {
  156. num = "SZ" + "0" + num + "@gdae.com";
  157. } else if (num > 100) {
  158. num = "SZ" + num + "@gdae.com";
  159. }
  160. y = [userid, num, bcrypt.hashSync("123456", bcrypt.genSaltSync(10))];
  161. //参数拼接,注册
  162. y.unshift(_mysqlLabor[0], _mysqlLabor[1], "upRaceUserNamePassword");
  163. mysql.usselect(y, function(ret) {
  164. res.end(JSON.stringify(ret));
  165. });
  166. res.end(JSON.stringify({ num: num, success: 1 }));
  167. });
  168. }
  169. });
  170. //修改赛事项目
  171. router.route("/updateRace").all((req, res, next) => {
  172. if (req.body[0]) {
  173. p = [
  174. req.body[0].id,
  175. req.body[0].info,
  176. req.body[0].over,
  177. req.body[0].pro,
  178. req.body[0].act,
  179. req.body[0].exc,
  180. req.body[0].res,
  181. ];
  182. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "updateRace"); //執行存儲過程
  183. mysql.usselect(p, function(ret) {
  184. let course = req.body[0].courseType;
  185. let courseId = req.body[0].id;
  186. let userid = req.body[0].uid;
  187. delCourseType1(course, courseId, userid);
  188. res.end(JSON.stringify({ success: 1 }));
  189. });
  190. }
  191. });
  192. //查询赛事项目列表
  193. router.route("/selectRaceList").all((req, res, next) => {
  194. var json = queryString(req.url);
  195. getmysql(req, res, "selectRaceList", json["uid"], json["t"]);
  196. });
  197. //修改赛事状态
  198. router.route("/updateRaceState").all((req, res, next) => {
  199. var json = queryString(req.url);
  200. getmysql(req, res, "updateRaceState", json["id"], json["s"]);
  201. });
  202. //查询赛事项目详情
  203. router.route("/selectRaceDetail").all((req, res, next) => {
  204. var json = queryString(req.url);
  205. getmysql(req, res, "selectRaceDetail", json["id"]);
  206. });
  207. //race 查询学校
  208. router.route("/getSchool").all((req, res, next) => {
  209. var json = queryString(req.url);
  210. getmysql(req, res, "getSchool", json["n"]);
  211. });
  212. //根据区级管理者查询案例
  213. router.route("/selectAnliList").all((req, res, next) => {
  214. var json = queryString(req.url);
  215. getmysql(
  216. req,
  217. res,
  218. "selectAnliList",
  219. json["typea"],
  220. json["typeb"],
  221. json["typec"],
  222. json["typed"],
  223. json["typeE"],
  224. json["cn"],
  225. json["cid"],
  226. json["title"],
  227. json["page"],
  228. 10
  229. );
  230. });
  231. //根据市级管理者查询案例
  232. router.route("/selectAnliList1").all((req, res, next) => {
  233. var json = queryString(req.url);
  234. getmysql(
  235. req,
  236. res,
  237. "selectAnliList1",
  238. json["typea"],
  239. json["typeb"],
  240. json["typec"],
  241. json["typed"],
  242. json["typeE"],
  243. json["cn"],
  244. json["cid"],
  245. json["title"],
  246. json["page"],
  247. 10
  248. );
  249. });
  250. //根据省级级管理者查询案例
  251. router.route("/selectAnliList2").all((req, res, next) => {
  252. var json = queryString(req.url);
  253. getmysql(
  254. req,
  255. res,
  256. "selectAnliList2",
  257. json["typea"],
  258. json["typeb"],
  259. json["typec"],
  260. json["typed"],
  261. json["typeE"],
  262. json["cn"],
  263. json["cid"],
  264. json["title"],
  265. json["page"],
  266. 10
  267. );
  268. });
  269. //删除案例
  270. router.route("/deleteAnli").all((req, res, next) => {
  271. var json = queryString(req.url);
  272. getmysql(req, res, "deleteAnli", json["id"]);
  273. });
  274. //根据区县管理者查询评分
  275. router.route("/selectPoint").all((req, res, next) => {
  276. var json = queryString(req.url);
  277. getmysql(
  278. req,
  279. res,
  280. "selectPoint",
  281. json["typea"],
  282. json["typeb"],
  283. json["typec"],
  284. json["typed"],
  285. json["typeE"],
  286. json["cn"],
  287. json["cid"],
  288. json["title"],
  289. json["page"],
  290. 10
  291. );
  292. });
  293. //根据市级管理者查询评分
  294. router.route("/selectPoint1").all((req, res, next) => {
  295. var json = queryString(req.url);
  296. getmysql(
  297. req,
  298. res,
  299. "selectPoint1",
  300. json["typea"],
  301. json["typeb"],
  302. json["typec"],
  303. json["typed"],
  304. json["typeE"],
  305. json["cn"],
  306. json["cid"],
  307. json["title"],
  308. json["page"],
  309. 10
  310. );
  311. });
  312. //根据市级管理者查询全部评分
  313. router.route("/selectPointAll").all((req, res, next) => {
  314. var json = queryString(req.url);
  315. getmysql(
  316. req,
  317. res,
  318. "selectPointAll",
  319. json["typea"],
  320. json["typeb"],
  321. json["typec"],
  322. json["typed"],
  323. json["typeE"],
  324. json["cn"],
  325. json["cid"],
  326. json["title"]
  327. );
  328. });
  329. //查询分配案例
  330. router.route("/selectCaseUser").all((req, res, next) => {
  331. var json = queryString(req.url);
  332. getmysql(req, res, "select_case", json["uid"]);
  333. });
  334. //分配案例
  335. router.route("/insertCase").all((req, res, next) => {
  336. if (req.body[0]) {
  337. p = [req.body[0].uid, req.body[0].box];
  338. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "insertCase"); //執行存儲過程
  339. mysql.usselect(p, function(ret) {
  340. res.end(JSON.stringify({ success: 1 }));
  341. });
  342. }
  343. });
  344. //新增评分
  345. router.route("/addScore").all((req, res, next) => {
  346. postmysql(req, res, "addScore");
  347. });
  348. //查询评分
  349. router.route("/selectScore").all((req, res, next) => {
  350. var json = queryString(req.url);
  351. getmysql(req, res, "selectScore", json["rid"], json["suser"]);
  352. });
  353. //查询所有评分
  354. router.route("/selectAllScore").all((req, res, next) => {
  355. var json = queryString(req.url);
  356. getmysql(req, res, "selectAllScore");
  357. });
  358. //根据用户id查询评分
  359. router.route("/selectScoreByUid").all((req, res, next) => {
  360. var json = queryString(req.url);
  361. getmysql(req, res, "selectScoreByUid", json["uid"]);
  362. });
  363. //查询单个案例所有评分
  364. router.route("/selectAnliScore").all((req, res, next) => {
  365. var json = queryString(req.url);
  366. getmysql(req, res, "selectAnliScore", json["rid"]);
  367. });
  368. //赛事推荐
  369. router.route("/updateRaceRec").all((req, res, next) => {
  370. var json = queryString(req.url);
  371. getmysql(req, res, "updateRaceRec", json["id"], json["rec"]);
  372. });
  373. //案例新项目登录接口
  374. router.route("/loginNewEvenManage").all((req, res, next) => {
  375. postmysql(req, res, "loginNewEvenManage");
  376. });
  377. //案例新项目创建用户接口
  378. router.route("/addNewRaceUser").all((req, res, next) => {
  379. postmysql(req, res, "addNewRaceUser");
  380. });
  381. //查询老师的信息
  382. router.route("/getRaceUser1").all((req, res, next) => {
  383. var json = queryString(req.url);
  384. getmysql(req, res, "getRaceUser1", json["uid"]);
  385. });
  386. //修改用户信息
  387. router.route("/updateRaceUser1").all((req, res, next) => {
  388. postmysql(req, res, "updateRaceUser1");
  389. });
  390. /* 修改评审员 */
  391. router.route("/updateReviewer").all((req, res, next) => {
  392. var json = queryString(req.url);
  393. getmysql(
  394. req,
  395. res,
  396. "updateReviewer",
  397. json["n"],
  398. json["p"],
  399. json["t"],
  400. json["s"],
  401. json["uid"]
  402. );
  403. });
  404. //race 查询学校
  405. router.route("/getSchool1").all((req, res, next) => {
  406. var json = queryString(req.url);
  407. getmysql(req, res, "getSchool1", json["n"]);
  408. });
  409. //查询赛事项目列表
  410. router.route("/selectRaceList1").all((req, res, next) => {
  411. var json = queryString(req.url);
  412. getmysql(req, res, "selectRaceList1", json["uid"], json["t"], json["oid"], json["org"]);
  413. });
  414. //修改赛事状态
  415. router.route("/updateRaceStateGM").all((req, res, next) => {
  416. var json = queryString(req.url);
  417. getmysql(req, res, "updateRaceStateGM", json["id"], json["s"]);
  418. });
  419. //删除案例
  420. router.route("/deleteAnliGM").all((req, res, next) => {
  421. var json = queryString(req.url);
  422. getmysql(req, res, "deleteAnliGM", json["id"]);
  423. });
  424. //新增赛事项目
  425. router.route("/addRaceGM").all((req, res, next) => {
  426. if (req.body[0]) {
  427. p = [
  428. req.body[0].uid,
  429. req.body[0].info,
  430. req.body[0].over,
  431. req.body[0].pro,
  432. req.body[0].act,
  433. req.body[0].exc,
  434. req.body[0].res,
  435. ];
  436. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "addRaceGM"); //執行存儲過程
  437. mysql.usselect(p, function(ret) {
  438. let course = req.body[0].courseType;
  439. let courseId = ret[0][0].id;
  440. let userid = req.body[0].uid;
  441. delCourseType1(course, courseId, userid);
  442. res.end(JSON.stringify({ courseId: courseId, success: 1 }));
  443. });
  444. }
  445. });
  446. //修改赛事项目
  447. router.route("/updateRaceGM").all((req, res, next) => {
  448. if (req.body[0]) {
  449. p = [
  450. req.body[0].id,
  451. req.body[0].info,
  452. req.body[0].over,
  453. req.body[0].pro,
  454. req.body[0].act,
  455. req.body[0].exc,
  456. req.body[0].res,
  457. ];
  458. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "updateRaceGM"); //執行存儲過程
  459. mysql.usselect(p, function(ret) {
  460. let course = req.body[0].courseType;
  461. let courseId = req.body[0].id;
  462. let userid = req.body[0].uid;
  463. delCourseType1(course, courseId, userid);
  464. res.end(JSON.stringify({ success: 1 }));
  465. });
  466. }
  467. });
  468. //查询赛事项目详情
  469. router.route("/selectRaceDetailGM").all((req, res, next) => {
  470. var json = queryString(req.url);
  471. getmysql(req, res, "selectRaceDetailGM", json["id"]);
  472. });
  473. //查询赛事分类及子分类
  474. router.route("/selectMatTypeGM").all((req, res, next) => {
  475. var json = queryString(req.url);
  476. getmysql(req, res, "selectMatTypeGM");
  477. });
  478. queryString = function(url) {
  479. var a = url.split("?");
  480. var json = querystring.parse(a[1]);
  481. return json;
  482. };
  483. //post存儲過程處理
  484. postmysql = function(req, res, functionname) {
  485. //mode的處理
  486. if (req.body[0]) {
  487. p = Object.values(req.body[0]);
  488. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  489. //執行存儲過程
  490. mysql.usselect(p, function(ret) {
  491. res.end(JSON.stringify(ret));
  492. });
  493. }
  494. };
  495. //post存儲過程處理
  496. postmysql2 = function(req, res, functionname) {
  497. //mode的處理
  498. if (req.body) {
  499. p = Object.values(req.body)[0].split(",");
  500. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  501. //執行存儲過程
  502. mysql.usselect(p, function(ret) {
  503. res.end(JSON.stringify(ret));
  504. });
  505. }
  506. };
  507. //post存儲過程處理
  508. postmysql3 = function(req, res, functionname) {
  509. //mode的處理
  510. if (req.body) {
  511. p = Object.values(req.body);
  512. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  513. //執行存儲過程
  514. mysql.usselect(p, function(ret) {
  515. res.end(JSON.stringify(ret));
  516. });
  517. }
  518. };
  519. //get獲取數據庫信息
  520. getmysql = function(req, res, functionname, ...p) {
  521. p = p || [];
  522. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  523. //執行存儲過程
  524. mysql.usselect(p, function(ret) {
  525. res.end(JSON.stringify(ret));
  526. }); //
  527. };
  528. //post存储过程处理
  529. userpostmysql = function(req, res, functionname) {
  530. //mode的处理
  531. if (req.body.mode) {
  532. p = req.body.mode.split(",");
  533. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  534. //执行存储过程
  535. mysql.usselect(p, function(ret) {
  536. res.end(JSON.stringify(ret));
  537. });
  538. }
  539. };
  540. //get获取数据库信息
  541. usergetmysql = function(req, res, functionname, ...p) {
  542. p = p || [];
  543. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  544. //执行存储过程
  545. mysql.usselect(p, function(ret) {
  546. res.end(JSON.stringify(ret));
  547. }); //
  548. };
  549. module.exports = router;