relationship.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. const express = require('express')
  2. const router = express.Router()
  3. const utils = require('../../utils/index.js')
  4. const pools = require('../../utils/pools.js')
  5. // 增加实体
  6. router.post('/addRelationship', async (req, res) => {
  7. let sql = 'INSERT INTO relationship_t(`name`) VALUES (?)',
  8. obj = req.body
  9. await utils.existName({
  10. sql: 'SELECT name FROM relationship_t WHERE name=?',
  11. name: obj.name,
  12. res,
  13. msg: '该实体关系已存在!',
  14. req
  15. })
  16. await pools({
  17. sql,
  18. val: [obj.name],
  19. run: false,
  20. res,
  21. req
  22. })
  23. })
  24. //查询测试账号
  25. router.post('/getRelationshipList', async (req, res) => {
  26. let user = await utils.getUserInfo({ req, res }),
  27. obj = req.body
  28. let sql = `SELECT id AS relationshipId,name FROM relationship_t WHERE 1=1`
  29. sql = utils.setLike(sql, 'name', obj.name)
  30. sql = utils.setMoreId(sql, user)
  31. let { total } = await utils.getSum({ sql, name: 'relationship_t', res, req })
  32. sql += ` ORDER BY id ASC`
  33. sql = utils.pageSize(sql, obj.page, obj.size)
  34. let { result } = await pools({ sql, res, req })
  35. res.send(utils.returnData({ data: result, total }))
  36. })
  37. //删除
  38. router.post('/delRelationship', async (req, res) => {
  39. obj = req.body
  40. let placeholders = obj.map(() => '?').join(',')
  41. let sql = `DELETE FROM relationship_t WHERE id in (${placeholders})`
  42. await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数
  43. })
  44. //修改
  45. router.post('/updataRelationship', async (req, res) => {
  46. let sql = 'UPDATE relationship_t SET name=? WHERE id=?',
  47. obj = req.body
  48. await pools({ sql, val: [obj.name, obj.relationshipId], run: false, res, req })
  49. })
  50. // 获取ERList
  51. router.post('/getERList', async (req, res) => {
  52. let user = await utils.getUserInfo({ req, res }),
  53. obj = req.body
  54. // let sql = `SELECT relationship_id AS relationshipId,name FROM relationship WHERE 1=1`
  55. let sql = `(SELECT
  56. r.NAME AS relationshipName,
  57. r.id AS relationshipId,
  58. t.object_id AS objectId,
  59. t.is_show,
  60. t.id AS ERId,
  61. (SELECT name from entity_t e where e.id = t.object_id) as objectName,
  62. t.subject_id AS subjectId,
  63. (SELECT name from entity_t e where e.id = t.subject_id) as subjectName
  64. FROM
  65. entity_relationship_t t JOIN relationship_t r ON r.id = t.relationship_id
  66. WHERE r.id = ? )`
  67. let sqlCount = 'select count(1) from ' + sql + ' z'
  68. if (obj.entityName) {
  69. sql = `select z.* from ${sql} z where z.objectName like '%${obj.entityName}%' OR z.subjectName like '%${obj.entityName}%'`
  70. sqlCount = 'select count(1) from (' + sql + ') z'
  71. }
  72. let sss = await pools({ sql: sqlCount, val: [obj.relationshipId], req })
  73. let total = sss.result[0]['count(1)']
  74. let { result } = await pools({ sql, val: [obj.relationshipId], req })
  75. result = result.map((item) => ({
  76. ...item,
  77. isShow: item.is_show === 1
  78. }))
  79. res.send(utils.returnData({ data: result, total }))
  80. })
  81. //删除ER
  82. router.post('/delER', async (req, res) => {
  83. obj = req.body
  84. let placeholders = obj.map(() => '?').join(',')
  85. let sql = `DELETE FROM entity_relationship_t WHERE id in (${placeholders})`
  86. await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数
  87. })
  88. // 增加ER
  89. router.post('/addER', async (req, res) => {
  90. let sql = 'INSERT INTO entity_relationship_t(subject_id,object_id,relationship_id,is_show) VALUES (?,?,?,?)',
  91. obj = req.body
  92. let { result } = await pools({
  93. sql,
  94. val: [obj.subjectId, obj.objectId, obj.relationshipId, obj.isShow],
  95. run: false,
  96. res,
  97. req
  98. })
  99. console.log('result', result)
  100. })
  101. module.exports = router