vaccine.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. const db = require('../../db/index.js');
  2. const bcrypt = require("bcryptjs");
  3. const jwt = require("jsonwebtoken");
  4. const config = require('../../config.js')
  5. //疫苗接种列表
  6. exports.vaccinesList = async (req, res) => {
  7. const vaccines = req.query.vaccine; // 从查询参数获取用户名
  8. const date = req.query.date; // 从查询参数获取年龄
  9. const pageNum = parseInt(req.query.pageNum, 10) || 1;
  10. const pageSize = parseInt(req.query.pageSize, 10) || 10;
  11. // 验证参数
  12. if (isNaN(pageNum) || isNaN(pageSize) || pageNum < 1 || pageSize < 1) {
  13. return res.rescc('分页参数无效', 400);
  14. }
  15. const offset = (pageNum - 1) * pageSize;
  16. const offset2 = pageNum * pageSize;
  17. // 构建查询语句和参数数组,使用占位符和适当的逻辑操作符(如 AND 和 OR)
  18. let query = 'select * from ev_vaccines where 1=1'; // 使用恒等式作为基础条件,便于添加额外的条件而不改变原有逻辑结构。
  19. // SELECT * FROM table_name LIMIT page_size OFFSET (page_number - 1) * page_size;
  20. let values = []; // 初始化参数数组以防止SQL注入。
  21. if (vaccines) {
  22. query += ' AND vaccine like ?'; // 使用 AND 来添加条件。
  23. values.push(`%${vaccines}%`); // 将值添加到参数数组中。
  24. }
  25. if (date) {
  26. query += ' AND date = ?'; // 使用 AND 来添加条件。
  27. values.push(date); // 将值添加到参数数组中。
  28. }
  29. // 查询总记录数
  30. const countQuery = 'select count(*) as total from ev_vaccines where 1=1';
  31. db.query(countQuery, values, (err, results) => {
  32. if (err) {
  33. return res.rescc(err);
  34. }
  35. const totalRecords = results[0].total;
  36. // query += ' limit ? offset ?';
  37. query += ' limit ?,?';
  38. values.push(offset, offset2); // 将值添加到参数数组中。
  39. db.query(query, values, (err, results) => {
  40. if (err) {
  41. return res.rescc(err);
  42. }
  43. const resultAll = {
  44. data: results,
  45. total: (vaccines !== "" || date !== "") ? results.length : totalRecords
  46. }
  47. res.rescc("获取疫苗接种列表请求成功", 200, resultAll);
  48. })
  49. })
  50. }
  51. //新增疫苗接种信息
  52. exports.addVaccine = (req, res) => {
  53. const vaccineInfo = req.body
  54. const sqlStr = "select * from ev_vaccines where vaccine=?"
  55. db.query(sqlStr, vaccineInfo.vaccine, (err, results) => {
  56. if (err) {
  57. return res.rescc(err);
  58. }
  59. if (results.length > 0) {
  60. return res.rescc("该疫苗已接种,请确认!");
  61. }
  62. const sql = "insert into ev_vaccines set ?"
  63. db.query(sql, vaccineInfo, (err, results) => {
  64. if (err) {
  65. return res.rescc(err);
  66. }
  67. if (results.affectedRows !== 1) {
  68. return res.rescc("添加失败,请稍后再试!");
  69. }
  70. res.rescc("添加成功", 200);
  71. })
  72. })
  73. }
  74. //修改疫苗接种信息
  75. exports.updataVaccineInfo = (req, res) => {
  76. const sql = "update ev_vaccines set ? where id=?"
  77. db.query(sql, [req.body, req.body.id], (err, results) => {
  78. if (err) {
  79. return res.rescc(err);
  80. }
  81. if (results.affectedRows !== 1) {
  82. return res.rescc("疫苗接种信息更新失败!");
  83. }
  84. res.rescc("疫苗接种信息更新成功!", 200)
  85. })
  86. }
  87. //删除疫苗接种信息
  88. exports.deleteVaccineInfo = (req, res) => {
  89. console.log('req===>>>', req)
  90. const sql = "delete from ev_vaccines where id=?"
  91. db.query(sql, req.params.id, (err, results) => {
  92. if (err) {
  93. return res.rescc(err);
  94. }
  95. if (results.affectedRows !== 1) {
  96. return res.rescc("疫苗接种信息删除失败!");
  97. }
  98. res.rescc("疫苗接种信息删除成功!", 200)
  99. })
  100. }