Browse Source

参数配置

CzRger 1 year ago
parent
commit
403ccbefba

+ 71 - 0
ship-test/control/params-control.js

@@ -0,0 +1,71 @@
+import ParamsService from "../service/params-service.js";
+import ApiResult from "../config/api.js";
+const ParamsControl = {
+  list: async (req, res) => {
+    try {
+      ParamsService.list(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  page: async (req, res) => {
+    try {
+      ParamsService.page(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  info: async (req, res) => {
+    try {
+      ParamsService.info(req.params.id).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  add: async (req, res) => {
+    try {
+      ParamsService.add(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  edit: async (req, res) => {
+    try {
+      ParamsService.edit(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  del: async (req, res) => {
+    try {
+      ParamsService.del(req.params?.ids?.split(',')).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+}
+export default ParamsControl

+ 93 - 0
ship-test/control/params-dict-control.js

@@ -0,0 +1,93 @@
+import ParamsDictService from "../service/params-dict-service.js";
+import ApiResult from "../config/api.js";
+const ParamsDictControl = {
+  list: async (req, res) => {
+    try {
+      ParamsDictService.list(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  page: async (req, res) => {
+    try {
+      ParamsDictService.page(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  info: async (req, res) => {
+    try {
+      ParamsDictService.info(req.params.id).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  add: async (req, res) => {
+    try {
+      ParamsDictService.add(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  edit: async (req, res) => {
+    try {
+      ParamsDictService.edit(req.body).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  del: async (req, res) => {
+    try {
+      ParamsDictService.del(req.params?.ids?.split(',')).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  enabled: async (req, res) => {
+    try {
+      ParamsDictService.enabled(req.params?.ids?.split(',')).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+  disabled: async (req, res) => {
+    try {
+      ParamsDictService.disabled(req.params?.ids?.split(',')).then(data => {
+        res.send(new ApiResult().success(data))
+      }).catch((e) => {
+        res.send(new ApiResult().error(null, e))
+      })
+    } catch (e) {
+      res.send(new ApiResult().error(e))
+    }
+  },
+}
+export default ParamsDictControl

+ 6 - 5
ship-test/control/ship-filter-control.js

@@ -1,13 +1,14 @@
 import SourceService from "../service/source-service.js";
 import ApiResult from "../config/api.js";
+import ParamsService from "../service/params-service.js";
 const ShipFilterControl = {
   getConfig: async (req, res) => {
     try {
-      SourceService.list({orderByColumn: 'sort', isAsc: false}).then(data => {
-        res.send(new ApiResult().success(data))
-      }).catch((e) => {
-        res.send(new ApiResult().error(null, e))
-      })
+      const sourceData = await SourceService.list({orderByColumn: 'sort', isAsc: false})
+      for (const source of sourceData) {
+        source.params = await ParamsService.list({sourceId: source.id})
+      }
+      res.send(new ApiResult().success(sourceData))
     } catch (e) {
       res.send(new ApiResult().error(e))
     }

+ 16 - 0
ship-test/entity/params-dict-entity.js

@@ -0,0 +1,16 @@
+import {objToCamel, isValue, YMDHms} from "../../util/index.js";
+
+export default class ParamsEntity {
+  constructor(obj) {
+    objToCamel(obj)
+    this.paramsId = isValue(obj?.paramsId) ? obj.paramsId : null
+    this.id = isValue(obj?.id) ? obj.id : null
+    this.name = isValue(obj?.name) ? obj.name : null
+    this.sort = isValue(obj?.sort) ? obj.sort : 0
+    this.remark = isValue(obj?.remark) ? obj.remark : null
+    this.createTime = isValue(obj?.createTime) ? YMDHms(obj.createTime) : null
+    this.updateTime = isValue(obj?.updateTime) ? YMDHms(obj.updateTime) : null
+    this.cql = isValue(obj?.cql) ? obj.cql : null
+    this.active = isValue(obj?.active) ? obj.active : null
+  }
+}

+ 14 - 0
ship-test/entity/params-entity.js

@@ -0,0 +1,14 @@
+import {objToCamel, isValue, YMDHms} from "../../util/index.js";
+
+export default class ParamsEntity {
+  constructor(obj) {
+    objToCamel(obj)
+    this.sourceId = isValue(obj?.sourceId) ? obj.sourceId : null
+    this.id = isValue(obj?.id) ? obj.id : null
+    this.name = isValue(obj?.name) ? obj.name : null
+    this.sort = isValue(obj?.sort) ? obj.sort : 0
+    this.remark = isValue(obj?.remark) ? obj.remark : null
+    this.createTime = isValue(obj?.createTime) ? YMDHms(obj.createTime) : null
+    this.updateTime = isValue(obj?.updateTime) ? YMDHms(obj.updateTime) : null
+  }
+}

+ 20 - 0
ship-test/routers/index.js

@@ -1,12 +1,32 @@
 import express from 'express'
 import SourceControl from "../control/source-control.js";
+import ParamsControl from "../control/params-control.js";
+import ParamsDictControl from "../control/params-dict-control.js";
 import ShipFilterControl from "../control/ship-filter-control.js";
 const shipTestRouter = express.Router()
+// 数据源
 shipTestRouter.post('/source/list', SourceControl.list)
 shipTestRouter.post('/source/page', SourceControl.page)
 shipTestRouter.get('/source/info/:id', SourceControl.info)
 shipTestRouter.post('/source/add', SourceControl.add)
 shipTestRouter.put('/source/edit', SourceControl.edit)
 shipTestRouter.delete('/source/del/:ids', SourceControl.del)
+// 参数配置
+shipTestRouter.post('/params/list', ParamsControl.list)
+shipTestRouter.post('/params/page', ParamsControl.page)
+shipTestRouter.get('/params/info/:id', ParamsControl.info)
+shipTestRouter.post('/params/add', ParamsControl.add)
+shipTestRouter.put('/params/edit', ParamsControl.edit)
+shipTestRouter.delete('/params/del/:ids', ParamsControl.del)
+// 参数配置-字典
+shipTestRouter.post('/params/dict/list', ParamsDictControl.list)
+shipTestRouter.post('/params/dict/page', ParamsDictControl.page)
+shipTestRouter.get('/params/dict/info/:id', ParamsDictControl.info)
+shipTestRouter.post('/params/dict/add', ParamsDictControl.add)
+shipTestRouter.put('/params/dict/edit', ParamsDictControl.edit)
+shipTestRouter.delete('/params/dict/del/:ids', ParamsDictControl.del)
+shipTestRouter.get('/params/dict/enabled/:ids', ParamsDictControl.enabled)
+shipTestRouter.get('/params/dict/disabled/:ids', ParamsDictControl.disabled)
+// 船筛
 shipTestRouter.get('/ship-filter/get-config', ShipFilterControl.getConfig)
 export default shipTestRouter

+ 216 - 0
ship-test/service/params-dict-service.js

@@ -0,0 +1,216 @@
+import {sqlHandle} from "../config/db.js";
+import {isValue, paramToUnder} from "../../util/index.js";
+import PageResult from "../config/page.js";
+import ParamsDictEntity from "../entity/params-dict-entity.js";
+const ParamsDictService = {
+  list: ({paramsId, name, orderByColumn, isAsc}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params_dict'
+        let where = ['del_flag = 0']
+        if (isValue(paramsId)) {
+          where.push(`params_id = "${paramsId}"`)
+        } else {
+          reject('参数ID不可为空')
+        }
+        if (isValue(name)) {
+          where.push(`name LIKE "%${name}%"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        if (isValue(orderByColumn)) {
+          sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
+        } else {
+          sql += ' ' + `ORDER BY sort DESC`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsDictEntity(v)))
+      } catch (e) {
+        console.log(e)
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  page: ({paramsId, pageNum, pageSize, name, orderByColumn, isAsc}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params_dict'
+        let where = ['del_flag = 0']
+        if (isValue(paramsId)) {
+          where.push(`params_id = "${paramsId}"`)
+        } else {
+          reject('参数ID不可为空')
+        }
+        if (isValue(name)) {
+          where.push(`name LIKE "%${name}%"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        if (isValue(orderByColumn)) {
+          sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
+        } else {
+          sql += ' ' + `ORDER BY sort DESC`
+        }
+        const result = await PageResult(sql, pageNum, pageSize, ParamsDictEntity)
+        resolve(result)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  info: (id) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params_dict'
+        let where = ['del_flag = 0']
+        if (!isValue(id)) {
+          reject('id不可为空')
+          return
+        } else {
+          where.push(`id = ${id}`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsDictEntity(v))?.[0])
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  queryBy: ({name}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params_dict'
+        let where = ['del_flag = 0']
+        if (isValue(name)) {
+          where.push(`name = "${name}"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsDictEntity(v)))
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  add: (form) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        const sql = 'INSERT INTO ship_test_params_dict (params_id, name, remark, sort, cql) VALUES (?, ?, ?, ?, ?)'
+        const paramsDictEntity = new ParamsDictEntity(form)
+        if (!isValue(paramsDictEntity.paramsId)) {
+          reject('参数ID不可为空')
+        }
+        if (!isValue(paramsDictEntity.cql)) {
+          reject('cql不可为空')
+        }
+        const sameValid = await ParamsDictService.queryBy({name: paramsDictEntity.name})
+        if (sameValid.length > 0) {
+          reject('已存在相同名称!')
+          return
+        }
+        const values = [
+          paramsDictEntity.paramsId,
+          paramsDictEntity.name,
+          paramsDictEntity.remark,
+          paramsDictEntity.sort,
+          paramsDictEntity.cql,
+        ]
+        const result = await sqlHandle(sql, values)
+        resolve(result.insertId)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  edit: (form) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params_dict SET name = ?, remark = ?, sort = ?, cql = ?'
+        const paramsDictEntity = new ParamsDictEntity(form)
+        if (!isValue(paramsDictEntity.id)) {
+          reject('id不可为空!')
+          return
+        } else {
+          sql += ' ' + `WHERE id = "${paramsDictEntity.id}"`
+        }
+        if (!isValue(paramsDictEntity.cql)) {
+          reject('cql不可为空')
+        }
+        const sameValid = await ParamsDictService.queryBy({name: paramsDictEntity.name})
+        if (sameValid.filter(v => v.id !== paramsDictEntity.id).length > 0) {
+          reject('已存在相同名称!')
+          return
+        }
+        const values = [
+          paramsDictEntity.name,
+          paramsDictEntity.remark,
+          paramsDictEntity.sort,
+          paramsDictEntity.cql,
+        ]
+        const result = await sqlHandle(sql, values)
+        resolve(paramsDictEntity.id)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  del: (ids) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params_dict SET del_flag = "1"'
+        if (ids?.length === 0) {
+          reject('ids不可为空!')
+          return
+        } else {
+          sql += ' ' + 'WHERE id IN (?)'
+        }
+        const result = await sqlHandle(sql, [ids])
+        resolve('删除成功!')
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  enabled: (ids) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params_dict SET active = 0'
+        if (ids?.length === 0) {
+          reject('ids不可为空!')
+          return
+        } else {
+          sql += ' ' + 'WHERE id IN (?)'
+        }
+        const result = await sqlHandle(sql, [ids])
+        resolve('启用成功!')
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  disabled: (ids) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params_dict SET active = 1'
+        if (ids?.length === 0) {
+          reject('ids不可为空!')
+          return
+        } else {
+          sql += ' ' + 'WHERE id IN (?)'
+        }
+        const result = await sqlHandle(sql, [ids])
+        resolve('禁用成功!')
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  }
+}
+export default ParamsDictService

+ 174 - 0
ship-test/service/params-service.js

@@ -0,0 +1,174 @@
+import {sqlHandle} from "../config/db.js";
+import {isValue, paramToUnder} from "../../util/index.js";
+import PageResult from "../config/page.js";
+import ParamsEntity from "../entity/params-entity.js";
+const ParamsService = {
+  list: ({sourceId, name, orderByColumn, isAsc}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params'
+        let where = ['del_flag = 0']
+        if (isValue(sourceId)) {
+          where.push(`source_id = "${sourceId}"`)
+        } else {
+          reject('数据源ID不可为空')
+        }
+        if (isValue(name)) {
+          where.push(`name LIKE "%${name}%"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        if (isValue(orderByColumn)) {
+          sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
+        } else {
+          sql += ' ' + `ORDER BY sort DESC`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsEntity(v)))
+      } catch (e) {
+        console.log(e)
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  page: ({sourceId, pageNum, pageSize, name, orderByColumn, isAsc}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params'
+        let where = ['del_flag = 0']
+        if (isValue(sourceId)) {
+          where.push(`source_id = "${sourceId}"`)
+        } else {
+          reject('数据源ID不可为空')
+        }
+        if (isValue(name)) {
+          where.push(`name LIKE "%${name}%"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        if (isValue(orderByColumn)) {
+          sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
+        } else {
+          sql += ' ' + `ORDER BY sort DESC`
+        }
+        const result = await PageResult(sql, pageNum, pageSize, ParamsEntity)
+        resolve(result)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  info: (id) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params'
+        let where = ['del_flag = 0']
+        if (!isValue(id)) {
+          reject('id不可为空')
+          return
+        } else {
+          where.push(`id = ${id}`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsEntity(v))?.[0])
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  queryBy: ({name}) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'SELECT * FROM ship_test_params'
+        let where = ['del_flag = 0']
+        if (isValue(name)) {
+          where.push(`name = "${name}"`)
+        }
+        if (where.length > 0) {
+          sql += ' ' + `WHERE ${where.join(' AND ')}`
+        }
+        const result = await sqlHandle(sql)
+        resolve(result.map(v => new ParamsEntity(v)))
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  add: (form) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        const sql = 'INSERT INTO ship_test_params (source_id, name, remark, sort) VALUES (?, ?, ?, ?)'
+        const paramsEntity = new ParamsEntity(form)
+        if (!isValue(paramsEntity.sourceId)) {
+          reject('数据源ID不可为空')
+        }
+        const sameValid = await ParamsService.queryBy({name: paramsEntity.name})
+        if (sameValid.length > 0) {
+          reject('已存在相同名称!')
+          return
+        }
+        const values = [
+          paramsEntity.sourceId,
+          paramsEntity.name,
+          paramsEntity.remark,
+          paramsEntity.sort,
+        ]
+        const result = await sqlHandle(sql, values)
+        resolve(result.insertId)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  edit: (form) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params SET name = ?, remark = ?, sort = ?'
+        const paramsEntity = new ParamsEntity(form)
+        if (!isValue(paramsEntity.id)) {
+          reject('id不可为空!')
+          return
+        } else {
+          sql += ' ' + `WHERE id = "${paramsEntity.id}"`
+        }
+        const sameValid = await ParamsService.queryBy({name: paramsEntity.name})
+        if (sameValid.filter(v => v.id !== paramsEntity.id).length > 0) {
+          reject('已存在相同名称!')
+          return
+        }
+        const values = [
+          paramsEntity.name,
+          paramsEntity.remark,
+          paramsEntity.sort,
+        ]
+        const result = await sqlHandle(sql, values)
+        resolve(paramsEntity.id)
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  },
+  del: (ids) => {
+    return new Promise(async (resolve, reject) => {
+      try {
+        let sql = 'UPDATE ship_test_params SET del_flag = "1"'
+        if (ids?.length === 0) {
+          reject('ids不可为空!')
+          return
+        } else {
+          sql += ' ' + 'WHERE id IN (?)'
+        }
+        const result = await sqlHandle(sql, [ids])
+        resolve('删除成功!')
+      } catch (e) {
+        reject(e.sqlMessage)
+      }
+    })
+  }
+}
+export default ParamsService

+ 2 - 2
ship-test/service/source-service.js

@@ -17,7 +17,7 @@ const SourceService = {
         if (isValue(orderByColumn)) {
           sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
         } else {
-          sql += ' ' + `ORDER BY update_time DESC`
+          sql += ' ' + `ORDER BY sort DESC`
         }
         const result = await sqlHandle(sql)
         resolve(result.map(v => new SourceEntity(v)))
@@ -41,7 +41,7 @@ const SourceService = {
         if (isValue(orderByColumn)) {
           sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
         } else {
-          sql += ' ' + `ORDER BY update_time DESC`
+          sql += ' ' + `ORDER BY sort DESC`
         }
         const result = await PageResult(sql, pageNum, pageSize, SourceEntity)
         resolve(result)