Преглед на файлове

数据集管理的增删改查、查看导入记录、新增关系的重复导入判断

R преди 1 година
родител
ревизия
bfbfbdbf5f
променени са 5 файла, в които са добавени 78 реда и са изтрити 4 реда
  1. 2 0
      app.js
  2. 73 0
      router/dataMark/dataset.js
  3. 2 1
      router/dataMark/relationship.js
  4. 1 0
      utils/index.js
  5. 0 3
      utils/pools.js

+ 2 - 0
app.js

@@ -31,10 +31,12 @@ const testsRouter = require('./router/tests.js') //测试信息路由
 const componentsRouter = require('./router/components.js')
 const entityRouter = require('./router/dataMark/entity.js')
 const relationshipRouter = require('./router/dataMark/relationship.js')
+const datasetRouter = require('./router/dataMark/dataset.js')
 server.use('/admin', adminRouter)
 server.use('/file', fileRouter)
 server.use('/tests', testsRouter)
 server.use('/components', componentsRouter)
 server.use('/entity', entityRouter)
 server.use('/relationship', relationshipRouter)
+server.use('/dataset', datasetRouter)
 console.log('后端接口启动成功')

+ 73 - 0
router/dataMark/dataset.js

@@ -0,0 +1,73 @@
+const express = require('express')
+const router = express.Router()
+const utils = require('../../utils/index.js')
+const pools = require('../../utils/pools.js')
+// 增加实体
+router.post('/addDataset', async (req, res) => {
+  let sql = 'INSERT INTO dataset_t(`name`,creator_id) VALUES (?,?)',
+    obj = req.body
+  await utils.existName({
+    sql: 'SELECT name FROM dataset_t WHERE name=?',
+    name: obj.name,
+    res,
+    msg: '该数据集名称已存在!',
+    req
+  })
+  await pools({
+    sql,
+    val: [obj.name, obj.creatorId],
+    run: false,
+    res,
+    req
+  })
+})
+
+//查询
+router.post('/getDatasetList', async (req, res) => {
+  let user = await utils.getUserInfo({ req, res }),
+    obj = req.body
+  let sql = `SELECT 
+    d.id,
+    d.name,
+    d.creator_id AS creatorId,
+    u.name as creatorName,
+    (SELECT count(*) from mark_data_t m where m.dataset_id = d.id AND m.state=1) as marked,
+    (SELECT count(*) from mark_data_t m where m.dataset_id = d.id) as totalNumber
+  FROM 
+    dataset_t d JOIN user u ON d.creator_id = u.id WHERE 1=1` // WHERE 1=1是一个始终为真的条件,后续动态添加查询条件的起点 JOIN mark_data_t m ON d.id = m.dataset_id
+  sql = utils.setLike(sql, 'd.name', obj.name) // 添加一个基于name字段的模糊匹配条件,匹配的值来自obj.name
+  sql = utils.setMoreId(sql, user)
+  let { total } = await utils.getSum({ sql, name: 'dataset_t d', res, req }) // 执行SQL查询并获取结果中的总数
+  sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
+  let { result } = await pools({ sql, res, req })
+  res.send(utils.returnData({ data: result, total }))
+})
+
+// 编辑
+router.post('/updataDataset', async (req, res) => {
+  let sql = 'UPDATE dataset_t SET name=? WHERE id=?',
+    obj = req.body
+  await pools({ sql, val: [obj.name, obj.id], run: false, res, req })
+})
+
+//删除
+router.post('/delDataset', async (req, res) => {
+  obj = req.body
+  let placeholders = obj.map(() => '?').join(',')
+  let sql = `DELETE FROM dataset_t WHERE id in (${placeholders})`
+  await pools({ sql, val: obj, run: false, res, req }) // 注意这里直接传递obj数组作为参数
+})
+
+//查询
+router.post('/getImportRecord', async (req, res) => {
+  let user = await utils.getUserInfo({ req, res }),
+    obj = req.body
+  let sql = `SELECT id,name,address,importor_id,time,data_volume FROM file_import_t WHERE 1=1` // WHERE 1=1是一个始终为真的条件,后续动态添加查询条件的起点
+  sql = utils.setLike(sql, 'name', obj.name) // 添加一个基于name字段的模糊匹配条件,匹配的值来自obj.name
+  sql = utils.setMoreId(sql, user)
+  let { total } = await utils.getSum({ sql, name: 'file_import_t', res, req }) // 执行SQL查询并获取结果中的总数
+  // sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
+  let { result } = await pools({ sql, res, req })
+  res.send(utils.returnData({ data: result, total }))
+})
+module.exports = router

+ 2 - 1
router/dataMark/relationship.js

@@ -96,12 +96,13 @@ 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({
+  let { result } = await pools({
     sql,
     val: [obj.subjectId, obj.objectId, obj.relationshipId, obj.isShow],
     run: false,
     res,
     req
   })
+  console.log('result', result)
 })
 module.exports = router

+ 1 - 0
utils/index.js

@@ -63,6 +63,7 @@ module.exports = {
    * */
   returnData({ code = 1, msg, total = undefined, data = {}, err, req = {}, funName } = {}) {
     if (code == 1 && !msg) msg = '请求成功!'
+    if (code == -1 && err.code == 'ER_DUP_ENTRY' && !msg) msg = '新增数据重复,请检查输入的数据'
     if (code == -1 && !msg) msg = '服务器异常!'
     if (code == 203 && !msg) msg = '登陆失效,请重新登陆!'
     let res = { code, msg, data }

+ 0 - 3
utils/pools.js

@@ -10,10 +10,7 @@ const utils = require('./index.js')
  * */
 module.exports = function pools({ sql, val = [], msg, run = true, res, req } = {}) {
   return new Promise((resolve) => {
-    // console.log('sql', sql)
     pool.query(sql, val, (err, result) => {
-      // console.log(err)
-      // console.log(result)
       if (err) return res.send(utils.returnData({ code: -1, msg, err, req }))
       if (run) return resolve({ result })
       return res.send(utils.returnData({ data: result }))