befly 3.76.0 → 3.76.2

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.
Files changed (155) hide show
  1. package/Befly.js +159 -0
  2. package/README.md +50 -11
  3. package/apis/admin/delete.js +1 -3
  4. package/apis/admin/insert.js +2 -1
  5. package/apis/admin/select.js +2 -7
  6. package/apis/admin/update.js +3 -8
  7. package/apis/api/select.js +2 -7
  8. package/apis/auth/login.js +16 -20
  9. package/apis/dict/delete.js +1 -1
  10. package/apis/dict/detail.js +1 -3
  11. package/apis/dict/select.js +1 -2
  12. package/apis/dict/update.js +1 -1
  13. package/apis/dictType/delete.js +1 -1
  14. package/apis/dictType/detail.js +1 -1
  15. package/apis/dictType/insert.js +1 -1
  16. package/apis/dictType/select.js +2 -7
  17. package/apis/dictType/update.js +2 -2
  18. package/apis/email/config.js +4 -7
  19. package/apis/email/logList.js +2 -7
  20. package/apis/email/send.js +1 -2
  21. package/apis/email/verify.js +1 -3
  22. package/apis/loginLog/select.js +2 -7
  23. package/apis/menu/select.js +2 -7
  24. package/apis/operateLog/select.js +2 -7
  25. package/apis/role/apiSave.js +2 -2
  26. package/apis/role/menuSave.js +2 -2
  27. package/apis/role/select.js +2 -7
  28. package/apis/source/imageList.js +2 -5
  29. package/apis/tongJi/dailyReport.js +12 -13
  30. package/apis/tongJi/dailyReportSelect.js +1 -2
  31. package/apis/tongJi/dailyStats.js +1 -1
  32. package/apis/tongJi/dailyStatsDistribution.js +2 -2
  33. package/apis/tongJi/errorList.js +1 -2
  34. package/apis/tongJi/errorReport.js +1 -2
  35. package/apis/tongJi/projectDelete.js +1 -3
  36. package/apis/tongJi/projectSelect.js +2 -4
  37. package/apis/tongJi/projectUpdate.js +2 -2
  38. package/apis/upload/file.js +7 -5
  39. package/checks/api.js +43 -66
  40. package/checks/config.js +17 -12
  41. package/checks/corns.js +28 -46
  42. package/checks/field.js +18 -0
  43. package/checks/items.js +16 -60
  44. package/checks/menu.js +28 -39
  45. package/checks/table.js +106 -26
  46. package/checks/validation.js +13 -0
  47. package/configs/beflyConfig.json +6 -6
  48. package/configs/constConfig.js +2 -63
  49. package/exports.js +2 -0
  50. package/hooks/auth.js +11 -7
  51. package/hooks/parser.js +55 -59
  52. package/hooks/permission.js +5 -2
  53. package/hooks/rateLimit.js +25 -62
  54. package/hooks/validator.js +43 -31
  55. package/index.js +43 -344
  56. package/{lib → libs}/cacheHelper.js +3 -8
  57. package/libs/cron.js +60 -0
  58. package/libs/logger/index.js +1 -0
  59. package/libs/logger/logger.js +245 -0
  60. package/libs/logger/sanitize.js +115 -0
  61. package/{lib → libs/mysql}/dbHelper.js +100 -73
  62. package/{lib → libs/mysql}/dbParse.js +16 -9
  63. package/{lib → libs/mysql}/dbUtil.js +15 -32
  64. package/libs/mysql/error.js +29 -0
  65. package/libs/mysql/index.js +6 -0
  66. package/libs/mysql/is.js +29 -0
  67. package/libs/mysql/mysql.js +43 -0
  68. package/libs/mysql/sql/identifier.js +85 -0
  69. package/libs/mysql/sql/index.js +2 -0
  70. package/{lib → libs/mysql/sql}/sqlBuilder.js +2 -3
  71. package/libs/mysql/util.js +44 -0
  72. package/libs/redis/index.js +2 -0
  73. package/libs/redis/redis.js +204 -0
  74. package/libs/redis/redisError.js +8 -0
  75. package/libs/tableModel.js +72 -0
  76. package/libs/tool.js +33 -0
  77. package/libs/validator/compiler.js +248 -0
  78. package/libs/validator/index.js +10 -0
  79. package/libs/validator/parser.js +173 -0
  80. package/libs/validator/util.js +5 -0
  81. package/package.json +10 -8
  82. package/paths.js +2 -3
  83. package/plugins/cache.js +2 -1
  84. package/plugins/email.js +4 -4
  85. package/plugins/mysql.js +5 -15
  86. package/plugins/redis.js +4 -12
  87. package/router/api.js +14 -10
  88. package/router/root.js +14 -0
  89. package/router/static.js +3 -3
  90. package/schemas/api.json +99 -0
  91. package/schemas/config.json +255 -0
  92. package/schemas/corn.json +39 -0
  93. package/schemas/item.json +43 -0
  94. package/schemas/menu.json +44 -0
  95. package/schemas/table.json +80 -0
  96. package/scripts/syncDb/apply.js +87 -0
  97. package/scripts/syncDb/ddl.js +43 -0
  98. package/scripts/syncDb/index.js +175 -30
  99. package/scripts/syncDb/model.js +60 -0
  100. package/scripts/syncDb/plan.js +160 -0
  101. package/scripts/syncDb/preflight.js +98 -0
  102. package/scripts/syncDb/report.js +177 -162
  103. package/scripts/syncDb/snapshot.js +118 -0
  104. package/sync/syncUtil.js +7 -13
  105. package/tables/admin.json +51 -53
  106. package/tables/api.json +29 -40
  107. package/tables/dailyReport.json +85 -73
  108. package/tables/dict.json +27 -39
  109. package/tables/dictType.json +20 -34
  110. package/tables/emailLog.json +49 -47
  111. package/tables/errorReport.json +86 -60
  112. package/tables/file.json +47 -50
  113. package/tables/loginLog.json +68 -55
  114. package/tables/menu.json +20 -34
  115. package/tables/operateLog.json +53 -47
  116. package/tables/project.json +18 -30
  117. package/tables/role.json +33 -37
  118. package/utils/cors.js +37 -41
  119. package/utils/deepMerge.js +3 -1
  120. package/utils/error.js +1 -56
  121. package/utils/id.js +44 -0
  122. package/utils/is.js +6 -243
  123. package/utils/response.js +12 -1
  124. package/utils/scanFiles.js +13 -4
  125. package/utils/scanSources.js +58 -20
  126. package/utils/util.js +11 -163
  127. package/apis/_apis.js +0 -20
  128. package/apis/auth/sendSmsCode.js +0 -24
  129. package/apis/role/delete.js +0 -41
  130. package/apis/role/insert.js +0 -45
  131. package/apis/role/save.js +0 -36
  132. package/apis/role/update.js +0 -66
  133. package/configs/regexpAlias.json +0 -55
  134. package/lib/connect.js +0 -119
  135. package/lib/logger.js +0 -430
  136. package/lib/redisHelper.js +0 -399
  137. package/lib/validator.js +0 -274
  138. package/lib/xmlParse.js +0 -149
  139. package/plugins/config.js +0 -13
  140. package/plugins/cron.js +0 -115
  141. package/plugins/logger.js +0 -17
  142. package/plugins/tool.js +0 -131
  143. package/plugins/xmlParse.js +0 -10
  144. package/schemas/config.js +0 -67
  145. package/scripts/syncDb/context.js +0 -120
  146. package/scripts/syncDb/diff.js +0 -279
  147. package/scripts/syncDb/transform.js +0 -113
  148. package/sql/befly.sql +0 -271
  149. package/utils/email.js +0 -3
  150. package/utils/fieldClear.js +0 -22
  151. package/utils/formatValidationIssues.js +0 -28
  152. package/utils/getClientIp.js +0 -47
  153. package/utils/loggerUtils.js +0 -196
  154. package/utils/regexpUtil.js +0 -52
  155. /package/{lib → libs}/smtpText.js +0 -0
@@ -1,85 +1,87 @@
1
1
  {
2
- "id": {
3
- "name": "ID",
4
- "input": "integer",
5
- "min": 1,
6
- "max": null
7
- },
2
+ "$tableName": "邮件发送日志表",
8
3
  "adminId": {
9
4
  "name": "发送人ID",
10
- "input": "number"
5
+ "paramType": "integer",
6
+ "fieldType": "integer",
7
+ "fieldDefault": 0
11
8
  },
12
9
  "username": {
13
10
  "name": "发送人账号",
14
- "input": "string",
15
- "max": 100
11
+ "maxValue": 100,
12
+ "paramType": "string",
13
+ "fieldType": "varchar",
14
+ "fieldDefault": ""
16
15
  },
17
16
  "nickname": {
18
17
  "name": "发送人昵称",
19
- "input": "string",
20
- "max": 100
18
+ "maxValue": 100,
19
+ "paramType": "string",
20
+ "fieldType": "varchar",
21
+ "fieldDefault": ""
21
22
  },
22
23
  "toEmail": {
23
24
  "name": "收件人邮箱",
24
- "input": "regexp",
25
- "check": "@email",
26
- "min": 5,
27
- "max": 200
25
+ "minValue": 5,
26
+ "maxValue": 200,
27
+ "paramType": "string",
28
+ "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
29
+ "fieldType": "varchar",
30
+ "fieldDefault": ""
28
31
  },
29
32
  "subject": {
30
33
  "name": "邮件主题",
31
- "min": 1,
32
- "max": 200,
33
- "input": "string"
34
+ "minValue": 1,
35
+ "maxValue": 200,
36
+ "paramType": "string",
37
+ "fieldType": "varchar",
38
+ "fieldDefault": ""
34
39
  },
35
40
  "content": {
36
41
  "name": "邮件内容",
37
- "input": "string"
42
+ "paramType": "string",
43
+ "fieldType": "text",
44
+ "fieldNullable": true
38
45
  },
39
46
  "ccEmail": {
40
47
  "name": "抄送邮箱",
41
- "input": "string",
42
- "max": 500
48
+ "maxValue": 500,
49
+ "paramType": "string",
50
+ "fieldType": "varchar",
51
+ "fieldDefault": ""
43
52
  },
44
53
  "bccEmail": {
45
54
  "name": "密送邮箱",
46
- "input": "string",
47
- "max": 500
55
+ "maxValue": 500,
56
+ "paramType": "string",
57
+ "fieldType": "varchar",
58
+ "fieldDefault": ""
48
59
  },
49
60
  "sendTime": {
50
61
  "name": "发送时间",
51
- "input": "number"
62
+ "paramType": "integer",
63
+ "fieldType": "integer",
64
+ "fieldDefault": 0
52
65
  },
53
66
  "sendResult": {
54
67
  "name": "发送结果",
55
- "input": "number",
56
- "max": 1
68
+ "maxValue": 1,
69
+ "paramType": "integer",
70
+ "fieldType": "integer",
71
+ "fieldDefault": 0
57
72
  },
58
73
  "messageId": {
59
74
  "name": "消息ID",
60
- "input": "string",
61
- "max": 200
75
+ "maxValue": 200,
76
+ "paramType": "string",
77
+ "fieldType": "varchar",
78
+ "fieldDefault": ""
62
79
  },
63
80
  "failReason": {
64
81
  "name": "失败原因",
65
- "input": "string",
66
- "max": 500
67
- },
68
- "state": {
69
- "name": "状态(0=已删除,1=正常,2=禁用)",
70
- "input": "enumInteger",
71
- "check": "0|1|2"
72
- },
73
- "createdAt": {
74
- "name": "创建时间",
75
- "input": "number"
76
- },
77
- "updatedAt": {
78
- "name": "更新时间",
79
- "input": "number"
80
- },
81
- "deletedAt": {
82
- "name": "删除时间",
83
- "input": "number"
82
+ "maxValue": 500,
83
+ "paramType": "string",
84
+ "fieldType": "varchar",
85
+ "fieldDefault": ""
84
86
  }
85
87
  }
@@ -1,123 +1,149 @@
1
1
  {
2
- "id": {
3
- "name": "ID",
4
- "input": "integer",
5
- "min": 1,
6
- "max": null
2
+ "$tableName": "错误上报表",
3
+ "$tableIndexes": {
4
+ "idx_befly_error_report_time": "index#reportTime",
5
+ "idx_befly_error_report_bucket_date": "index#bucketDate",
6
+ "idx_befly_error_report_unique": "unique#bucketDate,errorType,extractedMessage,productCode,member",
7
+ "idx_befly_error_report_bucket_date_error_type": "index#bucketDate,errorType",
8
+ "idx_befly_error_report_product_code_report_time": "index#productCode,reportTime",
9
+ "idx_befly_error_report_error_type_report_time": "index#errorType,reportTime"
7
10
  },
8
11
  "reportTime": {
9
12
  "name": "上报时间",
10
- "input": "number"
13
+ "paramType": "integer",
14
+ "fieldType": "integer",
15
+ "fieldDefault": 0
11
16
  },
12
17
  "firstReportTime": {
13
18
  "name": "首次上报时间",
14
- "input": "number"
19
+ "paramType": "integer",
20
+ "fieldType": "integer",
21
+ "fieldDefault": 0
15
22
  },
16
23
  "bucketTime": {
17
24
  "name": "时间桶时间",
18
- "input": "number"
25
+ "paramType": "integer",
26
+ "fieldType": "integer",
27
+ "fieldDefault": 0
19
28
  },
20
29
  "bucketDate": {
21
30
  "name": "时间桶日期",
22
- "input": "number"
31
+ "paramType": "integer",
32
+ "fieldType": "integer",
33
+ "fieldDefault": 0
23
34
  },
24
35
  "productName": {
25
36
  "name": "产品名称",
26
- "input": "string",
27
- "max": 100
37
+ "maxValue": 100,
38
+ "paramType": "string",
39
+ "fieldType": "varchar",
40
+ "fieldDefault": ""
28
41
  },
29
42
  "productCode": {
30
43
  "name": "产品代号",
31
- "input": "string",
32
- "max": 100
44
+ "maxValue": 100,
45
+ "paramType": "string",
46
+ "fieldType": "varchar",
47
+ "fieldDefault": ""
33
48
  },
34
49
  "productVersion": {
35
50
  "name": "产品版本",
36
- "input": "string",
37
- "max": 100
51
+ "maxValue": 100,
52
+ "paramType": "string",
53
+ "fieldType": "varchar",
54
+ "fieldDefault": ""
38
55
  },
39
56
  "pagePath": {
40
57
  "name": "页面路径",
41
- "input": "string",
42
- "max": 200
58
+ "maxValue": 200,
59
+ "paramType": "string",
60
+ "fieldType": "varchar",
61
+ "fieldDefault": ""
43
62
  },
44
63
  "pageName": {
45
64
  "name": "页面名称",
46
- "input": "string",
47
- "max": 100
65
+ "maxValue": 100,
66
+ "paramType": "string",
67
+ "fieldType": "varchar",
68
+ "fieldDefault": ""
48
69
  },
49
70
  "errorType": {
50
71
  "name": "错误类型",
51
- "input": "string",
52
- "max": 50
72
+ "maxValue": 50,
73
+ "paramType": "string",
74
+ "fieldType": "varchar",
75
+ "fieldDefault": ""
53
76
  },
54
77
  "message": {
55
78
  "name": "错误信息",
56
- "input": "string",
57
- "max": 500
79
+ "maxValue": 500,
80
+ "paramType": "string",
81
+ "fieldType": "varchar",
82
+ "fieldDefault": ""
58
83
  },
59
84
  "extractedMessage": {
60
85
  "name": "提取的错误信息",
61
- "input": "string",
62
- "max": 200
86
+ "maxValue": 200,
87
+ "paramType": "string",
88
+ "fieldType": "varchar",
89
+ "fieldDefault": ""
63
90
  },
64
91
  "detail": {
65
92
  "name": "错误详情",
66
- "input": "string",
67
- "max": 5000
93
+ "maxValue": 5000,
94
+ "paramType": "string",
95
+ "fieldType": "text",
96
+ "fieldNullable": true
68
97
  },
69
98
  "clientType": {
70
99
  "name": "客户端类型",
71
- "input": "enum",
72
- "check": "browser|vscode|desktop|miniapp|app",
73
- "min": 3,
74
- "max": 20
100
+ "minValue": 3,
101
+ "maxValue": 20,
102
+ "paramType": "string",
103
+ "enum": ["browser", "vscode", "desktop", "miniapp", "app"],
104
+ "fieldType": "varchar",
105
+ "fieldDefault": ""
75
106
  },
76
107
  "clientId": {
77
108
  "name": "客户端标识",
78
- "input": "string",
79
- "max": 120
109
+ "maxValue": 120,
110
+ "paramType": "string",
111
+ "fieldType": "varchar",
112
+ "fieldDefault": ""
80
113
  },
81
114
  "memberType": {
82
115
  "name": "成员类型",
83
- "input": "enum",
84
- "check": "user|client|ip",
85
- "min": 2,
86
- "max": 6
116
+ "minValue": 2,
117
+ "maxValue": 6,
118
+ "paramType": "string",
119
+ "enum": ["user", "client", "ip"],
120
+ "fieldType": "varchar",
121
+ "fieldDefault": ""
87
122
  },
88
123
  "member": {
89
124
  "name": "成员标识",
90
- "input": "string",
91
- "max": 200
125
+ "maxValue": 200,
126
+ "paramType": "string",
127
+ "fieldType": "varchar",
128
+ "fieldDefault": ""
92
129
  },
93
130
  "userId": {
94
131
  "name": "用户ID",
95
- "input": "integer"
132
+ "paramType": "integer",
133
+ "fieldType": "integer",
134
+ "fieldNullable": true
96
135
  },
97
136
  "ip": {
98
137
  "name": "IP地址",
99
- "input": "string",
100
- "max": 50
138
+ "maxValue": 50,
139
+ "paramType": "string",
140
+ "fieldType": "varchar",
141
+ "fieldNullable": true
101
142
  },
102
143
  "lastReportTime": {
103
144
  "name": "最后上报时间",
104
- "input": "number"
105
- },
106
- "state": {
107
- "name": "状态(0=已删除,1=正常,2=禁用)",
108
- "input": "enumInteger",
109
- "check": "0|1|2"
110
- },
111
- "createdAt": {
112
- "name": "创建时间",
113
- "input": "number"
114
- },
115
- "updatedAt": {
116
- "name": "更新时间",
117
- "input": "number"
118
- },
119
- "deletedAt": {
120
- "name": "删除时间",
121
- "input": "number"
145
+ "paramType": "integer",
146
+ "fieldType": "integer",
147
+ "fieldDefault": 0
122
148
  }
123
149
  }
package/tables/file.json CHANGED
@@ -1,80 +1,77 @@
1
1
  {
2
- "id": {
3
- "name": "ID",
4
- "input": "integer",
5
- "min": 1,
6
- "max": null
7
- },
8
- "state": {
9
- "name": "状态(0=已删除,1=正常,2=禁用)",
10
- "input": "enumInteger",
11
- "check": "0|1|2"
12
- },
13
- "createdAt": {
14
- "name": "创建时间",
15
- "input": "number"
16
- },
17
- "updatedAt": {
18
- "name": "更新时间",
19
- "input": "number"
20
- },
21
- "deletedAt": {
22
- "name": "删除时间",
23
- "input": "number"
2
+ "$tableName": "文件表",
3
+ "$tableIndexes": {
4
+ "idx_befly_file_user_id": "index#userId",
5
+ "idx_befly_file_is_image": "index#isImage"
24
6
  },
25
7
  "userId": {
26
8
  "name": "用户ID",
27
- "input": "integer",
28
- "min": 1,
29
- "max": null
9
+ "minValue": 1,
10
+ "paramType": "integer",
11
+ "fieldType": "integer"
30
12
  },
31
13
  "filePath": {
32
14
  "name": "文件路径",
33
- "input": "string",
34
- "min": 1,
35
- "max": 500
15
+ "minValue": 1,
16
+ "maxValue": 500,
17
+ "paramType": "string",
18
+ "fieldType": "varchar",
19
+ "fieldDefault": ""
36
20
  },
37
21
  "url": {
38
22
  "name": "文件地址",
39
- "input": "string",
40
- "min": 1,
41
- "max": 1000
23
+ "minValue": 1,
24
+ "maxValue": 1000,
25
+ "paramType": "string",
26
+ "fieldType": "varchar",
27
+ "fieldDefault": ""
42
28
  },
43
29
  "isImage": {
44
30
  "name": "是否图片",
45
- "input": "integer",
46
- "min": 0,
47
- "max": 1
31
+ "minValue": 0,
32
+ "maxValue": 1,
33
+ "paramType": "integer",
34
+ "fieldType": "integer",
35
+ "fieldDefault": 0
48
36
  },
49
37
  "fileType": {
50
38
  "name": "文件类型",
51
- "input": "enum",
52
- "check": "image|video|audio|file",
53
- "min": 4,
54
- "max": 5
39
+ "minValue": 4,
40
+ "maxValue": 20,
41
+ "paramType": "string",
42
+ "enum": ["image", "video", "audio", "file"],
43
+ "fieldType": "varchar",
44
+ "fieldDefault": ""
55
45
  },
56
46
  "fileSize": {
57
47
  "name": "文件大小",
58
- "input": "integer",
59
- "min": 0,
60
- "max": null
48
+ "minValue": 0,
49
+ "paramType": "integer",
50
+ "fieldType": "integer",
51
+ "fieldDefault": 0
61
52
  },
62
53
  "fileKey": {
63
54
  "name": "文件标识",
64
- "input": "string",
65
- "min": 1,
66
- "max": 100
55
+ "minValue": 1,
56
+ "maxValue": 100,
57
+ "paramType": "string",
58
+ "fieldType": "varchar",
59
+ "fieldDefault": ""
67
60
  },
68
61
  "fileExt": {
69
62
  "name": "文件扩展名",
70
- "input": "string",
71
- "min": 1,
72
- "max": 20
63
+ "minValue": 1,
64
+ "maxValue": 20,
65
+ "paramType": "string",
66
+ "fieldType": "varchar",
67
+ "fieldDefault": ""
73
68
  },
74
69
  "fileName": {
75
70
  "name": "文件名",
76
- "input": "string",
77
- "min": 1,
78
- "max": 200
71
+ "minValue": 1,
72
+ "maxValue": 200,
73
+ "paramType": "string",
74
+ "fieldType": "varchar",
75
+ "fieldDefault": ""
79
76
  }
80
77
  }
@@ -1,106 +1,119 @@
1
1
  {
2
- "id": {
3
- "name": "ID",
4
- "input": "integer",
5
- "min": 1,
6
- "max": null
2
+ "$tableName": "登录日志表",
3
+ "$tableIndexes": {
4
+ "idx_befly_login_log_login_time": "index#loginTime"
7
5
  },
8
6
  "adminId": {
9
7
  "name": "管理员ID",
10
- "input": "number"
8
+ "paramType": "integer",
9
+ "fieldType": "integer",
10
+ "fieldDefault": 0
11
11
  },
12
12
  "username": {
13
13
  "name": "用户名",
14
- "input": "string",
15
- "min": 1,
16
- "max": 50
14
+ "minValue": 1,
15
+ "maxValue": 50,
16
+ "paramType": "string",
17
+ "fieldType": "varchar",
18
+ "fieldDefault": ""
17
19
  },
18
20
  "nickname": {
19
21
  "name": "昵称",
20
- "input": "string",
21
- "max": 50
22
+ "maxValue": 50,
23
+ "paramType": "string",
24
+ "fieldType": "varchar",
25
+ "fieldDefault": ""
22
26
  },
23
27
  "ip": {
24
28
  "name": "登录IP",
25
- "input": "string",
26
- "max": 50
29
+ "maxValue": 50,
30
+ "paramType": "string",
31
+ "fieldType": "varchar",
32
+ "fieldDefault": ""
27
33
  },
28
34
  "clientType": {
29
35
  "name": "客户端类型",
30
- "input": "enum",
31
- "check": "browser|vscode|desktop|miniapp|app",
32
- "min": 3,
33
- "max": 20
36
+ "minValue": 3,
37
+ "maxValue": 20,
38
+ "paramType": "string",
39
+ "enum": ["browser", "vscode", "desktop", "miniapp", "app"],
40
+ "fieldType": "varchar",
41
+ "fieldDefault": ""
34
42
  },
35
43
  "productName": {
36
44
  "name": "产品名称",
37
- "input": "string",
38
- "max": 100
45
+ "maxValue": 100,
46
+ "paramType": "string",
47
+ "fieldType": "varchar",
48
+ "fieldDefault": ""
39
49
  },
40
50
  "productCode": {
41
51
  "name": "产品代号",
42
- "input": "string",
43
- "max": 100
52
+ "maxValue": 100,
53
+ "paramType": "string",
54
+ "fieldType": "varchar",
55
+ "fieldDefault": ""
44
56
  },
45
57
  "productVersion": {
46
58
  "name": "产品版本",
47
- "input": "string",
48
- "max": 50
59
+ "maxValue": 50,
60
+ "paramType": "string",
61
+ "fieldType": "varchar",
62
+ "fieldDefault": ""
49
63
  },
50
64
  "clientVersion": {
51
65
  "name": "客户端版本",
52
- "input": "string",
53
- "max": 100
66
+ "maxValue": 100,
67
+ "paramType": "string",
68
+ "fieldType": "varchar",
69
+ "fieldDefault": ""
54
70
  },
55
71
  "os": {
56
72
  "name": "操作系统",
57
- "input": "string",
58
- "max": 100
73
+ "maxValue": 100,
74
+ "paramType": "string",
75
+ "fieldType": "varchar",
76
+ "fieldDefault": ""
59
77
  },
60
78
  "system": {
61
79
  "name": "系统",
62
- "input": "string",
63
- "max": 100
80
+ "maxValue": 100,
81
+ "paramType": "string",
82
+ "fieldType": "varchar",
83
+ "fieldDefault": ""
64
84
  },
65
85
  "brand": {
66
86
  "name": "设备品牌",
67
- "input": "string",
68
- "max": 100
87
+ "maxValue": 100,
88
+ "paramType": "string",
89
+ "fieldType": "varchar",
90
+ "fieldDefault": ""
69
91
  },
70
92
  "model": {
71
93
  "name": "设备型号",
72
- "input": "string",
73
- "max": 100
94
+ "maxValue": 100,
95
+ "paramType": "string",
96
+ "fieldType": "varchar",
97
+ "fieldDefault": ""
74
98
  },
75
99
  "loginTime": {
76
100
  "name": "登录时间",
77
- "input": "number"
101
+ "paramType": "integer",
102
+ "fieldType": "integer",
103
+ "fieldDefault": 0
78
104
  },
79
105
  "loginResult": {
80
106
  "name": "登录结果",
81
- "input": "number",
82
- "max": 1
107
+ "maxValue": 1,
108
+ "paramType": "integer",
109
+ "fieldType": "integer",
110
+ "fieldDefault": 0
83
111
  },
84
112
  "failReason": {
85
113
  "name": "失败原因",
86
- "input": "string",
87
- "max": 200
88
- },
89
- "state": {
90
- "name": "状态(0=已删除,1=正常,2=禁用)",
91
- "input": "enumInteger",
92
- "check": "0|1|2"
93
- },
94
- "createdAt": {
95
- "name": "创建时间",
96
- "input": "number"
97
- },
98
- "updatedAt": {
99
- "name": "更新时间",
100
- "input": "number"
101
- },
102
- "deletedAt": {
103
- "name": "删除时间",
104
- "input": "number"
114
+ "maxValue": 200,
115
+ "paramType": "string",
116
+ "fieldType": "varchar",
117
+ "fieldDefault": ""
105
118
  }
106
119
  }