From f5e5d411b38f5819551f9acedef62dcf0832bc2c Mon Sep 17 00:00:00 2001
From: master <master@163.com>
Date: 星期三, 16 三月 2022 19:51:15 +0800
Subject: [PATCH] after merge wang

---
 src/app/modules/base/controller/admin/open.ts |  106 +++++++++++++++--------------------------------------
 1 files changed, 30 insertions(+), 76 deletions(-)

diff --git a/src/app/modules/base/controller/admin/open.ts b/src/app/modules/base/controller/admin/open.ts
index 53816af..6c05a10 100644
--- a/src/app/modules/base/controller/admin/open.ts
+++ b/src/app/modules/base/controller/admin/open.ts
@@ -15,13 +15,16 @@
 import { BaseSysParamService } from '../../service/sys/param';
 import { DataService } from '../../service/dataapi/dataapi';
 import { CommEntity } from '../../entity/app/commentity';
+import { CreateEntityUtil } from '../../utils/createEntity';
 
 /**
  * 涓嶉渶瑕佺櫥褰曠殑鍚庡彴鎺ュ彛
  */
 @Provide()
-@CoolController({api: ['add', 'delete', 'update', 'info', 'list', 'page'],
-entity: CommEntity})
+@CoolController({
+  api: ['add', 'delete', 'update', 'info', 'list', 'page'],
+  entity: CommEntity
+})
 export class BaseOpenController extends BaseController {
   @Inject()
   baseSysLoginService: BaseSysLoginService;
@@ -31,6 +34,9 @@
 
   @Inject()
   dataService: DataService;
+
+  @Inject()
+  createEntityUtil: CreateEntityUtil;
 
   @Inject()
   ctx: Context;
@@ -90,8 +96,6 @@
    */
   @Get('/getdata', { summary: '鏁版嵁鎺ュ彛' })
   async getData(@Query(ALL) params: any) {
-    ``
-    console.log('-------------------------------------------------------');
     console.log(params);
     return this.ok(await this.dataService.getData(params));
   }
@@ -107,79 +111,29 @@
   @Get('/createEntity', {})
   async createEntity() {
     console.log('鐢熸垚缁煎悎瀹炰綋绫讳换鍔″紑濮嬫墽琛�');
-    const startTime = Date.now();
-    const columns = await this.dataService.getDataByNative({ "bid": "getColumns", "pageindex": "1", "pagesize": "300" })  //bid_obj_[0], query?.pageindex || null , query?.pagesize || null, query
-    // console.log(columns)
-    const columnstr = [];
-    columnstr.push(`import { EntityModel } from '@midwayjs/orm';
-    import { BaseEntity } from '@cool-midway/core';
-    import { Column, Double } from 'typeorm';
-    
-    /**
-     * 缁煎悎瀹炰綋绫�
-     */
-    @EntityModel('t_sys_comm_column')
-    export class CommEntity extends BaseEntity { \n`)
-    columns.forEach(element => {  //{ column_name: 'avg_task_time', data_type: 'int' },
-      //select table_name,column_name,data_type,column_type,is_nullable,column_default,ordinal_position,column_key,column_comment from view_columninfo order by table_name,column_name;
-      columnstr.push(`@Column({ comment:'${element.column_comment}', type:'${element.data_type}', default:'${element.column_default}'})\n`)
-      //varchar  int   text  double  datetime  bigint   enum  mediumtext  longtext  tinyint  decimal
-      let fieldType = 'string';
-      switch (element.data_type) {
-        case 'varchar':
-          fieldType = 'string'
-          break;
-        case 'text':
-          fieldType = 'string'
-          break;
-        case 'int':
-          fieldType = 'number'
-          break;
-        case 'bigint':
-          fieldType = 'number'
-          break;
-        case 'tinyint':
-          fieldType = 'number'
-          break;
-        case 'datetime':
-          fieldType = 'Date'
-          break;    
-        case 'double':
-          fieldType = 'Double'
-          break;   
-        case 'decimal':
-          fieldType = 'Double'
-          break;   
-        default:
-          break;
-      }
-      // let fieldType = element.data_type=='varchar' ? 'string' : element.data_type=='int' ? 'number' : element.data_type=='bigint' ? 'number' : element.data_type=='tinyint' ? 'number' 
-      columnstr.push(`${element.tbname}_${element.column_name}: ${fieldType};\n`)
-      columnstr.push(`\n`)
-    });
-    columnstr.push(`}`)
-    if (fs.existsSync('../entity/app/commentity.ts')) {
-      console.log(' file is exists')
-    } else {
-      console.log(' file is not exists')
-      // API
-      fs.writeFile('./src/app/modules/base/entity/app/commentity.ts',
-        columnstr.join(''), (error) => {
-          // 鍒涘缓澶辫触
-          if (error) {
-            console.log(`鍒涘缓澶辫触锛�${error}`)
-          }
-          // 鍒涘缓鎴愬姛
-          console.log(`鍒涘缓鎴愬姛锛乣)
 
-        })
-    }
-    //璇诲彇鏂囦欢鍐呭锛屽苟杞寲涓篔son瀵硅薄
-    // let userBugsJson = JSON.parse(fs.readFileSync("app/public/static/Data.json", "utf8"));
-    // //鑾峰彇Json閲宬ey涓篸ata鐨勬暟鎹�
-    // const data = userBugsJson['data'];
-    // return data;
-    console.log(`鐢熸垚缁煎悎瀹炰綋绫讳换鍔$粨鏉燂紝鑰楁椂:${Date.now() - startTime}ms`);
+    let tables = await this.dataService.getDataByNative({ "bid": "getTableNeedCreate", "pageindex": "1", "pagesize": "300" })
+    let columns = await this.dataService.getDataByNative({ "bid": "getColumns", "pageindex": "1", "pagesize": "300" })  //bid_obj_[0], query?.pageindex || null , query?.pagesize || null, query
+    console.log(`${tables.length} and columnlength ${columns.length}`)
+    let tabs = {};
+    tables.forEach(element => {
+      tabs[element.name] = element;
+    });
+    columns.forEach(element => {
+      let tbname = element.table_name;
+      if (!tabs[tbname]) {
+        tabs[tbname] = {}
+      }
+      if (!tabs[tbname].tbcolumn) {
+        tabs[tbname].tbcolumn = [];
+      }
+      tabs[tbname].tbcolumn.push(element)
+    });
+    Object.keys(tabs).forEach(key => {
+      this.createEntityUtil.createEntity(tabs[key])
+      this.createEntityUtil.createService(tabs[key])
+      this.createEntityUtil.createController(tabs[key])
+    })
   }
 
 }

--
Gitblit v1.9.1