midway-fatcms 0.0.5 → 0.0.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.
Files changed (132) hide show
  1. package/.qoder/skills/midway-fatcms-crud/SKILL.md +375 -0
  2. package/.qoder/skills/midway-fatcms-crud/examples.md +990 -0
  3. package/.qoder/skills/midway-fatcms-crud/reference.md +568 -0
  4. package/README.md +377 -134
  5. package/dist/controller/manage/CrudStandardDesignApi.d.ts +0 -2
  6. package/dist/controller/manage/CrudStandardDesignApi.js +11 -85
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.js +2 -0
  9. package/dist/libs/crud-pro/CrudPro.d.ts +9 -1
  10. package/dist/libs/crud-pro/CrudPro.js +15 -0
  11. package/dist/libs/crud-pro/README.md +809 -0
  12. package/dist/libs/crud-pro/README_FUNC.md +193 -0
  13. package/dist/libs/crud-pro/exceptions.d.ts +2 -0
  14. package/dist/libs/crud-pro/exceptions.js +2 -0
  15. package/dist/libs/crud-pro/interfaces.d.ts +34 -1
  16. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +3 -3
  17. package/dist/libs/crud-pro/models/ExecuteContext.js +2 -0
  18. package/dist/libs/crud-pro/models/RequestModel.d.ts +6 -2
  19. package/dist/libs/crud-pro/models/RequestModel.js +20 -53
  20. package/dist/libs/crud-pro/models/ResModel.d.ts +6 -4
  21. package/dist/libs/crud-pro/models/ServiceHub.d.ts +1 -0
  22. package/dist/libs/crud-pro/models/keys.d.ts +6 -1
  23. package/dist/libs/crud-pro/models/keys.js +5 -0
  24. package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.d.ts +52 -0
  25. package/dist/libs/crud-pro/services/CrudProDataTypeConvertService.js +158 -0
  26. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +20 -1
  27. package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +7 -0
  28. package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +32 -0
  29. package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +13 -0
  30. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +44 -7
  31. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +43 -0
  32. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +132 -1
  33. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +15 -1
  34. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +107 -0
  35. package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +5 -1
  36. package/dist/libs/crud-pro/services/CurdProServiceHub.js +11 -0
  37. package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +1 -0
  38. package/dist/libs/crud-pro/utils/DateTimeUtils.js +3 -0
  39. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +32 -0
  40. package/dist/libs/crud-pro/utils/MixinUtils.js +85 -1
  41. package/dist/libs/crud-pro/utils/OrderByUtils.d.ts +70 -0
  42. package/dist/libs/crud-pro/utils/OrderByUtils.js +158 -0
  43. package/dist/libs/crud-pro/utils/ValidateUtils.js +1 -1
  44. package/dist/libs/crud-sharding/ROUTING_LOGIC.md +944 -0
  45. package/dist/libs/crud-sharding/ShardingConfig.d.ts +218 -0
  46. package/dist/libs/crud-sharding/ShardingConfig.js +32 -0
  47. package/dist/libs/crud-sharding/ShardingCountCache.d.ts +69 -0
  48. package/dist/libs/crud-sharding/ShardingCountCache.js +160 -0
  49. package/dist/libs/crud-sharding/ShardingCrudPro.d.ts +363 -0
  50. package/dist/libs/crud-sharding/ShardingCrudPro.js +675 -0
  51. package/dist/libs/crud-sharding/ShardingMerger.d.ts +130 -0
  52. package/dist/libs/crud-sharding/ShardingMerger.js +282 -0
  53. package/dist/libs/crud-sharding/ShardingRouter.d.ts +69 -0
  54. package/dist/libs/crud-sharding/ShardingRouter.js +377 -0
  55. package/dist/libs/crud-sharding/ShardingTableCreator.d.ts +146 -0
  56. package/dist/libs/crud-sharding/ShardingTableCreator.js +805 -0
  57. package/dist/libs/crud-sharding/ShardingUtils.d.ts +38 -0
  58. package/dist/libs/crud-sharding/ShardingUtils.js +77 -0
  59. package/dist/libs/crud-sharding/index.d.ts +45 -0
  60. package/dist/libs/crud-sharding/index.js +55 -0
  61. package/dist/models/StandardColumns.d.ts +71 -0
  62. package/dist/models/StandardColumns.js +28 -0
  63. package/dist/service/SysAppService.js +2 -2
  64. package/dist/service/SysConfigService.js +1 -1
  65. package/dist/service/SysDictDataService.js +2 -2
  66. package/dist/service/SysMenuService.js +1 -1
  67. package/dist/service/UserAccountService.d.ts +1 -1
  68. package/dist/service/crudstd/CrudStdService.d.ts +0 -1
  69. package/dist/service/crudstd/CrudStdService.js +0 -27
  70. package/dist/service/curd/CrudProQuick.d.ts +134 -4
  71. package/dist/service/curd/CrudProQuick.js +155 -3
  72. package/dist/service/curd/CurdMixService.d.ts +2 -1
  73. package/dist/service/curd/CurdMixService.js +5 -1
  74. package/dist/service/curd/CurdProService.d.ts +44 -2
  75. package/dist/service/curd/CurdProService.js +53 -1
  76. package/dist/service/curd/README.md +1100 -0
  77. package/dist/service/curd/fixSoftDelete.d.ts +14 -0
  78. package/dist/service/curd/fixSoftDelete.js +29 -11
  79. package/dist/service/flow/FlowConfigService.js +1 -1
  80. package/dist/service/flow/FlowInstanceCrudService.js +1 -1
  81. package/package.json +4 -1
  82. package/src/controller/gateway/AsyncTaskController.ts +1 -1
  83. package/src/controller/manage/CrudStandardDesignApi.ts +16 -100
  84. package/src/index.ts +3 -0
  85. package/src/libs/crud-pro/CrudPro.ts +19 -1
  86. package/src/libs/crud-pro/README.md +809 -0
  87. package/src/libs/crud-pro/README_FUNC.md +193 -0
  88. package/src/libs/crud-pro/exceptions.ts +2 -0
  89. package/src/libs/crud-pro/interfaces.ts +38 -1
  90. package/src/libs/crud-pro/models/ExecuteContext.ts +6 -3
  91. package/src/libs/crud-pro/models/RequestModel.ts +23 -65
  92. package/src/libs/crud-pro/models/ResModel.ts +10 -4
  93. package/src/libs/crud-pro/models/ServiceHub.ts +2 -0
  94. package/src/libs/crud-pro/models/keys.ts +5 -0
  95. package/src/libs/crud-pro/services/CrudProDataTypeConvertService.ts +171 -0
  96. package/src/libs/crud-pro/services/CrudProExecuteSqlService.ts +24 -1
  97. package/src/libs/crud-pro/services/CrudProFieldValidateService.ts +53 -1
  98. package/src/libs/crud-pro/services/CrudProGenSqlService.ts +51 -7
  99. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +159 -2
  100. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +139 -1
  101. package/src/libs/crud-pro/services/CurdProServiceHub.ts +16 -1
  102. package/src/libs/crud-pro/utils/DateTimeUtils.ts +3 -0
  103. package/src/libs/crud-pro/utils/MixinUtils.ts +97 -1
  104. package/src/libs/crud-pro/utils/OrderByUtils.ts +169 -0
  105. package/src/libs/crud-pro/utils/ValidateUtils.ts +1 -1
  106. package/src/libs/crud-sharding/ROUTING_LOGIC.md +944 -0
  107. package/src/libs/crud-sharding/ShardingConfig.ts +240 -0
  108. package/src/libs/crud-sharding/ShardingCountCache.ts +200 -0
  109. package/src/libs/crud-sharding/ShardingCrudPro.ts +835 -0
  110. package/src/libs/crud-sharding/ShardingMerger.ts +384 -0
  111. package/src/libs/crud-sharding/ShardingRouter.ts +512 -0
  112. package/src/libs/crud-sharding/ShardingTableCreator.ts +1007 -0
  113. package/src/libs/crud-sharding/ShardingUtils.ts +84 -0
  114. package/src/libs/crud-sharding/index.ts +64 -0
  115. package/src/models/StandardColumns.ts +76 -0
  116. package/src/service/FileCenterService.ts +1 -1
  117. package/src/service/SysAppService.ts +2 -2
  118. package/src/service/SysConfigService.ts +1 -1
  119. package/src/service/SysDictDataService.ts +2 -2
  120. package/src/service/SysMenuService.ts +2 -2
  121. package/src/service/WorkbenchService.ts +1 -1
  122. package/src/service/anyapi/AnyApiService.ts +1 -1
  123. package/src/service/asyncTask/AsyncTaskRunnerService.ts +1 -1
  124. package/src/service/crudstd/CrudStdService.ts +0 -32
  125. package/src/service/curd/CrudProQuick.ts +164 -5
  126. package/src/service/curd/CurdMixService.ts +7 -2
  127. package/src/service/curd/CurdProService.ts +62 -3
  128. package/src/service/curd/README.md +1100 -0
  129. package/src/service/curd/fixCfgModel.ts +1 -2
  130. package/src/service/curd/fixSoftDelete.ts +38 -16
  131. package/src/service/flow/FlowConfigService.ts +1 -1
  132. package/src/service/flow/FlowInstanceCrudService.ts +1 -1
@@ -51,7 +51,7 @@ function fixCfgModel(cfgModel: IRequestCfgModel2) {
51
51
  const dataCfgArray = getDataCfgArray();
52
52
  const conditionCfgArray = getConditionCfgArray();
53
53
 
54
- const mapping = {
54
+ const mapping: Record<string, any> = {
55
55
  'condition.created_by': { contextAsString: CTX_VISITOR_ID },
56
56
  'condition.created_account_type': { contextAsString: CTX_VISITOR_ACCOUNT_TYPE },
57
57
 
@@ -120,5 +120,4 @@ function fixCfgModel(cfgModel: IRequestCfgModel2) {
120
120
 
121
121
 
122
122
 
123
-
124
123
  export { fixCfgModel };
@@ -2,43 +2,67 @@ import { KeysOfSimpleSQL } from "@/libs/crud-pro/models/keys";
2
2
  import { IRequestModel } from "@/libs/crud-pro/interfaces";
3
3
  import { IRequestCfgModel2 } from "@/models/bizmodels";
4
4
  import { Context } from "@midwayjs/koa";
5
+ import type { ICommonStandardColumns } from "@/models/StandardColumns";
5
6
 
7
+ /**
8
+ * 软删除处理函数
9
+ *
10
+ * 当 cfgModel.enableSoftDelete === true 时,自动处理软删除逻辑:
11
+ *
12
+ * 1. INSERT 操作:自动设置 deleted_at = 0
13
+ * 2. DELETE 操作:转为 UPDATE,设置 deleted_at = 时间戳, deleted_by = 当前用户
14
+ * 3. QUERY 操作:自动添加 deleted_at = 0 条件
15
+ *
16
+ * @param oldSqlSimpleName 原始 SQL 类型
17
+ * @param cfgModel 配置模型
18
+ * @param params 请求参数(会被修改)
19
+ * @param ctx 请求上下文(用于获取当前用户信息)
20
+ */
21
+ function fixSoftDelete(
22
+ oldSqlSimpleName: KeysOfSimpleSQL,
23
+ cfgModel: IRequestCfgModel2,
24
+ params: IRequestModel,
25
+ ctx?: Context
26
+ ): void {
6
27
 
7
- function fixSoftDelete(oldSqlSimpleName: KeysOfSimpleSQL, cfgModel: IRequestCfgModel2, params: IRequestModel, ctx?: Context) {
8
-
9
- // 没有开启软删除。不做处理,直接物理删除
28
+ // 没有开启软删除,不做处理,直接物理删除
10
29
  if (cfgModel.enableSoftDelete !== true) {
11
30
  return;
12
31
  }
13
32
 
14
- // 刚插入的话,肯定是未删除的
33
+ // INSERT 操作:刚插入的数据,肯定是未删除的
15
34
  if (KeysOfSimpleSQL.SIMPLE_INSERT === oldSqlSimpleName) {
16
35
  if (!params.data) {
17
36
  params.data = {};
18
37
  }
19
- params.data.deleted_at = 0; // 默认值为 0; 0代表未删除
38
+ const dataObj = params.data as ICommonStandardColumns;
39
+ dataObj.deleted_at = 0;
20
40
  }
21
41
 
22
- // 删除操作,如果是软删除修改为update语句。
23
- // 标准软删除:deleted_at 字段为0代表未删除,有任意时间字段代表已删除。
42
+ // DELETE 操作:如果是软删除,修改为 UPDATE 语句
43
+ // 标准软删除:deleted_at 字段为 0 代表未删除,有任意时间戳代表已删除
24
44
  if (KeysOfSimpleSQL.SIMPLE_DELETE === oldSqlSimpleName) {
25
45
 
26
46
  if (!params.condition || Object.keys(params.condition).length === 0) {
27
- throw new Error('执行删除操作,必须指定删除条件')
47
+ throw new Error('执行删除操作,必须指定删除条件');
28
48
  }
29
49
 
50
+ // 获取当前用户信息
51
+ const sessionInfo = ctx?.userSession?.getSessionInfo();
52
+
53
+ // 在原有 data 对象上添加软删除字段
30
54
  if (!params.data) {
31
55
  params.data = {};
32
56
  }
33
- const sessionInfo = ctx?.userSession?.getSessionInfo();
34
- params.data.deleted_at = Date.now(); // 默认值为 0; 0代表未删除
35
- params.data.deleted_by = sessionInfo?.accountId || "";
57
+ const dataObj = params.data as ICommonStandardColumns;
58
+ dataObj.deleted_at = Date.now();
59
+ dataObj.deleted_by = sessionInfo?.accountId || '';
36
60
 
37
- // 执行update操作
61
+ // 改为执行 UPDATE 操作
38
62
  cfgModel.sqlSimpleName = KeysOfSimpleSQL.SIMPLE_UPDATE;
39
63
  }
40
64
 
41
- // 查询操作。强制查询未删除的。
65
+ // QUERY 操作:强制查询未删除的记录
42
66
  if (KeysOfSimpleSQL.SIMPLE_QUERY_ONE === oldSqlSimpleName
43
67
  || KeysOfSimpleSQL.SIMPLE_QUERY === oldSqlSimpleName
44
68
  || KeysOfSimpleSQL.SIMPLE_QUERY_PAGE === oldSqlSimpleName) {
@@ -46,10 +70,8 @@ function fixSoftDelete(oldSqlSimpleName: KeysOfSimpleSQL, cfgModel: IRequestCfgM
46
70
  if (!params.condition) {
47
71
  params.condition = {};
48
72
  }
49
- params.condition.deleted_at = 0; // 未删除
50
-
73
+ params.condition.deleted_at = 0;
51
74
  }
52
-
53
75
  }
54
76
 
55
77
 
@@ -62,7 +62,7 @@ export class FlowConfigService extends BaseService {
62
62
 
63
63
  private get flow_config(){
64
64
  const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
65
- return this.curdProService.getBbUtil(SystemDbName, SystemDbType, FLOW_TABLES.flow_config)
65
+ return this.curdProService.getQuickCrud(SystemDbName, SystemDbType, FLOW_TABLES.flow_config)
66
66
  }
67
67
 
68
68
  private toCacheKey(flow_code: string, flow_version: number): string {
@@ -24,7 +24,7 @@ export class FlowInstanceCrudService extends BaseService {
24
24
 
25
25
  private get flowDB(): CrudProQuick {
26
26
  const { FlowDbName, FlowDbType } = GLOBAL_STATIC_CONFIG.getConfig();
27
- const util = this.curdProService.getBbUtil(FlowDbName, FlowDbType);
27
+ const util = this.curdProService.getQuickCrud(FlowDbName, FlowDbType);
28
28
  util.setBaseCfgModel({ maxLimit: 100000 });
29
29
  return util;
30
30
  }