pbl.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  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'], json['oid'], json['uid']);
  103. });
  104. /* 查询班级 */
  105. router.route('/selectClass').all((req, res, next) => {
  106. var json = queryString(req.url);
  107. getmysql(req, res, "selectClass", json['cu'], json['oid'], 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. json['userpassword'] = bcrypt.hashSync(json['userpassword'], bcrypt.genSaltSync(10))
  123. getmysql(req, res, "insertStudent", json['ph'], json['username'], json['userpassword'], json['type'], json['oid'], json['tid'], json['cid']);
  124. });
  125. /* 新增学生 */
  126. router.route('/iStudent').all((req, res, next) => {
  127. postmysql(req, res, "insertStudent");
  128. });
  129. /* 查询学生 */
  130. router.route('/selectStudent').all((req, res, next) => {
  131. var json = queryString(req.url);
  132. getmysql(req, res, "selectStudent", json['uid'], json['cu'], json['cn'], json['page'], 10);
  133. });
  134. /* 查询班级是否有重复 */
  135. router.route('/selectC').all((req, res, next) => {
  136. var json = queryString(req.url);
  137. getmysql(req, res, "selectC", json['className']);
  138. });
  139. /* 查询学校是否有重复 */
  140. router.route('/selectS').all((req, res, next) => {
  141. var json = queryString(req.url);
  142. getmysql(req, res, "selectS", json['schoolName']);
  143. });
  144. /* 修改个人信息 */
  145. router.route('/updateUser').all((req, res, next) => {
  146. postmysql(req, res, "updateUser");
  147. });
  148. //查询老师的信息
  149. router.route('/getUser').all((req, res, next) => {
  150. var json = queryString(req.url);
  151. getmysql(req, res, "selectUserDeail", json['uid']);
  152. });
  153. //查询教师端消息
  154. router.route('/getNewsTeacher').all((req, res, next) => {
  155. var json = queryString(req.url);
  156. getmysql(req, res, "selectNew", json['uid'], json['page'], 10);
  157. });
  158. //查询通知详情
  159. router.route('/selectNewDetail').all((req, res, next) => {
  160. var json = queryString(req.url);
  161. getmysql(req, res, "selectNewDetail", json['nid']);
  162. });
  163. //查出分组分类
  164. router.route('/getGroup').all((req, res, next) => {
  165. getmysql(req, res, "selectGroupTeacher");
  166. });
  167. //查询这个老师底下的学生提交的作业
  168. router.route('/getWorks').all((req, res, next) => {
  169. var json = queryString(req.url);
  170. getmysql(req, res, "selectWorks", json['bid'], json['isRate'], json['classx'], json['cid'], json['page'], 10);
  171. });
  172. //查询项目
  173. router.route('/getProject').all((req, res, next) => {
  174. var json = queryString(req.url);
  175. getmysql(req, res, "selectProject", json['type'], json['uid'], json['oid'], json['cn'], json['page'], 10);
  176. });
  177. //查询项目成员
  178. router.route('/selectProjectStudent').all((req, res, next) => {
  179. var json = queryString(req.url);
  180. getmysql(req, res, "select_student", json['cn'], json['oid'], json['uid']);
  181. });
  182. //新增课程
  183. router.route('/addWork').all((req, res, next) => {
  184. postmysql(req, res, "insert_teacher_work");
  185. });
  186. //查询课程
  187. router.route('/selectCourse').all((req, res, next) => {
  188. var json = queryString(req.url);
  189. getmysql(req, res, "select_course", json['type'], json['uid'], json['oid'], json['page'], 10);
  190. });
  191. //查询学校
  192. // router.route('/selectSchoolName').all((req, res, next) => {
  193. // var json = queryString(req.url);
  194. // getmysql(req, res, "selectOidName",json['oid']);
  195. // });
  196. //删除学生
  197. router.route('/deleteStudent').all((req, res, next) => {
  198. postmysql(req, res, "delete_student");
  199. });
  200. //查询学校底下的班级
  201. router.route('/selectClassBySchool').all((req, res, next) => {
  202. var json = queryString(req.url);
  203. getmysql(req, res, "selectClassBySchool",json['oid']);
  204. });
  205. //学生注册接口
  206. router.route('/register_student').post(function (req, res, next) {
  207. //mode的处理
  208. if (req.body[0]) {
  209. // 0 用户名 1 用户密码 2用户身份 3 第三方id(可有可无)
  210. p = Object.values(req.body[0]); //获取用户密码
  211. //没有第三方id的处理
  212. // if (p.length < 4) {
  213. // p.push("")
  214. // }
  215. p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  216. //密码加密
  217. // bcrypt.hash(p[1], 10, function (err, hash) {
  218. // if (err) {
  219. // return next(err);
  220. // }
  221. // p[1] = hash;
  222. // });
  223. //参数拼接,注册
  224. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "register_student");
  225. //返回注册用户数据
  226. // mysql.usselect(p, function (ret) {
  227. // res.end(ret);
  228. // });
  229. mysql.usselect(p, function (ret) {
  230. res.end(JSON.stringify(ret));
  231. });
  232. }
  233. });
  234. //查询课程详情
  235. router.route('/selectCourseDetail').all((req, res, next) => {
  236. var json = queryString(req.url);
  237. getmysql(req, res, "selectCourseDetail",json['courseId']);
  238. });
  239. //跳转阶段时,如果有课程就查询1返回,如果没有就插入
  240. router.route('/addUserR').all((req, res, next) => {
  241. var json = queryString(req.url);
  242. getmysql(req, res, "insertUserR",json['uid'],json['cid']);
  243. });
  244. //lsc
  245. //admin 查询学校
  246. router.route('/getSchoolAdmin').all((req, res, next) => {
  247. var json = queryString(req.url);
  248. getmysql(req, res, "select_school", json['page'], 10);
  249. });
  250. //admin 添加学校
  251. router.route('/addSchoolAdmin').all((req, res, next) => {
  252. postmysql(req, res, "add_school");
  253. });
  254. //admin 删除学校
  255. router.route('/deleteSchoolAdmin').all((req, res, next) => {
  256. postmysql(req, res, "delete_school");
  257. });
  258. //admin 查询班级
  259. router.route('/getClassAdmin').all((req, res, next) => {
  260. var json = queryString(req.url);
  261. getmysql(req, res, "select_classAdmin", json['cn'], json['page'], 10);
  262. });
  263. //admin 添加班级
  264. router.route('/addClassAdmin').all((req, res, next) => {
  265. postmysql(req, res, "add_classAdmin");
  266. });
  267. //admin 查询班级是否重复
  268. router.route('/getClassRepeat').all((req, res, next) => {
  269. var json = queryString(req.url);
  270. getmysql(req, res, "select_classRepeatAdmin", json['n'], json['oid']);
  271. });
  272. //admin 发布通知
  273. router.route('/addNews').all((req, res, next) => {
  274. postmysql(req, res, "add_news");
  275. });
  276. //admin 删除通知
  277. router.route('/deleteNews').all((req, res, next) => {
  278. postmysql(req, res, "delete_news");
  279. });
  280. //admin 添加banner
  281. router.route('/addBanner').all((req, res, next) => {
  282. postmysql(req, res, "add_banner");
  283. });
  284. //admin 添加banner
  285. router.route('/deleteBanner').all((req, res, next) => {
  286. postmysql(req, res, "delete_banner");
  287. });
  288. //admin 查询banner
  289. router.route('/getBanner').all((req, res, next) => {
  290. var json = queryString(req.url);
  291. getmysql(req, res, "select_banner");
  292. });
  293. //admin 查询课程getSearchCourse
  294. router.route('/getSearchCourse').all((req, res, next) => {
  295. var json = queryString(req.url);
  296. getmysql(req, res, "selectAll_courseSearch", json['t']);
  297. });
  298. //admin 查询所有课程专区
  299. router.route('/getZone').all((req, res, next) => {
  300. getmysql(req, res, "select_zone");
  301. });
  302. //admin 添加课程专区
  303. router.route('/addZone').all((req, res, next) => {
  304. postmysql(req, res, "insert_classZone");
  305. });
  306. //查询所有课程专区下的课程
  307. router.route('/getZoneClass').all((req, res, next) => {
  308. var json = queryString(req.url);
  309. getmysql(req, res, "select_zoneClass", json['bid'], json['page'], 10);
  310. });
  311. //admin 后台查看专区下课程的数量
  312. router.route('/getZoneClassNum').all((req, res, next) => {
  313. var json = queryString(req.url);
  314. getmysql(req, res, "select_zoneClassNum", json['bid']);
  315. });
  316. //admin 后台添加课程专区时查看课程是否在此专区重复
  317. router.route('/getZoneClassRepeat').all((req, res, next) => {
  318. var json = queryString(req.url);
  319. getmysql(req, res, "select_zoneClassRepeat", json['pid'], json['cid']);
  320. });
  321. //把课程添加进专区
  322. router.route('/addZoneCourse').all((req, res, next) => {
  323. postmysql(req, res, "insert_app");
  324. });
  325. //admin 删除课程专区底下的课程
  326. router.route('/deleteZoneCourse').all((req, res, next) => {
  327. postmysql(req, res, "delete_app");
  328. });
  329. //admin 删除班级
  330. router.route('/deleteZone').all((req, res, next) => {
  331. postmysql(req, res, "delete_zone");
  332. });
  333. //admin 后台专区上移下移
  334. router.route('/zoneRank').all((req, res, next) => {
  335. postmysql(req, res, "update_classRank");
  336. });
  337. //admin 添加模板文档
  338. router.route('/addTemplateAdmin').all((req, res, next) => {
  339. postmysql(req, res, "add_template");
  340. });
  341. //admin 添加模板文档
  342. router.route('/deleteTemplateAdmin').all((req, res, next) => {
  343. postmysql(req, res, "delete_template");
  344. });
  345. //admin 查询模板文档
  346. router.route('/getTemplateAdmin').all((req, res, next) => {
  347. var json = queryString(req.url);
  348. getmysql(req, res, "select_template", json['page'], 10);
  349. });
  350. //admin 查询课程
  351. router.route('/getCourseAdmin').all((req, res, next) => {
  352. var json = queryString(req.url);
  353. getmysql(req, res, "select_courseAdmin", json['cn'], json['page'], 10);
  354. });
  355. //admin 查询模板文档
  356. router.route('/deleteCourseAdmin').all((req, res, next) => {
  357. postmysql(req, res, "delete_courseAdmin",);
  358. });
  359. //teacher 查询模板
  360. router.route('/getTemplateT').all((req, res, next) => {
  361. var json = queryString(req.url);
  362. getmysql(req, res, "select_templateT");
  363. });
  364. queryString = function (url) {
  365. var a = url.split("?");
  366. var json = querystring.parse(a[1])
  367. return json;
  368. }
  369. //post存儲過程處理
  370. postmysql = function (req, res, functionname) {
  371. //mode的處理
  372. if (req.body[0]) {
  373. p = Object.values(req.body[0]);
  374. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  375. //執行存儲過程
  376. mysql.usselect(p, function (ret) { res.end(JSON.stringify(ret)); });
  377. }
  378. }
  379. //get獲取數據庫信息
  380. getmysql = function (req, res, functionname, ...p) {
  381. p = p || [];
  382. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  383. //執行存儲過程
  384. mysql.usselect(p, function (ret) { res.end(JSON.stringify(ret)); }); //
  385. }
  386. module.exports = router;