lrf 7 月之前
父节点
当前提交
3428c894e6

+ 1 - 0
src/consumer/mission.consumer.ts

@@ -26,6 +26,7 @@ export class MissionConsumer {
       // 接 AsyncExportController
       // 3.消费者消费消息,并开始执行任务
       try {
+        console.log(`接收到任务id: ${id} 执行命令`)
         await asService.execute(id);
       } catch (error) {
         console.error(error);

+ 4 - 1
src/controller/exportConfig.controller.ts

@@ -1,11 +1,14 @@
 import { Body, Controller, Get, Inject, Param, Post } from '@midwayjs/core';
 import { ExportConfigService } from '../service/exportConfig.service';
 import { get, pick, upperFirst } from 'lodash';
+import { AsyncExportService } from '../service/asyncExport.service';
 
 @Controller('/ec')
 export class ExportConfigController {
   @Inject()
   ecService: ExportConfigService;
+  @Inject()
+  aeService: AsyncExportService;
 
   @Get('/user/:table')
   async userFetch(@Param('table') table: string) {
@@ -44,7 +47,7 @@ export class ExportConfigController {
 
   @Get('/dict')
   async getDict() {
-    const tableList = this.ecService.getDict_tables();
+    const tableList = this.aeService.getDict_tables();
     const typeList = this.ecService.getDict_type();
     const sourceList = this.ecService.getDict_source();
     return { tableList, typeList, sourceList };

+ 27 - 3
src/service/asyncExport.service.ts

@@ -69,7 +69,8 @@ export class AsyncExportService {
     // 抛出异常: 该数据未经过导出设置,无法导出
     if (!model) throw new ServiceError(ErrorCode.NO_EXPORT_SETTING);
     const builder = model.createQueryBuilder();
-    completeBuilderCondition(builder, query);
+    const nq = this.checkColumnInTable(model, query);
+    completeBuilderCondition(builder, nq);
     const total = await builder.getCount();
     // 抛出异常: 未查询到可导出的数据
     if (total <= 0) throw new ServiceError(ErrorCode.NO_DATA_IN_EXPORT_QUERY);
@@ -107,7 +108,8 @@ export class AsyncExportService {
     // 没找到model,不需要执行
     if (!model) return;
     const builder = model.createQueryBuilder();
-    completeBuilderCondition(builder, query);
+    const nq = this.checkColumnInTable(model, query);
+    completeBuilderCondition(builder, nq);
     /**数据总数,计算进度用 */
     const total = await builder.getCount();
     // 找数据,处理数据,写入数据
@@ -242,7 +244,17 @@ export class AsyncExportService {
   getModelName(name) {
     const model = this[`_model_${upperFirst(name)}`];
     if (!model) return;
-    return get(model,'metadata.comment')
+    return get(model, 'metadata.comment');
+  }
+  getDict_tables() {
+    const keys = Object.keys(this).filter(f => f.includes('_model_'));
+    const tableList = keys.map(i => {
+      const model = this[i];
+      const label = get(model, 'metadata.comment');
+      const table = get(model, 'metadata.name');
+      return { label, table };
+    });
+    return tableList;
   }
 
   @Config('PathConfig.path')
@@ -283,6 +295,18 @@ export class AsyncExportService {
       return true;
     }
   }
+  /**检查查询条件是否在表中有字段 */
+  checkColumnInTable(model, query) {
+    const columns = get(model, 'metadata.columns', []);
+    const nq = {};
+    for (const key in query) {
+      const column = columns.find(f => get(f, 'propertyName') === key);
+      if (!column) continue;
+      const val = query[key];
+      nq[key] = val;
+    }
+    return nq;
+  }
 
   @InjectEntityModel(Admin)
   _model_Admin: Repository<Admin>;

+ 1 - 10
src/service/exportConfig.service.ts

@@ -66,16 +66,7 @@ export class ExportConfigService {
     ];
     return sourceList;
   }
-  getDict_tables() {
-    const keys = Object.keys(this.aeService).filter(f => f.includes('_model_'));
-    const tableList = keys.map(i => {
-      const model = this[i];
-      const label = get(model, 'metadata.comment');
-      const table = get(model, 'metadata.name');
-      return { label, table };
-    });
-    return tableList;
-  }
+  
   getModelColumns(modelName, filters = []) {
     if (!modelName.includes('_model_')) {
       modelName = `_model_${modelName}`;

+ 9 - 0
src/service/initData/initSystemData.service.ts

@@ -841,6 +841,15 @@ export class InitSystemDataService {
         is_use: '0',
         route_name: 'log',
       },
+      {
+        name: '个人中心',
+        order_num: 1000,
+        path: '/center',
+        type: '1',
+        is_default: '0',
+        is_use: '0',
+        route_name: 'center_index',
+      },
     ];
     // 声明每个数据id.降维并带上父级id
     // 递归处理