befly 3.18.5 → 3.18.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/api/list.js +1 -1
- package/apis/dict/all.js +5 -2
- package/apis/dict/detail.js +4 -2
- package/apis/dict/ins.js +6 -6
- package/apis/dict/items.js +1 -1
- package/apis/dict/list.js +2 -3
- package/apis/dict/upd.js +6 -6
- package/apis/dictType/list.js +1 -1
- package/lib/sqlBuilder/compiler.js +23 -2
- package/lib/sqlBuilder/parser.js +8 -0
- package/package.json +2 -2
package/apis/api/list.js
CHANGED
|
@@ -15,7 +15,7 @@ export default {
|
|
|
15
15
|
const result = await befly.mysql.getList({
|
|
16
16
|
table: "beflyApi",
|
|
17
17
|
where: {
|
|
18
|
-
$or: [{ name$like:
|
|
18
|
+
$or: [{ name$like: ctx.body.keyword }, { path$like: ctx.body.keyword }]
|
|
19
19
|
},
|
|
20
20
|
orderBy: ["id#ASC"],
|
|
21
21
|
page: ctx.body.page,
|
package/apis/dict/all.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import dictTable from "../../tables/dict.json";
|
|
1
2
|
export default {
|
|
2
3
|
name: "获取所有字典",
|
|
3
4
|
method: "POST",
|
|
4
5
|
body: "none",
|
|
5
|
-
auth:
|
|
6
|
-
fields: {
|
|
6
|
+
auth: false,
|
|
7
|
+
fields: {
|
|
8
|
+
typeCode: dictTable.typeCode
|
|
9
|
+
},
|
|
7
10
|
required: [],
|
|
8
11
|
handler: async (befly) => {
|
|
9
12
|
const result = await befly.mysql.getAll({
|
package/apis/dict/detail.js
CHANGED
|
@@ -2,8 +2,10 @@ export default {
|
|
|
2
2
|
name: "获取字典详情",
|
|
3
3
|
method: "POST",
|
|
4
4
|
body: "none",
|
|
5
|
-
auth:
|
|
6
|
-
fields: {
|
|
5
|
+
auth: false,
|
|
6
|
+
fields: {
|
|
7
|
+
id: { name: "ID", input: "integer", min: 1, max: null }
|
|
8
|
+
},
|
|
7
9
|
required: ["id"],
|
|
8
10
|
handler: async (befly, ctx) => {
|
|
9
11
|
const dict = await befly.mysql.getOne({
|
package/apis/dict/ins.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import dictTable from "../../tables/dict.json";
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
4
|
name: "添加字典",
|
|
@@ -6,11 +6,11 @@ export default {
|
|
|
6
6
|
body: "none",
|
|
7
7
|
auth: true,
|
|
8
8
|
fields: {
|
|
9
|
-
typeCode:
|
|
10
|
-
key:
|
|
11
|
-
label:
|
|
12
|
-
sort:
|
|
13
|
-
remark:
|
|
9
|
+
typeCode: dictTable.typeCode,
|
|
10
|
+
key: dictTable.key,
|
|
11
|
+
label: dictTable.label,
|
|
12
|
+
sort: dictTable.sort,
|
|
13
|
+
remark: dictTable.remark
|
|
14
14
|
},
|
|
15
15
|
required: ["typeCode", "key", "label"],
|
|
16
16
|
handler: async (befly, ctx) => {
|
package/apis/dict/items.js
CHANGED
package/apis/dict/list.js
CHANGED
|
@@ -4,7 +4,7 @@ export default {
|
|
|
4
4
|
name: "获取字典列表",
|
|
5
5
|
method: "POST",
|
|
6
6
|
body: "none",
|
|
7
|
-
auth:
|
|
7
|
+
auth: false,
|
|
8
8
|
fields: {
|
|
9
9
|
page: { name: "页码", input: "integer", min: 1, max: 9999 },
|
|
10
10
|
limit: { name: "每页数量", input: "integer", min: 1, max: 100 },
|
|
@@ -23,8 +23,7 @@ export default {
|
|
|
23
23
|
],
|
|
24
24
|
fields: ["beflyDict.id", "beflyDict.typeCode", "beflyDict.key", "beflyDict.label", "beflyDict.sort", "beflyDict.remark", "beflyDict.createdAt", "beflyDict.updatedAt", "beflyDictType.name AS typeName"],
|
|
25
25
|
where: {
|
|
26
|
-
"beflyDict.typeCode": ctx.body.typeCode
|
|
27
|
-
$or: [{ "beflyDict.key$like": `%${ctx.body.keyword}%` }, { "beflyDict.label$like": `%${ctx.body.keyword}%` }]
|
|
26
|
+
"beflyDict.typeCode": ctx.body.typeCode
|
|
28
27
|
},
|
|
29
28
|
page: ctx.body.page,
|
|
30
29
|
limit: ctx.body.limit,
|
package/apis/dict/upd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import dictTable from "../../tables/dict.json";
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
4
|
name: "更新字典",
|
|
@@ -7,11 +7,11 @@ export default {
|
|
|
7
7
|
auth: true,
|
|
8
8
|
fields: {
|
|
9
9
|
id: { name: "ID", input: "integer", min: 1, max: null },
|
|
10
|
-
typeCode:
|
|
11
|
-
key:
|
|
12
|
-
label:
|
|
13
|
-
sort:
|
|
14
|
-
remark:
|
|
10
|
+
typeCode: dictTable.typeCode,
|
|
11
|
+
key: dictTable.key,
|
|
12
|
+
label: dictTable.label,
|
|
13
|
+
sort: dictTable.sort,
|
|
14
|
+
remark: dictTable.remark
|
|
15
15
|
},
|
|
16
16
|
required: ["id"],
|
|
17
17
|
handler: async (befly, ctx) => {
|
package/apis/dictType/list.js
CHANGED
|
@@ -14,7 +14,7 @@ export default {
|
|
|
14
14
|
const result = await befly.mysql.getList({
|
|
15
15
|
table: "beflyDictType",
|
|
16
16
|
where: {
|
|
17
|
-
name$like: ctx.body.keyword
|
|
17
|
+
name$like: ctx.body.keyword
|
|
18
18
|
},
|
|
19
19
|
orderBy: ["sort#ASC", "id#ASC"],
|
|
20
20
|
page: ctx.body.page,
|
|
@@ -292,6 +292,21 @@ function compileOperatorNode(node, quoteIdent) {
|
|
|
292
292
|
const escapedField = escapeField(node.field, quoteIdent);
|
|
293
293
|
const operator = node.operator;
|
|
294
294
|
|
|
295
|
+
const buildLikeParam = (value, mode) => {
|
|
296
|
+
validateParam(value);
|
|
297
|
+
const text = String(value);
|
|
298
|
+
|
|
299
|
+
if (mode === "left") {
|
|
300
|
+
return `%${text}`;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (mode === "right") {
|
|
304
|
+
return `${text}%`;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return `%${text}%`;
|
|
308
|
+
};
|
|
309
|
+
|
|
295
310
|
switch (operator) {
|
|
296
311
|
case "$ne":
|
|
297
312
|
case "$not":
|
|
@@ -315,8 +330,14 @@ function compileOperatorNode(node, quoteIdent) {
|
|
|
315
330
|
return { sql: `${escapedField} NOT IN (${placeholders})`, params: params };
|
|
316
331
|
}
|
|
317
332
|
case "$like":
|
|
318
|
-
|
|
319
|
-
return { sql: `${escapedField} LIKE ?`, params: [node.value] };
|
|
333
|
+
case "like":
|
|
334
|
+
return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "both")] };
|
|
335
|
+
case "$leftLike":
|
|
336
|
+
case "leftLike":
|
|
337
|
+
return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "left")] };
|
|
338
|
+
case "$rightLike":
|
|
339
|
+
case "rightLike":
|
|
340
|
+
return { sql: `${escapedField} LIKE ?`, params: [buildLikeParam(node.value, "right")] };
|
|
320
341
|
case "$notLike":
|
|
321
342
|
validateParam(node.value);
|
|
322
343
|
return { sql: `${escapedField} NOT LIKE ?`, params: [node.value] };
|
package/lib/sqlBuilder/parser.js
CHANGED
|
@@ -289,6 +289,14 @@ function buildOperatorNode(fieldName, operator, value) {
|
|
|
289
289
|
return { type: "op", field: fieldName, operator: operator, value: value };
|
|
290
290
|
}
|
|
291
291
|
return null;
|
|
292
|
+
case "$like":
|
|
293
|
+
case "like":
|
|
294
|
+
case "$leftLike":
|
|
295
|
+
case "leftLike":
|
|
296
|
+
case "$rightLike":
|
|
297
|
+
case "rightLike":
|
|
298
|
+
validateParam(value);
|
|
299
|
+
return { type: "op", field: fieldName, operator: operator, value: value };
|
|
292
300
|
default:
|
|
293
301
|
validateParam(value);
|
|
294
302
|
return { type: "op", field: fieldName, operator: operator, value: value };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "befly",
|
|
3
|
-
"version": "3.18.
|
|
4
|
-
"gitHead": "
|
|
3
|
+
"version": "3.18.7",
|
|
4
|
+
"gitHead": "3fa0a8724e2cefb8e888ffc71edef7fb02fed9d8",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Befly - 为 Bun 专属打造的 JavaScript API 接口框架核心引擎",
|
|
7
7
|
"keywords": [
|