tests.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. const express = require('express');
  2. const router = express.Router();
  3. const utils = require("../utils/index.js");
  4. const {primary}=require("../utils/roleString");
  5. const pools = require("../utils/pools.js");
  6. const xlsx = require('node-xlsx');
  7. const path = require('path');
  8. const fileEvent = require('../utils/file');
  9. //添加测试账号
  10. router.post("/addTests", async (req, res) => {
  11. let sql = "INSERT INTO tests(name,remark,more_id) VALUES (?,?,?)",
  12. obj = req.body;
  13. let user = await utils.getUserInfo({req, res,addMore:true});
  14. await pools({sql,val:[obj.name, obj.remark,user.moreId],run:false,res,req});
  15. });
  16. //查询测试账号
  17. router.post("/getTests", async (req, res) => {
  18. let user = await utils.getUserInfo({req, res}),obj=req.body;
  19. let sql = `SELECT id,name,remark,update_time AS updateTime,create_time AS createTime FROM tests WHERE 1=1`;
  20. sql=utils.setLike(sql,"name",obj.name);
  21. sql=utils.setMoreId(sql,user);
  22. let {total}=await utils.getSum({sql,name:"tests",res,req});
  23. sql+=` ORDER BY id DESC`;
  24. sql=utils.pageSize(sql,obj.page,obj.size);
  25. let {result}=await pools({sql,res,req});
  26. res.send(utils.returnData({ data: result ,total}));
  27. });
  28. //修改测试账号
  29. router.post("/upTests", async (req, res) => {
  30. let sql = "UPDATE tests SET name=?,remark=? WHERE id=?",
  31. obj = req.body;
  32. await pools({sql,val:[obj.name, obj.remark, obj.id],run:false,res,req});
  33. });
  34. //删除测试账号
  35. router.post("/delTests", async (req, res) => {
  36. let sql = "DELETE FROM tests WHERE id=?",
  37. obj = req.body;
  38. await pools({sql,val:[obj.id],run:false,res,req});
  39. });
  40. //测试菜单接口权限
  41. router.post("/checkMenu",async (req,res)=>{
  42. //需要有roleKey1 这个菜单权限才能请求!
  43. await utils.checkPermi({role:["roleKey1"],res,req});
  44. res.send(utils.returnData({data:{msg:"请求成功了!"}}));
  45. });
  46. //测试角色接口权限
  47. router.post("/checkRole",async (req,res)=>{
  48. //需要有primary 这个角色权限才能请求!
  49. await utils.checkRole({req,res,role:[primary]});
  50. res.send(utils.returnData({data:{msg:"请求成功了!"}}));
  51. });
  52. //导入数据
  53. router.post("/importTests",async (req,res)=>{
  54. let sql = "INSERT INTO tests(`name`,`remark`,`more_id`) VALUES ?";
  55. let fileArr=await fileEvent(req,res);
  56. let filename=fileArr[0].filename;
  57. //配置获取文件路径
  58. let xlsxRes = xlsx.parse(`${path.join(__dirname, '../','public/')}${filename}`, { cellDates: true });
  59. let list=xlsxRes[0].data;
  60. list.splice(0,1);
  61. await pools({sql,val:[list],run:false,res,req,msg:"请确认文档导入值没有问题!!!"});
  62. });
  63. //下载模板
  64. router.post("/downloadTemplate",async (req,res)=>{
  65. let data =[ ['名称','备注','多账户编号']];
  66. let buffer = xlsx.build([{name:'sheet1',data}]);
  67. const filename = '测试模板.xlsx';
  68. const encodedFilename = encodeURI(filename);
  69. res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
  70. res.send(buffer);
  71. });
  72. //导出数据
  73. router.post("/exportTest",async (req,res)=>{
  74. let user = await utils.getUserInfo({req, res}),obj=req.body;
  75. let sql = `SELECT id,name,remark FROM tests WHERE 1=1`;
  76. sql=utils.setLike(sql,"name",obj.name);
  77. sql=utils.setMoreId(sql,user);
  78. sql+=` ORDER BY id DESC`;
  79. sql=utils.pageSize(sql,obj.page,obj.size);
  80. let {result}=await pools({sql,res,req});
  81. let data =[ ['编号','名称','备注']];
  82. result.map(t=>{
  83. data.push(Object.values(t))
  84. })
  85. let buffer = xlsx.build([{name:'sheet1',data}]);
  86. const filename = '测试数据.xlsx';
  87. const encodedFilename = encodeURI(filename);
  88. res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
  89. res.send(buffer);
  90. });
  91. module.exports = router;