| | |
| | | import { Context } from 'egg'; |
| | | import { CoolController, BaseController } from '@cool-midway/core'; |
| | | import { LoginDTO } from '../../dto/login'; |
| | | import * as fs from 'fs'; |
| | | import { BaseSysLoginService } from '../../service/sys/login'; |
| | | import { BaseSysParamService } from '../../service/sys/param'; |
| | | import { DataService } from '../../service/dataapi/dataapi'; |
| | | import { CommEntity } from '../../entity/app/commentity'; |
| | | |
| | | /** |
| | | * 不需要登录的后台接口 |
| | | */ |
| | | @Provide() |
| | | @CoolController() |
| | | @CoolController({api: ['add', 'delete', 'update', 'info', 'list', 'page'], |
| | | entity: CommEntity}) |
| | | export class BaseOpenController extends BaseController { |
| | | @Inject() |
| | | baseSysLoginService: BaseSysLoginService; |
| | |
| | | baseSysParamService: BaseSysParamService; |
| | | |
| | | @Inject() |
| | | dataService: DataService; |
| | | dataService: DataService; |
| | | |
| | | @Inject() |
| | | ctx: Context; |
| | |
| | | /** |
| | | * 获得数据 |
| | | */ |
| | | @Get('/getdata', { summary: '数据接口' }) |
| | | async getData(@Query(ALL) params: any) { |
| | | console.log('-------------------------------------------------------'); |
| | | console.log(params); |
| | | return this.ok(await this.dataService.getData(params)); |
| | | } |
| | | @Get('/getdata', { summary: '数据接口' }) |
| | | async getData(@Query(ALL) params: any) { |
| | | `` |
| | | console.log('-------------------------------------------------------'); |
| | | console.log(params); |
| | | return this.ok(await this.dataService.getData(params)); |
| | | } |
| | | |
| | | /** |
| | | * 获得数据 |
| | | */ |
| | | @Post('/postdata', { summary: '数据接口' }) |
| | | async postData(@Query(ALL) params: any) { |
| | | return this.ok(await this.dataService.getData(params)); |
| | | } |
| | | @Post('/postdata', { summary: '数据接口' }) |
| | | async postData(@Query(ALL) params: any) { |
| | | return this.ok(await this.dataService.getData(params)); |
| | | } |
| | | |
| | | @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(`创建成功!`) |
| | | |
| | | }) |
| | | } |
| | | //读取文件内容,并转化为Json对象 |
| | | // let userBugsJson = JSON.parse(fs.readFileSync("app/public/static/Data.json", "utf8")); |
| | | // //获取Json里key为data的数据 |
| | | // const data = userBugsJson['data']; |
| | | // return data; |
| | | console.log(`生成综合实体类任务结束,耗时:${Date.now() - startTime}ms`); |
| | | } |
| | | |
| | | } |