diff --git a/package.json b/package.json index 928b67f..3732e94 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cool-admin", - "version": "3.0.0", + "version": "4.0.0", "description": "", "private": true, "dependencies": { @@ -15,7 +15,7 @@ "lodash": "^4.17.21", "md5": "^2.3.0", "midwayjs-cool-alipay": "^1.0.8", - "midwayjs-cool-core": "^3.2.32", + "midwayjs-cool-core": "/Users/mac/Documents/src/cool/admin/midway-core/core/dist/", "midwayjs-cool-oss": "^1.0.12", "midwayjs-cool-queue": "^1.0.8", "midwayjs-cool-redis": "^1.1.6", diff --git a/src/app/modules/base/controller/admin/sys/log.ts b/src/app/modules/base/controller/admin/sys/log.ts index aff40a3..3ba85aa 100644 --- a/src/app/modules/base/controller/admin/sys/log.ts +++ b/src/app/modules/base/controller/admin/sys/log.ts @@ -14,7 +14,7 @@ import { BaseSysLogService } from '../../../service/sys/log'; entity: BaseSysLogEntity, pageQueryOp: { keyWordLikeFields: ['b.name', 'a.params', 'a.ipAddr'], - select: ['a.*, b.name'], + select: ['a.*', 'b.name'], leftJoin: [ { entity: BaseSysUserEntity, diff --git a/src/app/modules/base/controller/admin/sys/menu.ts b/src/app/modules/base/controller/admin/sys/menu.ts index 193226b..7a4b438 100644 --- a/src/app/modules/base/controller/admin/sys/menu.ts +++ b/src/app/modules/base/controller/admin/sys/menu.ts @@ -1,4 +1,4 @@ -import { Inject, Provide } from '@midwayjs/decorator'; +import { Get, Inject, Provide } from '@midwayjs/decorator'; import { CoolController, BaseController } from 'midwayjs-cool-core'; import { BaseSysMenuEntity } from '../../../entity/sys/menu'; import { BaseSysMenuService } from '../../../service/sys/menu'; @@ -15,4 +15,16 @@ import { BaseSysMenuService } from '../../../service/sys/menu'; export class BaseSysMenuController extends BaseController { @Inject() baseSysMenuService: BaseSysMenuService; + + @Inject('cool:eps') + eps; + + /** + * 实体信息与路径 + * @returns + */ + @Get('/eps') + public async getEps() { + return this.ok(this.eps); + } } diff --git a/src/app/modules/demo/controller/admin/crud.ts b/src/app/modules/demo/controller/admin/crud.ts new file mode 100644 index 0000000..c3922f9 --- /dev/null +++ b/src/app/modules/demo/controller/admin/crud.ts @@ -0,0 +1,16 @@ +// import { Provide } from '@midwayjs/decorator'; +// import { CoolController, BaseController } from 'midwayjs-cool-core'; +// import { DemoCrudEntity } from '../../entity/crud'; + +// /** +// * 描述 +// */ +// @Provide() +// @CoolController({ +// api: ['add', 'delete', 'update', 'info', 'list', 'page'], +// entity: DemoCrudEntity, +// pageQueryOp: { +// fieldEq: ['age'], +// }, +// }) +// export class AdminDemoCrudController extends BaseController {} diff --git a/src/app/modules/demo/controller/admin/goods.ts b/src/app/modules/demo/controller/admin/goods.ts index 1476329..a41ebe4 100644 --- a/src/app/modules/demo/controller/admin/goods.ts +++ b/src/app/modules/demo/controller/admin/goods.ts @@ -2,7 +2,7 @@ import { Get, Provide } from '@midwayjs/decorator'; import { Context } from 'egg'; import { CoolController, BaseController } from 'midwayjs-cool-core'; import { BaseSysUserEntity } from '../../../base/entity/sys/user'; -import { DemoAppGoodsEntity } from '../../entity/goods'; +import { DemoGoodsEntity } from '../../entity/goods'; /** * 商品 @@ -12,7 +12,7 @@ import { DemoAppGoodsEntity } from '../../entity/goods'; // 添加通用CRUD接口 api: ['add', 'delete', 'update', 'info', 'list', 'page'], // 设置表实体 - entity: DemoAppGoodsEntity, + entity: DemoGoodsEntity, // 向表插入当前登录用户ID insertParam: async (ctx: Context) => { return { diff --git a/src/app/modules/demo/controller/app/goods.ts b/src/app/modules/demo/controller/app/goods.ts index 542eee1..2833981 100644 --- a/src/app/modules/demo/controller/app/goods.ts +++ b/src/app/modules/demo/controller/app/goods.ts @@ -1,7 +1,7 @@ import { Get, Inject, Post, Provide } from '@midwayjs/decorator'; import { CoolController, BaseController } from 'midwayjs-cool-core'; import { IQueue } from 'midwayjs-cool-queue'; -import { DemoAppGoodsEntity } from '../../entity/goods'; +import { DemoGoodsEntity } from '../../entity/goods'; import { DemoGoodsService } from '../../service/goods'; /** @@ -11,7 +11,7 @@ import { DemoGoodsService } from '../../service/goods'; @CoolController( { api: ['add', 'delete', 'update', 'info', 'list', 'page'], - entity: DemoAppGoodsEntity, + entity: DemoGoodsEntity, listQueryOp: { keyWordLikeFields: ['title'], }, diff --git a/src/app/modules/demo/entity/crud.ts b/src/app/modules/demo/entity/crud.ts new file mode 100644 index 0000000..575ac70 --- /dev/null +++ b/src/app/modules/demo/entity/crud.ts @@ -0,0 +1,39 @@ +import { EntityModel } from '@midwayjs/orm'; +import { BaseEntity, CoolEntityCrud } from 'midwayjs-cool-core'; +import { Column, SelectQueryBuilder } from 'typeorm'; +import { DemoGoodsEntity } from './goods'; + +/** + * 实体类crud demo + */ +@CoolEntityCrud({ + pageQueryOp: { + fieldEq: ['name'], + select: ['a.*', 'b.id as price'], + join: [ + { + entity: DemoGoodsEntity, + alias: 'b', + condition: 'a.id = b.id', + type: 'innerJoin', + }, + ], + other: async (find: SelectQueryBuilder) => { + find.groupBy('a.id'); + }, + }, +}) +@EntityModel('demo_crud') +export class DemoCrudEntity extends BaseEntity { + @Column({ comment: '头像' }) + headImg: string; + + @Column({ comment: '姓名' }) + name: string; + + @Column({ comment: '年龄' }) + age: number; + + @Column({ type: 'tinyint', comment: '性别 0-未知 1-男 2-女', default: 0 }) + type: number; +} diff --git a/src/app/modules/demo/entity/goods.ts b/src/app/modules/demo/entity/goods.ts index 38299a9..ed8a412 100644 --- a/src/app/modules/demo/entity/goods.ts +++ b/src/app/modules/demo/entity/goods.ts @@ -5,8 +5,8 @@ import { Column } from 'typeorm'; /** * 商品 */ -@EntityModel('demo_app_goods') -export class DemoAppGoodsEntity extends BaseEntity { +@EntityModel('demo_goods') +export class DemoGoodsEntity extends BaseEntity { @Column({ comment: '标题' }) title: string; diff --git a/src/app/modules/demo/service/goods.ts b/src/app/modules/demo/service/goods.ts index c2f826d..9e59d82 100644 --- a/src/app/modules/demo/service/goods.ts +++ b/src/app/modules/demo/service/goods.ts @@ -2,7 +2,7 @@ import { Inject, Provide } from '@midwayjs/decorator'; import { BaseService, Cache, CoolTransaction } from 'midwayjs-cool-core'; import { InjectEntityModel } from '@midwayjs/orm'; import { Repository, QueryRunner } from 'typeorm'; -import { DemoAppGoodsEntity } from '../entity/goods'; +import { DemoGoodsEntity } from '../entity/goods'; import { ICoolCache } from 'midwayjs-cool-core'; /** @@ -10,8 +10,8 @@ import { ICoolCache } from 'midwayjs-cool-core'; */ @Provide() export class DemoGoodsService extends BaseService { - @InjectEntityModel(DemoAppGoodsEntity) - demoAppGoodsEntity: Repository; + @InjectEntityModel(DemoGoodsEntity) + demoAppGoodsEntity: Repository; @Inject('cool:cache') coolCache: ICoolCache; @@ -31,7 +31,7 @@ export class DemoGoodsService extends BaseService { */ @CoolTransaction({ isolation: 'SERIALIZABLE' }) async testTransaction(params: any, queryRunner?: QueryRunner) { - await queryRunner.manager.insert(DemoAppGoodsEntity, { + await queryRunner.manager.insert(DemoGoodsEntity, { title: '这是个商品', pic: '商品图', price: 99.0,