pbl.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917
  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 _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息
  10. const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
  11. const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
  12. var crypto = require('crypto');
  13. //統壹處理區域
  14. router.use(async function(req, res, next) {
  15. await asynnext(req, res, next);
  16. //// make sure we go to the next routes and don't stop here
  17. //res.end("");
  18. });
  19. /**
  20. * @des 參數解釋同上
  21. */
  22. function asynnext(req, res, next) {
  23. //異步處理
  24. return new Promise(async(resolve, reject) => {
  25. next();
  26. //resolve(true);aa
  27. });
  28. }
  29. /*測試*/
  30. router.route('/a').all((req, res, next) => {
  31. var json = queryString(req.url);
  32. getmysql(req, res, "a", json['ph'], json['pa']);
  33. });
  34. router.route('/b').all((req, res, next) => {
  35. var json = queryString(req.url);
  36. getmysql(req, res, "b", json['ph'], json['pa']);
  37. });
  38. /* 注册接口 */
  39. router.route('/register').post(function(req, res, next) {
  40. //mode的处理
  41. if (req.body[0]) {
  42. // 0 用户名 1 用户密码 2用户身份 3 第三方id(可有可无)
  43. p = Object.values(req.body[0]); //获取用户密码
  44. //没有第三方id的处理
  45. // if (p.length < 4) {
  46. // p.push("")
  47. // }
  48. p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  49. //密码加密
  50. // bcrypt.hash(p[1], 10, function (err, hash) {
  51. // if (err) {
  52. // return next(err);
  53. // }
  54. // p[1] = hash;
  55. // });
  56. //参数拼接,注册
  57. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "register");
  58. //返回注册用户数据
  59. // mysql.usselect(p, function (ret) {
  60. // res.end(ret);
  61. // });
  62. mysql.usselect(p, function(ret) {
  63. res.end(JSON.stringify(ret));
  64. });
  65. }
  66. });
  67. /*登录接口*/
  68. router.route('/login').all((req, res, next) => {
  69. //mode的处理
  70. if (req.body[0]) {
  71. // 0 用户名 1 用户密码
  72. c = Object.values(req.body[0]); //获取用户密码
  73. p = [c[0]]
  74. // p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  75. var _password = [c[0]];
  76. _password.unshift(_mysqlLabor[0], _mysqlLabor[1], "selectPassword");
  77. mysql.usselect(_password, function(ret) {
  78. var _ret = ret
  79. var paJ = _ret[0][0].userpassword
  80. bcrypt.compare(c[1], paJ, function(err, result) {
  81. // console.log(result)
  82. if (result) {
  83. //参数拼接,登录
  84. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "selectLogin");
  85. //执行存储过程
  86. mysql.usselect(p, function(ret) {
  87. res.end(JSON.stringify({ status: "1", ...ret }));
  88. });
  89. } else {
  90. res.end(JSON.stringify([{ status: "0" }]));
  91. }
  92. })
  93. });
  94. // console.log(isEqual)
  95. }
  96. });
  97. /* 找寻重复手机号 */
  98. router.route('/findPhone').all((req, res, next) => {
  99. var json = queryString(req.url);
  100. getmysql(req, res, "findPhone", json['un']);
  101. });
  102. /* 找寻重复邮箱 */
  103. router.route('/findMail').all((req, res, next) => {
  104. var json = queryString(req.url);
  105. usergetmysql(req, res, "findMail", json['un']);
  106. });
  107. /* 新增班级 */
  108. router.route('/insertClass').all((req, res, next) => {
  109. var json = queryString(req.url);
  110. getmysql(req, res, "insertClass", json['name'], json['oid'], json['uid']);
  111. });
  112. /* 查询班级 */
  113. router.route('/selectClass').all((req, res, next) => {
  114. var json = queryString(req.url);
  115. getmysql(req, res, "selectClass", json['cu'], json['oid'], json['cn'], json['page'], 10);
  116. });
  117. /* 删除班级 */
  118. router.route('/deleteClass').all((req, res, next) => {
  119. var json = queryString(req.url);
  120. getmysql(req, res, "deleteClass", json['id']);
  121. });
  122. /* 查询学校 */
  123. router.route('/selectOrg').all((req, res, next) => {
  124. var json = queryString(req.url);
  125. getmysql(req, res, "selectOrg");
  126. });
  127. /* 新增学生 */
  128. router.route('/insertStudent').all((req, res, next) => {
  129. var json = queryString(req.url);
  130. json['userpassword'] = bcrypt.hashSync(json['userpassword'], bcrypt.genSaltSync(10))
  131. getmysql(req, res, "insertStudent", json['ph'], json['username'], json['userpassword'], json['type'], json['oid'], json['tid'], json['cid']);
  132. });
  133. // /* 新增学生 */
  134. // router.route('/iStudent').all((req, res, next) => {
  135. // var json = queryString(req.url);
  136. // json['userpassword'] = bcrypt.hashSync(json['userpassword'], bcrypt.genSaltSync(10))
  137. // getmysql(req, res, "insertStudent", json['ph'], json['username'], json['userpassword'], json['type'], json['oid'], json['tid'], json['cid']);
  138. // });
  139. /* 查询学生 */
  140. router.route('/selectStudent').all((req, res, next) => {
  141. var json = queryString(req.url);
  142. getmysql(req, res, "selectStudent", json['oid'], json['cu'], json['cn'], json['page'], 8);
  143. });
  144. /* 查询项目 */
  145. router.route('/selectStudentAdd').all((req, res, next) => {
  146. var json = queryString(req.url);
  147. getmysql(req, res, "selectStudentAdd", json['oid'], json['cu'], json['cn']);
  148. });
  149. /* 查询班级是否有重复 */
  150. router.route('/selectC').all((req, res, next) => {
  151. var json = queryString(req.url);
  152. getmysql(req, res, "selectC", json['className']);
  153. });
  154. /* 查询学校是否有重复 */
  155. router.route('/selectS').all((req, res, next) => {
  156. var json = queryString(req.url);
  157. getmysql(req, res, "selectS", json['schoolName']);
  158. });
  159. /* 修改个人信息 */
  160. router.route('/updateUser').all((req, res, next) => {
  161. postmysql(req, res, "updateUser");
  162. });
  163. //查询老师的信息
  164. router.route('/getUser').all((req, res, next) => {
  165. var json = queryString(req.url);
  166. getmysql(req, res, "selectUserDeail", json['uid']);
  167. });
  168. router.route('/selectUser').all((req, res, next) => {
  169. var json = queryString(req.url);
  170. getmysql(req, res, "selectUser", json['userid']);
  171. });
  172. //查询教师端消息
  173. router.route('/getNewsTeacher').all((req, res, next) => {
  174. var json = queryString(req.url);
  175. getmysql(req, res, "selectNew", json['uid'], json['page'], 10);
  176. });
  177. //查询通知详情
  178. router.route('/selectNewDetail').all((req, res, next) => {
  179. var json = queryString(req.url);
  180. getmysql(req, res, "selectNewDetail", json['nid']);
  181. });
  182. //查出分组分类
  183. router.route('/getGroup').all((req, res, next) => {
  184. getmysql(req, res, "selectGroupTeacher");
  185. });
  186. //查询这个老师底下的学生提交的作业
  187. router.route('/getWorks').all((req, res, next) => {
  188. var json = queryString(req.url);
  189. getmysql(req, res, "selectWorks", json['cn'], json['cid'], json['page'], 10);
  190. });
  191. //查询项目
  192. router.route('/getProject').all((req, res, next) => {
  193. var json = queryString(req.url);
  194. getmysql(req, res, "selectProject", json['type'], json['uid'], json['oid'], json['cn'], json['page'], 10);
  195. });
  196. //查询项目成员
  197. router.route('/selectProjectStudent').all((req, res, next) => {
  198. var json = queryString(req.url);
  199. getmysql(req, res, "select_student", json['cn'], json['oid'], json['uid']);
  200. });
  201. //新增课程
  202. router.route('/addWork').all((req, res, next) => {
  203. postmysql(req, res, "insert_teacher_work");
  204. });
  205. router.route('/addWorkNew').all((req, res, next) => {
  206. // postmysql(req, res, "insert_teacher_work_new");
  207. if (req.body[0]) {
  208. // p = Object.values(req.body[0]);
  209. p = [req.body[0].uid, req.body[0].title, req.body[0].brief, req.body[0].cover, req.body[0].astudent, req.body[0].see, req.body[0].chapters, req.body[0].template];
  210. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "insert_teacher_work_new");
  211. //執行存儲過程
  212. mysql.usselect(p, function(ret) {
  213. let course = req.body[0].courseType;
  214. let courseId = ret[0][0].courseId;
  215. let userid = req.body[0].uid;
  216. delCourseType(course, courseId, userid);
  217. res.end(JSON.stringify({ ordernumber: ret[0][0].ordernumber, courseId: ret[0][0].courseId, success: 1 }));
  218. // res.end(JSON.stringify(ret));
  219. });
  220. }
  221. });
  222. function delCourseType(course, courseId, userid) {
  223. let _courseId = courseId;
  224. var _userdata = [
  225. _courseId
  226. ];
  227. _userdata.unshift(_mysqlLabor[0], _mysqlLabor[1], "delete_courseType");
  228. mysql.usselect(_userdata, function(ret) {
  229. console.log(ret);
  230. });
  231. setTimeout(() => {
  232. addCourseType(userid, course, _courseId)
  233. }, 1000);
  234. }
  235. function addCourseType(userid, course, _courseId) {
  236. var _uid = userid;
  237. var _courses = _courseId
  238. var _tid = JSON.parse(course)
  239. for (let i = 0; i < _tid.length; i++) {
  240. if (_tid[i] == '') {
  241. continue;
  242. }
  243. var _userdata = [
  244. _courses,
  245. _tid[i],
  246. _uid,
  247. ];
  248. _userdata.unshift(_mysqlLabor[0], _mysqlLabor[1], "add_courseType");
  249. mysql.usselect(_userdata, function(ret) {
  250. console.log(ret);
  251. });
  252. }
  253. }
  254. //修改课程
  255. // router.route('/updateWork').all((req, res, next) => {
  256. // postmysql(req, res, "update_teacher_work");
  257. // });
  258. router.route('/updateWorkNew').all((req, res, next) => {
  259. if (req.body[0]) {
  260. // p = Object.values(req.body[0]);
  261. p = [req.body[0].cid, req.body[0].title, req.body[0].brief, req.body[0].cover, req.body[0].astudent, req.body[0].see, req.body[0].chapters, req.body[0].template];
  262. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "update_teacher_work_new");
  263. //執行存儲過程
  264. mysql.usselect(p, function(ret) {
  265. let course = req.body[0].courseType;
  266. let courseId = req.body[0].cid;
  267. let userid = req.body[0].uid;
  268. delCourseType(course, courseId, userid);
  269. res.end(JSON.stringify({ success: 1 }));
  270. // res.end(JSON.stringify(ret));
  271. });
  272. }
  273. });
  274. //查询课程
  275. // router.route('/selectCourse').all((req, res, next) => {
  276. // var json = queryString(req.url);
  277. // getmysql(req, res, "select_course", json['type'], json['uid'], json['oid'], json['page'], 10);
  278. // });
  279. router.route('/selectCourseNew').all((req, res, next) => {
  280. var json = queryString(req.url);
  281. getmysql(req, res, "select_course_new", json['type'], json['uid'], json['oid'], json['typea'], json['typeb'], json['typec'], json['typed'], json['typeE'], json['cu'], json['cn'], json['page'], 10);
  282. });
  283. //查询学校
  284. router.route('/selectSchoolName').all((req, res, next) => {
  285. var json = queryString(req.url);
  286. getmysql(req, res, "selectOidName", json['oid']);
  287. });
  288. //删除学生
  289. router.route('/deleteStudent').all((req, res, next) => {
  290. postmysql(req, res, "delete_student");
  291. });
  292. //查询学校底下的班级
  293. router.route('/selectClassBySchool').all((req, res, next) => {
  294. var json = queryString(req.url);
  295. getmysql(req, res, "selectClassBySchool", json['oid']);
  296. });
  297. //学生注册接口
  298. router.route('/register_student').post(function(req, res, next) {
  299. //mode的处理
  300. if (req.body[0]) {
  301. // 0 用户名 1 用户密码 2用户身份 3 第三方id(可有可无)
  302. p = Object.values(req.body[0]); //获取用户密码
  303. //没有第三方id的处理
  304. // if (p.length < 4) {
  305. // p.push("")
  306. // }
  307. p[1] = bcrypt.hashSync(p[1], bcrypt.genSaltSync(10));
  308. //密码加密
  309. // bcrypt.hash(p[1], 10, function (err, hash) {
  310. // if (err) {
  311. // return next(err);
  312. // }
  313. // p[1] = hash;
  314. // });
  315. //参数拼接,注册
  316. p.unshift(_mysqlLabor[0], _mysqlLabor[1], "register_student");
  317. //返回注册用户数据
  318. // mysql.usselect(p, function (ret) {
  319. // res.end(ret);
  320. // });
  321. mysql.usselect(p, function(ret) {
  322. res.end(JSON.stringify(ret));
  323. });
  324. }
  325. });
  326. //查询课程详情
  327. router.route('/selectCourseDetail').all((req, res, next) => {
  328. var json = queryString(req.url);
  329. getmysql(req, res, "selectCourseDetail", json['courseId']);
  330. });
  331. //跳转阶段时,如果有课程就查询1返回,如果没有就插入
  332. router.route('/addUserR').all((req, res, next) => {
  333. var json = queryString(req.url);
  334. getmysql(req, res, "insertUserR", json['uid'], json['cid']);
  335. });
  336. //新增学生端作业
  337. router.route('/addWorks').all((req, res, next) => {
  338. postmysql(req, res, "add_works");
  339. });
  340. //查询已提交作业
  341. router.route('/selectWork').all((req, res, next) => {
  342. var json = queryString(req.url);
  343. getmysql(req, res, "selectWork", json['cid'], json['stage'], json['task'], json['uid']);
  344. });
  345. //查询作业详情
  346. router.route('/selectWorksDetail').all((req, res, next) => {
  347. var json = queryString(req.url);
  348. getmysql(req, res, "selectWorksDetail", json['uid'], json['cid']);
  349. });
  350. //新增作业评分
  351. router.route('/updateWorks').all((req, res, next) => {
  352. var json = queryString(req.url);
  353. getmysql(req, res, "updateWorks", json['rate'], json['tuid'], json['id']);
  354. });
  355. //新增素材信息
  356. router.route('/addMtl').all((req, res, next) => {
  357. var json = queryString(req.url);
  358. getmysql(req, res, "add_mtl", json['cInfo'], json['t'], json['cBy']);
  359. });
  360. //根据类型查询素材信息
  361. router.route('/selectMtl').all((req, res, next) => {
  362. var json = queryString(req.url);
  363. getmysql(req, res, "selectMtl", json['t'], json['page'], 10);
  364. });
  365. //查询学生信息
  366. router.route('/selectSDetail').all((req, res, next) => {
  367. var json = queryString(req.url);
  368. getmysql(req, res, "selectStudentDetail", json['uid']);
  369. });
  370. //查询个人课程
  371. router.route('/selectMyCourse').all((req, res, next) => {
  372. var json = queryString(req.url);
  373. getmysql(req, res, "selectMyCourse", json['uid']);
  374. });
  375. //查询个人课程groupby课程id
  376. router.route('/selectMyCourseBycid').all((req, res, next) => {
  377. var json = queryString(req.url);
  378. getmysql(req, res, "selectMyCourseBycid", json['uid']);
  379. });
  380. //查询所有课程
  381. router.route('/selectAllCourse').all((req, res, next) => {
  382. var json = queryString(req.url);
  383. getmysql(req, res, "selectAllCourse", json['oid'], json['page'], 10);
  384. });
  385. //删除素材
  386. router.route('/deleteM').all((req, res, next) => {
  387. var json = queryString(req.url);
  388. getmysql(req, res, "deleteM", json['id']);
  389. });
  390. //点击阶段时添加观看人数
  391. router.route('/updateVc').all((req, res, next) => {
  392. var json = queryString(req.url);
  393. getmysql(req, res, "updateVc", json['cid']);
  394. });
  395. //删除课程
  396. router.route('/deleteCourse').all((req, res, next) => {
  397. var json = queryString(req.url);
  398. getmysql(req, res, "deleteCourse", json['cid']);
  399. });
  400. //查看课程
  401. router.route('/select_course_detail').all((req, res, next) => {
  402. var json = queryString(req.url);
  403. getmysql(req, res, "select_course_detail", json['cid']);
  404. });
  405. //模糊查找课程
  406. // router.route('/searchCourse').all((req, res, next) => {
  407. // var json = queryString(req.url);
  408. // getmysql(req, res, "searchCourse", json['cu'], json['cn'], json['page'], 10);
  409. // });
  410. //创建调查问卷
  411. router.route('/addAsk').all((req, res, next) => {
  412. postmysql(req, res, "insert_ask");
  413. });
  414. //学生提交问卷
  415. router.route('/addAskList').all((req, res, next) => {
  416. postmysql(req, res, "insert_askList");
  417. });
  418. //根据课程id阶段id获取已提交的问卷
  419. router.route('/getAskListByCidStage').all((req, res, next) => {
  420. var json = queryString(req.url);
  421. getmysql(req, res, "getAskListByCidStage", json['cid'], json['stage'], json['task']);
  422. });
  423. //获取调查问卷
  424. router.route('/getAsk').all((req, res, next) => {
  425. var json = queryString(req.url);
  426. getmysql(req, res, "select_ask", json['uid'], json['page'], 10);
  427. });
  428. //问卷调查数据统计
  429. router.route('/getAskListByAskid').all((req, res, next) => {
  430. var json = queryString(req.url);
  431. getmysql(req, res, "select_askListByAskid", json['aid']);
  432. });
  433. //删除学生提交问卷
  434. router.route('/deleteAskList').all((req, res, next) => {
  435. postmysql(req, res, "update_askList_delete");
  436. });
  437. //根据id获取调查问卷
  438. router.route('/getAskList').all((req, res, next) => {
  439. var json = queryString(req.url);
  440. getmysql(req, res, "select_askList", json['uid'], json['page'], 10);
  441. });
  442. //查看便签列表
  443. router.route('/selectNote').all((req, res, next) => {
  444. var json = queryString(req.url);
  445. getmysql(req, res, "selectNote", json['uid']);
  446. });
  447. //新增便签列表
  448. router.route('/insertNote').all((req, res, next) => {
  449. var json = queryString(req.url);
  450. getmysql(req, res, "insertNote", json['uid'], json['c']);
  451. });
  452. //根据便签id修改便签内容
  453. router.route('/updateNote').all((req, res, next) => {
  454. var json = queryString(req.url);
  455. getmysql(req, res, "updateNote", json['nid'], json['c']);
  456. });
  457. //删除便签
  458. router.route('/deleteNote').all((req, res, next) => {
  459. var json = queryString(req.url);
  460. getmysql(req, res, "deleteNote", json['nid']);
  461. });
  462. //查询便签
  463. router.route('/selectNoteContent').all((req, res, next) => {
  464. var json = queryString(req.url);
  465. getmysql(req, res, "selectNoteContent", json['cn']);
  466. });
  467. //修改用户信息
  468. router.route('/updateUserByEdu').all((req, res, next) => {
  469. postmysql(req, res, "updateUserByEdu");
  470. });
  471. //查询用户信息
  472. router.route('/selectUser').all((req, res, next) => {
  473. var json = queryString(req.url);
  474. getmysql(req, res, "selectUser", json['userid']);
  475. });
  476. //查询分类及子分类
  477. router.route('/selectType').all((req, res, next) => {
  478. var json = queryString(req.url);
  479. getmysql(req, res, "selectType", );
  480. });
  481. //更加父id查询分类
  482. router.route('/selectTypeByPid').all((req, res, next) => {
  483. var json = queryString(req.url);
  484. getmysql(req, res, "selectTypeByPid", json['pid']);
  485. });
  486. //点击工具计数
  487. router.route('/insertToolsCount').all((req, res, next) => {
  488. var json = queryString(req.url);
  489. getmysql(req, res, "insertToolsCount", json['cid'], json['chid'], json['uid'], json['tid'], json['count']);
  490. });
  491. //修改工具次数
  492. router.route('/updateToolsCount').all((req, res, next) => {
  493. var json = queryString(req.url);
  494. getmysql(req, res, "updateToolsCount", json['cid'], json['chid'], json['uid'], json['tid'], json['count']);
  495. });
  496. //查询工具次数
  497. router.route('/selectToolsCount').all((req, res, next) => {
  498. var json = queryString(req.url);
  499. getmysql(req, res, "selectToolsCount", json['cid'], json['chid'], json['uid']);
  500. });
  501. //lsc
  502. //admin 查询学校
  503. router.route('/getSchoolAdmin').all((req, res, next) => {
  504. var json = queryString(req.url);
  505. getmysql(req, res, "select_school", json['page'], 10);
  506. });
  507. //admin 添加学校
  508. router.route('/addSchoolAdmin').all((req, res, next) => {
  509. postmysql(req, res, "add_school");
  510. });
  511. //admin 删除学校
  512. router.route('/deleteSchoolAdmin').all((req, res, next) => {
  513. postmysql(req, res, "delete_school");
  514. });
  515. //admin 查询班级
  516. router.route('/getClassAdmin').all((req, res, next) => {
  517. var json = queryString(req.url);
  518. getmysql(req, res, "select_classAdmin", json['cn'], json['page'], 10);
  519. });
  520. //admin 添加班级
  521. router.route('/addClassAdmin').all((req, res, next) => {
  522. postmysql(req, res, "add_classAdmin");
  523. });
  524. //admin 查询班级是否重复
  525. router.route('/getClassRepeat').all((req, res, next) => {
  526. var json = queryString(req.url);
  527. getmysql(req, res, "select_classRepeatAdmin", json['n'], json['oid']);
  528. });
  529. //admin 发布通知
  530. router.route('/addNews').all((req, res, next) => {
  531. postmysql(req, res, "add_news");
  532. });
  533. //admin 删除通知
  534. router.route('/deleteNews').all((req, res, next) => {
  535. postmysql(req, res, "delete_news");
  536. });
  537. //admin 添加banner
  538. router.route('/addBanner').all((req, res, next) => {
  539. postmysql(req, res, "add_banner");
  540. });
  541. //admin 添加banner
  542. router.route('/deleteBanner').all((req, res, next) => {
  543. postmysql(req, res, "delete_banner");
  544. });
  545. //admin 查询banner
  546. router.route('/getBanner').all((req, res, next) => {
  547. var json = queryString(req.url);
  548. getmysql(req, res, "select_banner");
  549. });
  550. //admin 查询课程getSearchCourse
  551. router.route('/getSearchCourse').all((req, res, next) => {
  552. var json = queryString(req.url);
  553. getmysql(req, res, "selectAll_courseSearch", json['t']);
  554. });
  555. //admin 查询所有课程专区
  556. router.route('/getZone').all((req, res, next) => {
  557. getmysql(req, res, "select_zone");
  558. });
  559. //admin 添加课程专区
  560. router.route('/addZone').all((req, res, next) => {
  561. postmysql(req, res, "insert_classZone");
  562. });
  563. //查询所有课程专区下的课程
  564. router.route('/getZoneClass').all((req, res, next) => {
  565. var json = queryString(req.url);
  566. getmysql(req, res, "select_zoneClass", json['bid'], json['oid'], json['page'], 10);
  567. });
  568. //查询所有课程专区下的课程
  569. router.route('/getZoneClassStudent').all((req, res, next) => {
  570. var json = queryString(req.url);
  571. getmysql(req, res, "select_zoneClass", json['bid'], json['oid'], json['page'], 20);
  572. });
  573. //admin 后台查看专区下课程的数量
  574. router.route('/getZoneClassNum').all((req, res, next) => {
  575. var json = queryString(req.url);
  576. getmysql(req, res, "select_zoneClassNum", json['bid']);
  577. });
  578. //admin 后台添加课程专区时查看课程是否在此专区重复
  579. router.route('/getZoneClassRepeat').all((req, res, next) => {
  580. var json = queryString(req.url);
  581. getmysql(req, res, "select_zoneClassRepeat", json['pid'], json['cid']);
  582. });
  583. //把课程添加进专区
  584. router.route('/addZoneCourse').all((req, res, next) => {
  585. postmysql(req, res, "insert_app");
  586. });
  587. //admin 删除课程专区底下的课程
  588. router.route('/deleteZoneCourse').all((req, res, next) => {
  589. postmysql(req, res, "delete_app");
  590. });
  591. //admin 删除班级
  592. router.route('/deleteZone').all((req, res, next) => {
  593. postmysql(req, res, "delete_zone");
  594. });
  595. //admin 后台专区上移下移
  596. router.route('/zoneRank').all((req, res, next) => {
  597. postmysql(req, res, "update_classRank");
  598. });
  599. //admin 添加模板文档
  600. router.route('/addTemplateAdmin').all((req, res, next) => {
  601. postmysql(req, res, "add_template");
  602. });
  603. //admin 添加模板文档
  604. router.route('/deleteTemplateAdmin').all((req, res, next) => {
  605. postmysql(req, res, "delete_template");
  606. });
  607. //admin 查询模板文档
  608. router.route('/getTemplateAdmin').all((req, res, next) => {
  609. var json = queryString(req.url);
  610. getmysql(req, res, "select_template", json['page'], 10);
  611. });
  612. //admin 添加项目模板文档
  613. router.route('/addCourseTemplateAdmin').all((req, res, next) => {
  614. postmysql(req, res, "add_courseTemplate");
  615. });
  616. //admin 添加项目模板文档
  617. router.route('/deleteCourseTemplateAdmin').all((req, res, next) => {
  618. postmysql(req, res, "delete_courseTemplate");
  619. });
  620. //admin 查询项目模板文档
  621. router.route('/getCourseTemplateAdmin').all((req, res, next) => {
  622. var json = queryString(req.url);
  623. getmysql(req, res, "select_courseTemplate", json['page'], 10);
  624. });
  625. //teacher 查询项目模板
  626. router.route('/getCourseTemplateT').all((req, res, next) => {
  627. var json = queryString(req.url);
  628. getmysql(req, res, "select_courseTemplateT");
  629. });
  630. //admin 查询课程
  631. router.route('/getCourseAdmin').all((req, res, next) => {
  632. var json = queryString(req.url);
  633. getmysql(req, res, "select_courseAdmin", json['cn'], json['page'], 10);
  634. });
  635. //admin 查询模板文档
  636. router.route('/deleteCourseAdmin').all((req, res, next) => {
  637. postmysql(req, res, "delete_courseAdmin", );
  638. });
  639. //teacher 查询模板
  640. router.route('/getTemplateT').all((req, res, next) => {
  641. var json = queryString(req.url);
  642. getmysql(req, res, "select_templateT");
  643. });
  644. //思维网格 创建房间
  645. router.route('/insertRoom').all((req, res, next) => {
  646. postmysql(req, res, "insertRoom");
  647. });
  648. //协同编辑 创建房间
  649. router.route('/insertRoomByFile').all((req, res, next) => {
  650. var json = queryString(req.url);
  651. getmysql(req, res, "insertRoomByFile", json["uid"], json["n"], json["d"]);
  652. });
  653. //思维网格 查询是否是重复房间号
  654. router.route('/checkRoomNum').all((req, res, next) => {
  655. var json = queryString(req.url);
  656. getmysql(req, res, "checkRoomNum", json['num']);
  657. });
  658. //协同编辑 查询是否是重复房间号
  659. router.route('/checkRoomNumByFile').all((req, res, next) => {
  660. var json = queryString(req.url);
  661. getmysql(req, res, "checkRoomNumByFile", json['num']);
  662. });
  663. //思维网格 根据房间号或者用户id查询房间信息
  664. router.route('/selectRoom').all((req, res, next) => {
  665. var json = queryString(req.url);
  666. getmysql(req, res, "selectRoom", json['uid']);
  667. });
  668. //思维网格 根据房间号或者用户id查询房间信息
  669. router.route('/getRoom').all((req, res, next) => {
  670. var json = queryString(req.url);
  671. getmysql(req, res, "select_room", json['fid']);
  672. });
  673. //协同编辑 根据房间号或者用户id查询房间信息
  674. router.route('/selectRoomByFile').all((req, res, next) => {
  675. var json = queryString(req.url);
  676. getmysql(req, res, "selectRoomByFile", json['uid']);
  677. });
  678. //思维网格 修改房间数据
  679. router.route('/updateRoomData').all((req, res, next) => {
  680. postmysql(req, res, "updateRoomData");
  681. });
  682. router.route('/updateFileData').all((req, res, next) => {
  683. var json = queryString(req.url);
  684. var json2 = json['mode'].split(',');
  685. getmysql(req, res, "updateFileData", json2[0], json2[1]);
  686. });
  687. router.route('/select_file').all((req, res, next) => {
  688. var json = queryString(req.url);
  689. getmysql(req, res, "select_file", json['fid']);
  690. });
  691. //思维网格 解散房间
  692. router.route('/dismiss').all((req, res, next) => {
  693. postmysql(req, res, "update_room");
  694. });
  695. //提交提问
  696. router.route('/addProblem').all((req, res, next) => {
  697. postmysql(req, res, "add_problem");
  698. //cid 课程id,chid 章节id,t 提问内容,uid 用户id
  699. });
  700. //查询提交的提问
  701. router.route('/getProblem').all((req, res, next) => {
  702. var json = queryString(req.url); //cid 课程id,page 页数
  703. getmysql(req, res, "select_problem", json['cid'], json['page'], 10);
  704. });
  705. //作业生成报告
  706. router.route('/getWorkData').all((req, res, next) => {
  707. var json = queryString(req.url); //cid 课程id,page 页数
  708. getmysql(req, res, "select_work_data", json['cid']);
  709. });
  710. router.route('/batchRegistration').post(function(req, res, next) {
  711. var users = req.body[0];
  712. //循环注册
  713. var _username = users.username;
  714. var _password = users.password || "123456";
  715. var _alias = users.alias;
  716. var _oid = users.oid;
  717. var _ph = users.ph;
  718. var _class = users.cid;
  719. //加密密碼
  720. _password = bcrypt.hashSync(_password, bcrypt.genSaltSync(10));
  721. //生成激活碼
  722. let _hashstr = new Date().getTime() + "";
  723. let _digest = crypto.createHash('sha256').update(_hashstr, 'utf8').digest('hex');
  724. //用戶數據
  725. var _userdata = [
  726. _username,
  727. _password,
  728. _alias,
  729. "",
  730. 1,
  731. _username,
  732. "",
  733. generateAPIKey(_username),
  734. _digest,
  735. "",
  736. ];
  737. //參數拼接,註冊
  738. _userdata.unshift(_mysqluser[0], _mysqluser[1], "pbl_add_batchregister");
  739. //用戶註冊處理
  740. mysql.usselect(_userdata, function(ret) {
  741. res.end(JSON.stringify({ uid: ret[1][0].uid, ph: _ph, oid: _oid, cid: _class, success: 1 }));
  742. // console.log(ret[0][0].type == 1);
  743. });
  744. });
  745. function generateAPIKey(username) {
  746. let timeStamp = new Date().getTime();
  747. let hashStr = timeStamp + username;
  748. let digest = crypto.createHash('sha256').update(hashStr, 'utf8').digest('hex');
  749. return digest;
  750. }
  751. queryString = function(url) {
  752. var a = url.split("?");
  753. var json = querystring.parse(a[1])
  754. return json;
  755. }
  756. //post存儲過程處理
  757. postmysql = function(req, res, functionname) {
  758. //mode的處理
  759. if (req.body[0]) {
  760. p = Object.values(req.body[0]);
  761. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  762. //執行存儲過程
  763. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  764. }
  765. }
  766. //get獲取數據庫信息
  767. getmysql = function(req, res, functionname, ...p) {
  768. p = p || [];
  769. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  770. //執行存儲過程
  771. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); //
  772. }
  773. //post存储过程处理
  774. userpostmysql = function(req, res, functionname) {
  775. //mode的处理
  776. if (req.body.mode) {
  777. p = req.body.mode.split(",");
  778. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  779. //执行存储过程
  780. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  781. }
  782. }
  783. //get获取数据库信息
  784. usergetmysql = function(req, res, functionname, ...p) {
  785. p = p || [];
  786. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  787. //执行存储过程
  788. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); //
  789. }
  790. module.exports = router;