const express = require('express') const router = express.Router() const utils = require('../../utils/index.js') const pools = require('../../utils/pools.js') // 增加实体 router.post('/addRelationship', async (req, res) => { let sql = 'INSERT INTO relationship_t(`name`) VALUES (?)', obj = req.body await utils.existName({ sql: 'SELECT name FROM relationship_t WHERE name=?', name: obj.name, res, msg: '该实体关系已存在!', req }) await pools({ sql, val: [obj.name], run: false, res, req }) }) //查询测试账号 router.post('/getRelationshipList', async (req, res) => { let user = await utils.getUserInfo({ req, res }), obj = req.body let sql = `SELECT id AS relationshipId,name FROM relationship_t WHERE 1=1` sql = utils.setLike(sql, 'name', obj.name) sql = utils.setMoreId(sql, user) let { total } = await utils.getSum({ sql, name: 'relationship_t', res, req }) sql += ` ORDER BY id ASC` sql = utils.pageSize(sql, obj.page, obj.size) let { result } = await pools({ sql, res, req }) res.send(utils.returnData({ data: result, total })) }) //删除 router.post('/delRelationship', async (req, res) => { obj = req.body let placeholders = obj.map(() => '?').join(',') let sql = `DELETE FROM relationship_t WHERE id in (${placeholders})` await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数 }) //修改 router.post('/updataRelationship', async (req, res) => { let sql = 'UPDATE relationship_t SET name=? WHERE id=?', obj = req.body await pools({ sql, val: [obj.name, obj.relationshipId], run: false, res, req }) }) // 获取ERList router.post('/getERList', async (req, res) => { let user = await utils.getUserInfo({ req, res }), obj = req.body // let sql = `SELECT relationship_id AS relationshipId,name FROM relationship WHERE 1=1` let sql = `(SELECT r.NAME AS relationshipName, r.id AS relationshipId, t.object_id AS objectId, t.is_show, t.id AS ERId, (SELECT name from entity_t e where e.id = t.object_id) as objectName, t.subject_id AS subjectId, (SELECT name from entity_t e where e.id = t.subject_id) as subjectName FROM entity_relationship_t t JOIN relationship_t r ON r.id = t.relationship_id WHERE r.id = ? )` let sqlCount = 'select count(1) from ' + sql + ' z' if (obj.entityName) { sql = `select z.* from ${sql} z where z.objectName like '%${obj.entityName}%' OR z.subjectName like '%${obj.entityName}%'` sqlCount = 'select count(1) from (' + sql + ') z' } let sss = await pools({ sql: sqlCount, val: [obj.relationshipId], req }) let total = sss.result[0]['count(1)'] let { result } = await pools({ sql, val: [obj.relationshipId], req }) result = result.map((item) => ({ ...item, isShow: item.is_show === 1 })) res.send(utils.returnData({ data: result, total })) }) //删除ER router.post('/delER', async (req, res) => { obj = req.body let placeholders = obj.map(() => '?').join(',') let sql = `DELETE FROM entity_relationship_t WHERE id in (${placeholders})` await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数 }) // 增加ER router.post('/addER', async (req, res) => { let sql = 'INSERT INTO entity_relationship_t(subject_id,object_id,relationship_id,is_show) VALUES (?,?,?,?)', obj = req.body await pools({ sql, val: [obj.subjectId, obj.objectId, obj.relationshipId, obj.isShow], run: false, res, req }) }) module.exports = router