q-koa 7.7.2 → 7.7.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/core/app.js +13 -9
- package/core/file/plugins/administrator/controller.js +1 -1
- package/core/file/plugins/administrator/model.js +7 -9
- package/core/file/plugins/administrator/validate.js +1 -1
- package/core/file/plugins/alipay/controller.js +1 -1
- package/core/file/plugins/cloudfunction/model.js +3 -3
- package/core/file/plugins/common/controller.js +9 -5
- package/core/file/plugins/common/validate.js +14 -13
- package/core/file/plugins/douyin/controller.js +1 -7
- package/core/file/plugins/douyin/validate.js +17 -19
- package/core/file/plugins/douyin_user/model.js +1 -1
- package/core/file/plugins/good_sku/controller.js +1 -1
- package/core/file/plugins/h5_user/model.js +1 -1
- package/core/file/plugins/lang/model.js +3 -3
- package/core/file/plugins/language/model.js +5 -6
- package/core/file/plugins/log/controller.js +1 -1
- package/core/file/plugins/log/model.js +1 -1
- package/core/file/plugins/model/controller.js +8 -5
- package/core/file/plugins/model/model.js +1 -1
- package/core/file/plugins/model/service.js +11 -11
- package/core/file/plugins/model/validate.js +10 -13
- package/core/file/plugins/model_attributes/model.js +1 -1
- package/core/file/plugins/mp_user/model.js +1 -1
- package/core/file/plugins/permission/model.js +1 -1
- package/core/file/plugins/role/controller.js +1 -1
- package/core/file/plugins/role/model.js +1 -1
- package/core/file/plugins/role_permission/controller.js +1 -1
- package/core/file/plugins/role_permission/model.js +7 -8
- package/core/file/plugins/routes/controller.js +1 -1
- package/core/file/plugins/routes/model.js +1 -1
- package/core/file/plugins/setting/afterExecute.js +1 -1
- package/core/file/plugins/setting/controller.js +1 -1
- package/core/file/plugins/setting/model.js +1 -1
- package/core/file/plugins/setting/validate.js +13 -19
- package/core/file/plugins/system/controller.js +5 -8
- package/core/file/plugins/system/service.js +1 -1
- package/core/file/plugins/system/validate.js +20 -14
- package/core/file/plugins/todolist/model.js +1 -1
- package/core/file/plugins/toutiao/controller.js +1 -6
- package/core/file/plugins/toutiao_user/model.js +1 -1
- package/core/file/plugins/user/afterExecute.js +38 -33
- package/core/file/plugins/user/controller.js +1 -1
- package/core/file/plugins/user/model.js +29 -18
- package/core/file/plugins/user/test.js +53 -38
- package/core/file/plugins/user/validate.js +7 -8
- package/core/file/plugins/video/controller.js +4 -6
- package/core/file/plugins/video/validate.js +4 -4
- package/core/file/plugins/weixin/controller.js +2 -2
- package/core/file/plugins/weixin/service.js +4 -3
- package/core/file/plugins/weixin/validate.js +26 -27
- package/core/file/services/aliSms.js +29 -28
- package/core/file/services/alipay.js +1 -1
- package/core/file/services/amap.js +6 -6
- package/core/file/services/douyin.js +1 -1
- package/core/file/services/express.js +4 -4
- package/core/file/services/geo.js +1 -1
- package/core/file/services/toutiao.js +3 -3
- package/core/file/services/weixin.js +21 -12
- package/core/file/services/weixinMP.js +3 -2
- package/core/file/utils/index.js +1 -1
- package/core/restc/lib/index.js +4 -1
- package/package.json +2 -2
package/core/app.js
CHANGED
|
@@ -3,6 +3,7 @@ const Router = require('koa-router')
|
|
|
3
3
|
const _ = require('lodash')
|
|
4
4
|
const path = require('path')
|
|
5
5
|
const fs = require('fs')
|
|
6
|
+
const fsPromise = require('fs/promises')
|
|
6
7
|
const Sequelize = require('sequelize')
|
|
7
8
|
const moment = require('moment')
|
|
8
9
|
const { EventEmitter } = require('events')
|
|
@@ -261,7 +262,7 @@ class APP {
|
|
|
261
262
|
appName: appName,
|
|
262
263
|
})
|
|
263
264
|
} else {
|
|
264
|
-
|
|
265
|
+
await fsPromise.writeFile(
|
|
265
266
|
`${rootDirectory}/${APP_DIR}/${appName}/${PLUGINS_DIR}/model/service.js`,
|
|
266
267
|
''
|
|
267
268
|
)
|
|
@@ -294,7 +295,7 @@ class APP {
|
|
|
294
295
|
}
|
|
295
296
|
|
|
296
297
|
async initApp() {
|
|
297
|
-
let dirList =
|
|
298
|
+
let dirList = await fsPromise.readdir(
|
|
298
299
|
path.resolve(__dirname, `${rootDirectory}/${APP_DIR}`)
|
|
299
300
|
)
|
|
300
301
|
dirList = dirList.filter((item) => this.config.includes.includes(item))
|
|
@@ -428,11 +429,13 @@ class APP {
|
|
|
428
429
|
`${rootDirectory}/${APP_DIR}/${appName}/task`
|
|
429
430
|
)
|
|
430
431
|
const publicExist = fs.existsSync(taskDir)
|
|
431
|
-
if (!publicExist)
|
|
432
|
-
|
|
432
|
+
if (!publicExist) await fsPromise.mkdir(taskDir)
|
|
433
|
+
const list = await fsPromise.readdir(taskDir)
|
|
434
|
+
list.forEach((folder) => {
|
|
433
435
|
const isFolder = fs.lstatSync(path.resolve(taskDir, folder)).isDirectory()
|
|
434
436
|
if (isFolder) {
|
|
435
|
-
|
|
437
|
+
const folderDir = await fsPromise.readdir(path.resolve(taskDir, folder))
|
|
438
|
+
folderDir.forEach((filename) => {
|
|
436
439
|
if (filename === 'index.js') {
|
|
437
440
|
const task = require(path.resolve(
|
|
438
441
|
__dirname,
|
|
@@ -456,14 +459,15 @@ class APP {
|
|
|
456
459
|
`${rootDirectory}/${APP_DIR}/${appName}/${PLUGINS_DIR}`
|
|
457
460
|
)
|
|
458
461
|
const publicExist = fs.existsSync(pluginDir)
|
|
459
|
-
if (!publicExist)
|
|
460
|
-
|
|
461
|
-
|
|
462
|
+
if (!publicExist) await fsPromise.mkdir(pluginDir)
|
|
463
|
+
const pluginDirResult = await fsPromise.readdir(pluginDir)
|
|
464
|
+
pluginDirResult.forEach((folder) => {
|
|
462
465
|
const isFolder = fs
|
|
463
466
|
.lstatSync(path.resolve(pluginDir, folder))
|
|
464
467
|
.isDirectory()
|
|
465
468
|
if (isFolder) {
|
|
466
|
-
|
|
469
|
+
const folderResult = await fsPromise.readdir(path.resolve(pluginDir, folder))
|
|
470
|
+
folderResult.forEach((filename) => {
|
|
467
471
|
const extname = path.extname(filename)
|
|
468
472
|
if (extname === '.js') {
|
|
469
473
|
const n = path.basename(filename, extname)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const { Sequelize, Random } = require('
|
|
2
|
-
const md5 = require('js-md5')
|
|
1
|
+
const { Sequelize, Random } = require('q-koa')
|
|
2
|
+
const md5 = require('js-md5')
|
|
3
3
|
|
|
4
4
|
exports.name = {
|
|
5
5
|
type: Sequelize.STRING,
|
|
@@ -9,7 +9,7 @@ exports.name = {
|
|
|
9
9
|
defaultValue: '',
|
|
10
10
|
sortOrder: 1,
|
|
11
11
|
mock: () => Random.cword(5),
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
13
|
|
|
14
14
|
exports.password = {
|
|
15
15
|
type: Sequelize.STRING,
|
|
@@ -21,7 +21,7 @@ exports.password = {
|
|
|
21
21
|
set: function (value) {
|
|
22
22
|
this.setDataValue('password', md5(value))
|
|
23
23
|
},
|
|
24
|
-
}
|
|
24
|
+
}
|
|
25
25
|
|
|
26
26
|
exports.role_id = {
|
|
27
27
|
type: Sequelize.MEDIUMINT.UNSIGNED,
|
|
@@ -30,8 +30,7 @@ exports.role_id = {
|
|
|
30
30
|
is_mock: false,
|
|
31
31
|
defaultValue: 0,
|
|
32
32
|
sortOrder: 3,
|
|
33
|
-
|
|
34
|
-
};
|
|
33
|
+
}
|
|
35
34
|
|
|
36
35
|
exports.query = {
|
|
37
36
|
type: Sequelize.JSON,
|
|
@@ -40,8 +39,7 @@ exports.query = {
|
|
|
40
39
|
is_mock: false,
|
|
41
40
|
defaultValue: {},
|
|
42
41
|
sortOrder: 4,
|
|
43
|
-
}
|
|
44
|
-
|
|
42
|
+
}
|
|
45
43
|
|
|
46
44
|
exports.post = {
|
|
47
45
|
type: Sequelize.JSON,
|
|
@@ -50,4 +48,4 @@ exports.post = {
|
|
|
50
48
|
is_mock: false,
|
|
51
49
|
defaultValue: {},
|
|
52
50
|
sortOrder: 5,
|
|
53
|
-
}
|
|
51
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const { Sequelize } = require('
|
|
1
|
+
const { Sequelize } = require('q-koa')
|
|
2
2
|
|
|
3
3
|
exports.name = {
|
|
4
4
|
type: Sequelize.STRING,
|
|
5
5
|
comment: '函数名',
|
|
6
6
|
allowNull: false,
|
|
7
7
|
defaultValue: '',
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
9
|
|
|
10
10
|
exports.code_content = {
|
|
11
11
|
type: Sequelize.TEXT,
|
|
12
12
|
comment: '执行程序',
|
|
13
13
|
allowNull: false,
|
|
14
14
|
defaultValue: '',
|
|
15
|
-
}
|
|
15
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
const fs = require('fs')
|
|
2
|
+
const fsPromise = require('fs/promises')
|
|
2
3
|
const path = require('path')
|
|
3
4
|
const crypto = require('crypto')
|
|
4
|
-
const { Random, lodash, getAppByCtx, getConfig } = require('
|
|
5
|
+
const { Random, lodash, getAppByCtx, getConfig } = require('q-koa')
|
|
5
6
|
const Captchapng = require('captchapng')
|
|
6
7
|
const qr = require('qr-image')
|
|
7
8
|
const OSS = require('ali-oss')
|
|
@@ -36,7 +37,7 @@ exports.upload = async (ctx) => {
|
|
|
36
37
|
|
|
37
38
|
const { site_host } = await appConfig.getObject('base')
|
|
38
39
|
|
|
39
|
-
const reader =
|
|
40
|
+
const reader = await fsPromise.readFile(file.path)
|
|
40
41
|
|
|
41
42
|
const fsHash = crypto.createHash('md5')
|
|
42
43
|
fsHash.update(reader)
|
|
@@ -66,7 +67,7 @@ exports.upload = async (ctx) => {
|
|
|
66
67
|
)
|
|
67
68
|
if (isExists) return ctx.SUCCESS(responseData)
|
|
68
69
|
|
|
69
|
-
|
|
70
|
+
await fsPromise.writeFile(targetPath, reader)
|
|
70
71
|
return ctx.SUCCESS(responseData)
|
|
71
72
|
}
|
|
72
73
|
|
|
@@ -220,7 +221,7 @@ exports.swagger = async (ctx) => {
|
|
|
220
221
|
`${process.cwd()}/app/${appName}/plugins`
|
|
221
222
|
)
|
|
222
223
|
const apis = []
|
|
223
|
-
const pathList =
|
|
224
|
+
const pathList = await fsPromise.readdir(filePath)
|
|
224
225
|
for (let i = 0; i < pathList.length; i++) {
|
|
225
226
|
const folder = pathList[i]
|
|
226
227
|
const isFolder = fs.lstatSync(path.resolve(filePath, folder)).isDirectory()
|
|
@@ -240,7 +241,10 @@ exports.swagger = async (ctx) => {
|
|
|
240
241
|
const controllerFilePath = path.resolve(filePath, folder, 'controller.js')
|
|
241
242
|
const isControllerExist = fs.existsSync(controllerFilePath)
|
|
242
243
|
if (isControllerExist) {
|
|
243
|
-
const controllerFile =
|
|
244
|
+
const controllerFile = await fsPromise.readFile(
|
|
245
|
+
controllerFilePath,
|
|
246
|
+
'utf-8'
|
|
247
|
+
)
|
|
244
248
|
const annotations = controllerFile.match(annotationsReg)
|
|
245
249
|
|
|
246
250
|
if (annotations) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { Validator } = require('
|
|
1
|
+
const { Validator } = require('q-koa')
|
|
2
2
|
|
|
3
3
|
exports.email = async (ctx) => {
|
|
4
4
|
const params = {
|
|
@@ -12,24 +12,25 @@ exports.email = async (ctx) => {
|
|
|
12
12
|
required: true,
|
|
13
13
|
message: '请输入邮件主题',
|
|
14
14
|
},
|
|
15
|
-
}
|
|
16
|
-
await new Validator(params).validate(ctx.request.body)
|
|
17
|
-
}
|
|
15
|
+
}
|
|
16
|
+
await new Validator(params).validate(ctx.request.body)
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
exports.sendMessage = async ctx => {
|
|
19
|
+
exports.sendMessage = async (ctx) => {
|
|
20
20
|
const params = {
|
|
21
21
|
mobile: {
|
|
22
22
|
type: 'string',
|
|
23
23
|
required: true,
|
|
24
24
|
validator: (rule, value) => {
|
|
25
|
-
return /^[1][1,2,3,4,5,7,8,9][0-9]{9}$/.test(value)
|
|
26
|
-
|
|
25
|
+
return /^[1][1,2,3,4,5,7,8,9][0-9]{9}$/.test(value)
|
|
26
|
+
? Promise.resolve()
|
|
27
|
+
: Promise.reject('请输入正确手机号')
|
|
28
|
+
},
|
|
27
29
|
},
|
|
28
|
-
}
|
|
29
|
-
await new Validator(params).validate(ctx.request.body)
|
|
30
|
+
}
|
|
31
|
+
await new Validator(params).validate(ctx.request.body)
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
|
|
33
34
|
exports.schedule = async (ctx) => {
|
|
34
35
|
const params = {
|
|
35
36
|
to: {
|
|
@@ -42,6 +43,6 @@ exports.schedule = async (ctx) => {
|
|
|
42
43
|
required: true,
|
|
43
44
|
message: '请输入邮件主题',
|
|
44
45
|
},
|
|
45
|
-
}
|
|
46
|
-
await new Validator(params).validate(ctx.request.body)
|
|
47
|
-
}
|
|
46
|
+
}
|
|
47
|
+
await new Validator(params).validate(ctx.request.body)
|
|
48
|
+
}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
const {
|
|
2
|
-
getAppByCtx,
|
|
3
|
-
getConfig,
|
|
4
|
-
lodash,
|
|
5
|
-
moment,
|
|
6
|
-
getService,
|
|
7
|
-
} = require('multiple-quick-koa')
|
|
1
|
+
const { getAppByCtx, getConfig, lodash, moment, getService } = require('q-koa')
|
|
8
2
|
const util = require('util')
|
|
9
3
|
const axios = require('axios')
|
|
10
4
|
const qr = require('qr-image')
|
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
const { Validator } = require('
|
|
1
|
+
const { Validator } = require('q-koa')
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* 详情 https://www.jianshu.com/p/2105c48b45c7
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
exports.hotVideo = async ctx => {
|
|
3
|
+
*
|
|
4
|
+
* 详情 https://www.jianshu.com/p/2105c48b45c7
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
exports.hotVideo = async (ctx) => {
|
|
8
8
|
const params = {
|
|
9
9
|
word: {
|
|
10
10
|
type: 'string',
|
|
11
11
|
required: true,
|
|
12
12
|
message: '请输入热词',
|
|
13
13
|
},
|
|
14
|
-
}
|
|
15
|
-
await new Validator(params).validate(ctx.request.body)
|
|
16
|
-
}
|
|
14
|
+
}
|
|
15
|
+
await new Validator(params).validate(ctx.request.body)
|
|
16
|
+
}
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
exports.videoList = async ctx => {
|
|
18
|
+
exports.videoList = async (ctx) => {
|
|
20
19
|
const params = {
|
|
21
20
|
id: {
|
|
22
21
|
type: 'number',
|
|
23
22
|
required: true,
|
|
24
23
|
message: '请输入id',
|
|
25
24
|
},
|
|
26
|
-
}
|
|
27
|
-
await new Validator(params).validate(ctx.request.body)
|
|
28
|
-
}
|
|
25
|
+
}
|
|
26
|
+
await new Validator(params).validate(ctx.request.body)
|
|
27
|
+
}
|
|
29
28
|
|
|
30
|
-
exports.fansData = async ctx => {
|
|
29
|
+
exports.fansData = async (ctx) => {
|
|
31
30
|
const params = {
|
|
32
31
|
id: {
|
|
33
32
|
type: 'number',
|
|
34
33
|
required: true,
|
|
35
34
|
message: '请输入id',
|
|
36
35
|
},
|
|
37
|
-
}
|
|
38
|
-
await new Validator(params).validate(ctx.request.body)
|
|
39
|
-
}
|
|
40
|
-
|
|
36
|
+
}
|
|
37
|
+
await new Validator(params).validate(ctx.request.body)
|
|
38
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const { Sequelize } = require('
|
|
1
|
+
const { Sequelize } = require('q-koa')
|
|
2
2
|
|
|
3
3
|
exports.name = {
|
|
4
4
|
type: Sequelize.STRING,
|
|
5
5
|
comment: '名字',
|
|
6
6
|
allowNull: false,
|
|
7
7
|
defaultValue: '',
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
9
|
|
|
10
10
|
exports.key = {
|
|
11
11
|
type: Sequelize.STRING,
|
|
12
12
|
comment: 'key',
|
|
13
13
|
allowNull: false,
|
|
14
14
|
defaultValue: '',
|
|
15
|
-
}
|
|
15
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { Sequelize } = require('
|
|
1
|
+
const { Sequelize } = require('q-koa')
|
|
2
2
|
|
|
3
3
|
exports.name = {
|
|
4
4
|
type: Sequelize.STRING,
|
|
@@ -13,15 +13,14 @@ exports.name = {
|
|
|
13
13
|
msg: '名字不允许为空',
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
|
-
}
|
|
17
|
-
|
|
16
|
+
}
|
|
18
17
|
|
|
19
18
|
exports.lang_id = {
|
|
20
19
|
type: Sequelize.INTEGER(11),
|
|
21
20
|
comment: '语言',
|
|
22
21
|
allowNull: false,
|
|
23
22
|
defaultValue: 1,
|
|
24
|
-
}
|
|
23
|
+
}
|
|
25
24
|
|
|
26
25
|
exports.key = {
|
|
27
26
|
type: Sequelize.STRING,
|
|
@@ -36,7 +35,7 @@ exports.key = {
|
|
|
36
35
|
msg: 'key值不允许为空',
|
|
37
36
|
},
|
|
38
37
|
},
|
|
39
|
-
}
|
|
38
|
+
}
|
|
40
39
|
|
|
41
40
|
exports.value = {
|
|
42
41
|
type: Sequelize.STRING,
|
|
@@ -51,4 +50,4 @@ exports.value = {
|
|
|
51
50
|
msg: 'value值不允许为空',
|
|
52
51
|
},
|
|
53
52
|
},
|
|
54
|
-
}
|
|
53
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
const { getAppByCtx, lodash } = require('
|
|
1
|
+
const { getAppByCtx, lodash } = require('q-koa')
|
|
2
2
|
|
|
3
3
|
const fs = require('fs')
|
|
4
4
|
const path = require('path')
|
|
5
|
+
const fsPromise = require('fs/promises')
|
|
5
6
|
|
|
6
7
|
exports.getModel = async (ctx) => {
|
|
7
8
|
const { app, appName } = getAppByCtx(ctx)
|
|
@@ -19,7 +20,7 @@ exports.getModel = async (ctx) => {
|
|
|
19
20
|
)
|
|
20
21
|
)
|
|
21
22
|
if (!existFile) return ctx.SUCCESS('')
|
|
22
|
-
const file =
|
|
23
|
+
const file = await fsPromise.readFile(
|
|
23
24
|
path.resolve(
|
|
24
25
|
__dirname,
|
|
25
26
|
`${process.cwd()}/app/${appName}/plugins/${model}/${option}.js`
|
|
@@ -54,7 +55,7 @@ exports.createFile = async (ctx) => {
|
|
|
54
55
|
`${process.cwd()}/app/${appName}/plugins/${plugin}`
|
|
55
56
|
)
|
|
56
57
|
const exist = fs.existsSync(pluginDirPath)
|
|
57
|
-
if (!exist)
|
|
58
|
+
if (!exist) await fsPromise.mkdir(pluginDirPath)
|
|
58
59
|
const list = ['config', 'model', 'controller']
|
|
59
60
|
|
|
60
61
|
for (let i = 0; i < list.length; i++) {
|
|
@@ -62,8 +63,10 @@ exports.createFile = async (ctx) => {
|
|
|
62
63
|
if (!obj[type]) {
|
|
63
64
|
continue
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
+
await fsPromise.writeFile(
|
|
67
|
+
path.resolve(pluginDirPath, `${type}.js`),
|
|
68
|
+
obj[type]
|
|
69
|
+
)
|
|
66
70
|
}
|
|
67
|
-
// fs.writeFileSync(path.resolve(pluginDirPath, 'config.js'), desc)
|
|
68
71
|
ctx.SUCCESS('ok')
|
|
69
72
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
const fs = require('fs')
|
|
2
2
|
const path = require('path')
|
|
3
|
-
|
|
3
|
+
const fsPromise = require('fs/promises')
|
|
4
4
|
exports.loadModel = async ({ app, appName }) => {
|
|
5
|
-
const data =
|
|
5
|
+
const data = await fsPromise.readdir(
|
|
6
6
|
path.resolve(__dirname, `${process.cwd()}/app/${appName}/plugins`)
|
|
7
7
|
)
|
|
8
8
|
|
|
9
|
-
const modelList = await app.model.model.findAll({ raw: true })
|
|
9
|
+
// const modelList = await app.model.model.findAll({ raw: true })
|
|
10
10
|
|
|
11
11
|
await Promise.all(
|
|
12
12
|
['model', 'model_attributes'].map((item) =>
|
|
@@ -34,32 +34,32 @@ exports.loadModel = async ({ app, appName }) => {
|
|
|
34
34
|
__dirname,
|
|
35
35
|
`../${result[i]}/config.js`
|
|
36
36
|
)
|
|
37
|
-
|
|
38
37
|
const modelExist = fs.existsSync(filePath)
|
|
39
38
|
const defaultModelExist = fs.existsSync(defaultFilePath)
|
|
40
39
|
const configExist = fs.existsSync(configPath)
|
|
41
40
|
if (configExist) {
|
|
42
|
-
const config =
|
|
41
|
+
const config = (await fsPromise.readFile(configPath, 'utf-8'))
|
|
43
42
|
? require(configPath)
|
|
44
43
|
: require(defaultConfigPath)
|
|
45
44
|
|
|
46
45
|
const modelFile =
|
|
47
46
|
defaultModelExist || modelExist
|
|
48
|
-
?
|
|
49
|
-
?
|
|
50
|
-
:
|
|
47
|
+
? (await fsPromise.readFile(filePath, 'utf-8'))
|
|
48
|
+
? await fsPromise.readFile(filePath, 'utf-8')
|
|
49
|
+
: await fsPromise.readFile(defaultFilePath, 'utf-8')
|
|
51
50
|
: null
|
|
52
51
|
|
|
53
52
|
const model = modelFile
|
|
54
|
-
?
|
|
53
|
+
? (await fsPromise.readFile(filePath, 'utf-8'))
|
|
55
54
|
? require(filePath)
|
|
56
55
|
: require(defaultFilePath)
|
|
57
56
|
: {}
|
|
58
57
|
const attributes = modelFile ? modelFile.match(/exports.(.*)=/g) : []
|
|
59
58
|
const types = modelFile ? modelFile.match(/Sequelize.(.*),\n/g) : {}
|
|
60
59
|
|
|
61
|
-
const ori_target = modelList.find((m) => m.model === result[i])
|
|
62
|
-
const id = ori_target ? ori_target.id : null
|
|
60
|
+
// const ori_target = modelList.find((m) => m.model === result[i])
|
|
61
|
+
// const id = ori_target ? ori_target.id : null
|
|
62
|
+
const id = i + 1
|
|
63
63
|
const obj = {
|
|
64
64
|
id,
|
|
65
65
|
model: result[i],
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
const {
|
|
2
|
-
Validator
|
|
3
|
-
} = require('multiple-quick-koa');
|
|
1
|
+
const { Validator } = require('q-koa')
|
|
4
2
|
|
|
5
3
|
exports.getModel = async (ctx) => {
|
|
6
4
|
const params = {
|
|
@@ -9,9 +7,9 @@ exports.getModel = async (ctx) => {
|
|
|
9
7
|
required: true,
|
|
10
8
|
message: '请输入model',
|
|
11
9
|
},
|
|
12
|
-
}
|
|
13
|
-
await new Validator(params).validate(ctx.request.body)
|
|
14
|
-
}
|
|
10
|
+
}
|
|
11
|
+
await new Validator(params).validate(ctx.request.body)
|
|
12
|
+
}
|
|
15
13
|
|
|
16
14
|
exports.createModel = async (ctx) => {
|
|
17
15
|
const params = {
|
|
@@ -25,10 +23,9 @@ exports.createModel = async (ctx) => {
|
|
|
25
23
|
required: true,
|
|
26
24
|
message: '请输入desc详情',
|
|
27
25
|
},
|
|
28
|
-
}
|
|
29
|
-
await new Validator(params).validate(ctx.request.body)
|
|
30
|
-
}
|
|
31
|
-
|
|
26
|
+
}
|
|
27
|
+
await new Validator(params).validate(ctx.request.body)
|
|
28
|
+
}
|
|
32
29
|
|
|
33
30
|
exports.createFile = async (ctx) => {
|
|
34
31
|
const params = {
|
|
@@ -37,6 +34,6 @@ exports.createFile = async (ctx) => {
|
|
|
37
34
|
required: true,
|
|
38
35
|
message: '请输入plugin',
|
|
39
36
|
},
|
|
40
|
-
}
|
|
41
|
-
await new Validator(params).validate(ctx.request.body)
|
|
42
|
-
}
|
|
37
|
+
}
|
|
38
|
+
await new Validator(params).validate(ctx.request.body)
|
|
39
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const { Sequelize, Random } = require('
|
|
2
|
-
|
|
1
|
+
const { Sequelize, Random } = require('q-koa')
|
|
3
2
|
|
|
4
3
|
exports.role_id = {
|
|
5
4
|
type: Sequelize.MEDIUMINT.UNSIGNED,
|
|
@@ -8,9 +7,9 @@ exports.role_id = {
|
|
|
8
7
|
is_mock: true,
|
|
9
8
|
defaultValue: 0,
|
|
10
9
|
sortOrder: 1,
|
|
11
|
-
mock: () => Random.integer(1,5),
|
|
12
|
-
unique:'compositeIndex'
|
|
13
|
-
}
|
|
10
|
+
mock: () => Random.integer(1, 5),
|
|
11
|
+
unique: 'compositeIndex',
|
|
12
|
+
}
|
|
14
13
|
|
|
15
14
|
exports.permission_id = {
|
|
16
15
|
type: Sequelize.MEDIUMINT.UNSIGNED,
|
|
@@ -19,6 +18,6 @@ exports.permission_id = {
|
|
|
19
18
|
is_mock: true,
|
|
20
19
|
defaultValue: 0,
|
|
21
20
|
sortOrder: 2,
|
|
22
|
-
mock: () => Random.integer(1,5),
|
|
23
|
-
unique:'compositeIndex'
|
|
24
|
-
}
|
|
21
|
+
mock: () => Random.integer(1, 5),
|
|
22
|
+
unique: 'compositeIndex',
|
|
23
|
+
}
|