ssti.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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 = ["10.3.16.226", "ssti_cm"]; //本地双创數據庫信息
  9. // const _mysqlLabor = ["172.16.12.5", "pbl"]; //双创數據庫信息
  10. var crypto = require('crypto');
  11. var https = require('https');
  12. //統壹處理區域
  13. router.use(async function(req, res, next) {
  14. await asynnext(req, res, next);
  15. //// make sure we go to the next routes and don't stop here
  16. //res.end("");
  17. });
  18. /**
  19. * @des 參數解釋同上
  20. */
  21. function asynnext(req, res, next) {
  22. //異步處理
  23. return new Promise(async(resolve, reject) => {
  24. next();
  25. //resolve(true);aa
  26. });
  27. }
  28. /*測試*/
  29. router.route('/a').all((req, res, next) => {
  30. var json = GetData(req);
  31. getmysql(req, res, "a");
  32. });
  33. // router.route('/b').all((req, res, next) => {
  34. // postmysql(req, res, "b");
  35. // });
  36. //qgt 查看数据库是否有此人
  37. router.use((req,res,next)=>{
  38. const uid = GetData(req)['uid'];
  39. let p = [_mysqlLabor[0], _mysqlLabor[1], 'select_UserByUserId',uid];
  40. mysql.usselect(p,function(result){
  41. if(result[0].length==1){
  42. next();
  43. }else{
  44. res.Back(1,"用户不存在",GetData(req))
  45. }
  46. })
  47. })
  48. //qgt 新增全站通知
  49. router.post('/CreateNewNotification',(req,res)=>{
  50. //uid title brief
  51. const ReqData = GetData(req);
  52. //随机ID
  53. const nid = crypto.randomUUID({ disableEntropyCache: true })
  54. let p = [_mysqlLabor[0], _mysqlLabor[1], 'insert_New',nid,ReqData['title'],ReqData['brief'],ReqData['uid'],getNowDate()];
  55. mysql.usselect(p,function(result){
  56. if(result==1){
  57. res.Back(0,"添加成功",result)
  58. }else{
  59. res.Back(1,"添加失败",result)
  60. }
  61. })
  62. })
  63. //qgt 获取全站通知
  64. router.get('/SelectNotification',(req,res)=>{
  65. //uid title nowPage lim
  66. const ReqData = GetData(req);
  67. let p = [_mysqlLabor[0], _mysqlLabor[1], 'select_NewByTitle',ReqData['title'],ReqData['nowPage'],ReqData['lim']];
  68. mysql.usselect(p,function(result){
  69. res.Back(0,"查询成功",result)
  70. })
  71. })
  72. //qgt 删除通知
  73. router.post("/DeleteNotification",(req,res)=>{
  74. //uid nid
  75. const ReqData = GetData(req);
  76. const p = [_mysqlLabor[0], _mysqlLabor[1], 'update_NewStatusById',ReqData['nid']];
  77. mysql.usselect(p,(result)=>{
  78. if(result==1){
  79. res.Back(0,"成功删除一条通知",result);
  80. }else{
  81. res.Back(1,"删除通知失败",result);
  82. }
  83. })
  84. })
  85. //qgt 获取消息通知详细
  86. router.get("/SelectNotificationDetail",(req,res)=>{
  87. //uid nid
  88. const ReqData = GetData(req);
  89. const p = [_mysqlLabor[0], _mysqlLabor[1], 'select_NewById',ReqData['nid']];
  90. mysql.usselect(p,(result)=>{
  91. if(result[0].length==1){
  92. res.Back(0,"成功获取消息详细",result[0][0]);
  93. }else{
  94. res.Back(1,"获取消息消息失败")
  95. }
  96. })
  97. })
  98. GetData = function(req) {
  99. var a = req.url.split("?");
  100. var json = querystring.parse(a[1])
  101. if(Object.keys(json).length!=0){
  102. return json
  103. }else{
  104. return req.body
  105. }
  106. }
  107. //post存儲過程處理
  108. postmysql = function(req, res, functionname) {
  109. //mode的處理
  110. if (req.body[0]) {
  111. p = Object.values(req.body[0]);
  112. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  113. //執行存儲過程
  114. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  115. }
  116. }
  117. //post存儲過程處理
  118. postmysql2 = function(req, res, functionname) {
  119. //mode的處理
  120. if (req.body) {
  121. p = Object.values(req.body)[0].split(",");
  122. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  123. //執行存儲過程
  124. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  125. }
  126. }
  127. //post存儲過程處理
  128. postmysql3 = function(req, res, functionname) {
  129. //mode的處理
  130. if (req.body) {
  131. p = Object.values(req.body);
  132. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  133. //執行存儲過程
  134. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  135. }
  136. }
  137. //get獲取數據庫信息
  138. getmysql = function(req, res, functionname, ...p) {
  139. p = p || [];
  140. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  141. //執行存儲過程
  142. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); //
  143. }
  144. //post存储过程处理
  145. userpostmysql = function(req, res, functionname) {
  146. //mode的处理
  147. if (req.body.mode) {
  148. p = req.body.mode.split(",");
  149. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  150. //执行存储过程
  151. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); });
  152. }
  153. }
  154. //get获取数据库信息
  155. usergetmysql = function(req, res, functionname, ...p) {
  156. p = p || [];
  157. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  158. //执行存储过程
  159. mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); //
  160. }
  161. // //获取请求数据
  162. // function GetData(req){
  163. // if(req.body['uid']==null){
  164. // return req.query
  165. // }else{
  166. // return req.body
  167. // }
  168. // // return req.query | req.body;
  169. // // if(req.method =='POST'){
  170. // // return req.body;
  171. // // }else if(req.method =="GET"){
  172. // // return req.query;
  173. // // }
  174. // }
  175. //获取当前时间
  176. function getNowDate() {
  177. let date = new Date();
  178. let year = date.getFullYear(); //年
  179. let month = date.getMonth() + 1; //月
  180. let day = date.getDate(); //日
  181. let hour = date.getHours(); //时
  182. let minutes = date.getMinutes(); //分
  183. let seconds = date.getSeconds(); //秒
  184. if (month > 1 && month <= 9) month = "0" + month;
  185. if (day > 0 && day <= 9) day = "0" + day;
  186. if (hour > 0 && hour < 9) hour = "0" + hour;
  187. if (minutes > 0 && minutes <= 9) minutes = "0" + minutes;
  188. if (seconds > 0 && seconds < 9) seconds = "0" + seconds;
  189. return `${year}-${month}-${day} ${hour}:${minutes}:${seconds}`;
  190. }
  191. module.exports = router;