From 8bf02b42706d782ff3fe586693a15d83820943ac Mon Sep 17 00:00:00 2001 From: aixianling Date: Mon, 20 Jun 2022 18:31:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=8E=E4=BB=A3=E7=A0=81=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .foreverignore | 1 - src/rest/aicode/add.js | 31 +++++++++++++++++++++++++++++++ src/rest/aicode/delete.js | 14 ++++++++++++++ src/rest/aicode/detail.js | 37 +++++++++++++++++++++++++++++++++++++ src/rest/aicode/list.js | 28 ++++++++++++++++++++++++++++ 5 files changed, 110 insertions(+), 1 deletion(-) delete mode 100644 .foreverignore create mode 100644 src/rest/aicode/add.js create mode 100644 src/rest/aicode/delete.js create mode 100644 src/rest/aicode/detail.js create mode 100644 src/rest/aicode/list.js diff --git a/.foreverignore b/.foreverignore deleted file mode 100644 index e051e72..0000000 --- a/.foreverignore +++ /dev/null @@ -1 +0,0 @@ -/zips/ diff --git a/src/rest/aicode/add.js b/src/rest/aicode/add.js new file mode 100644 index 0000000..09f97a5 --- /dev/null +++ b/src/rest/aicode/add.js @@ -0,0 +1,31 @@ +const dbUtils = require("../../utils/dbUitls"); +const {v4: uuid} = require('uuid'); +module.exports = { + action: "/node/aicode/addOrUpdate", + method: "post", + execute: (request, response) => { + let form = request.body, sql + if (form.id) {//编辑 + let arr = Object.keys(form).filter(e => form[e]).map(e => { + if (typeof form[e] == "object") form[e] = JSON.stringify(form[e]) + return `${e}='${form[e]}'` + }) + sql = `update node_aicode set ${arr.join(",")} where id='${form.id}'` + } else {//新增 + let cols = [], arr = [] + Object.keys(form).map(e => { + if (form[e]) { + cols.push(e) + if (typeof form[e] == "object") form[e] = JSON.stringify(form[e]) + arr.push(`'${form[e]}'`) + } + }) + sql = `insert into node_aicode (id,${cols.join(",")}) values('${uuid()}',${arr.join(",")})` + } + dbUtils.query(sql).then(() => { + response.send({code: 0}) + }).catch(err => { + response.send({code: 1, err: err.sqlMessage}) + }) + } +} diff --git a/src/rest/aicode/delete.js b/src/rest/aicode/delete.js new file mode 100644 index 0000000..9b4560a --- /dev/null +++ b/src/rest/aicode/delete.js @@ -0,0 +1,14 @@ +const dbUtils = require("../../utils/dbUitls"); +module.exports = { + action: "/node/aicode/delete", + method: "post", + execute: (request, response) => { + let {query: {ids}} = request + ids = ids?.split(",")?.map(e => `'${e}'`)?.toString() + dbUtils.query(`delete from node_aicode where id in (${ids})`).then(() => { + response.send({code: 0}) + }).catch(err => { + response.send({code: 1, err: err.sqlMessage}) + }) + } +} diff --git a/src/rest/aicode/detail.js b/src/rest/aicode/detail.js new file mode 100644 index 0000000..36b89ae --- /dev/null +++ b/src/rest/aicode/detail.js @@ -0,0 +1,37 @@ +const dbUtils = require("../../utils/dbUitls"); +const checkJson = str => { + if (typeof str == 'string') { + try { + let obj = JSON.parse(str); + return !!(typeof obj == 'object' && obj); + } catch (e) { + return false; + } + } + return false; +} +module.exports = { + action: "/node/aicode/detail", + method: "post", + execute: (request, response) => { + let {id} = request.query + let condition = `where id='${id}'` + let sql = `select * from node_aicode ${condition} limit 0,1` + dbUtils.query(sql).then(res => res?.[0]).then(data => { + for (const k in data) { + if (checkJson(data[k])) { + data[k] = JSON.parse(data[k]) + } else if (["props"].includes(k)) { + //关于json对象的处理 + data[k] = data[k] || [] + } else if (["btns"].includes(k)) { + //关于数组的处理 + data[k] = data[k]?.split(",") || [] + } + } + response.send({code: 0, data}) + }).catch(err => { + response.send({code: 1, err: err.sqlMessage}) + }) + } +} diff --git a/src/rest/aicode/list.js b/src/rest/aicode/list.js new file mode 100644 index 0000000..40e6d3e --- /dev/null +++ b/src/rest/aicode/list.js @@ -0,0 +1,28 @@ +const dbUtils = require("../../utils/dbUitls"); +module.exports = { + action: "/node/aicode/list", + method: "post", + execute: (request, response) => { + let total = 0, records = [], {size, current = 1, name = ""} = request.query + let condition = `where (name like '%${name}%' or appName like '%${name}%')` + Promise.all([ + dbUtils.query(`select 1 from node_aicode ${condition}`).then(res => { + return total = res.length + }), + new Promise(resolve => { + let sql = `select * from node_aicode ${condition} limit ${(current-1)*size||0},${size||1}` + dbUtils.query(sql).then(res => { + records = res + resolve() + }).catch(err => { + response.send({code: 1, err: err.sqlMessage}) + }) + }) + ]).then(() => { + response.send({ + code: 0, + data: {records, total} + }) + }) + } +}