4.x 就绪

This commit is contained in:
ap 2021-12-01 18:18:21 +08:00
parent a3f1ef9edc
commit 725649d0ee
7 changed files with 55 additions and 5 deletions

View File

@ -5,7 +5,7 @@
"private": true,
"dependencies": {
"@cool-midway/alipay": "^4.0.3",
"@cool-midway/core": "^4.0.6",
"@cool-midway/core": "/Users/mac/Documents/src/cool/admin/midway-core/core/dist/",
"@cool-midway/es": "^4.0.2",
"@cool-midway/oss": "^4.0.2",
"@cool-midway/queue": "^4.0.3",

View File

@ -12,6 +12,10 @@ import { BaseSysLogService } from '../../../service/sys/log';
@CoolController({
api: ['page'],
entity: BaseSysLogEntity,
urlTag: {
name: 'a',
url: ['add'],
},
pageQueryOp: {
keyWordLikeFields: ['b.name', 'a.params', 'a.ipAddr'],
select: ['a.*', 'b.name'],

View File

@ -89,9 +89,9 @@ export class BaseSysUserService extends BaseService {
*/
async person() {
const info = await this.baseSysUserEntity.findOne({
id: this.ctx.admin.userId,
id: this.ctx.admin?.userId,
});
delete info.password;
delete info?.password;
return info;
}

View File

@ -12,5 +12,7 @@ export default (app: Application) => {
description: '演示示例',
// 中间件
middlewares: ['testMiddleware'],
// 全局中间件
globalMiddlewares: ['demoUserMiddleware'],
} as ModuleConfig;
};

View File

@ -1,7 +1,8 @@
import { Get, Provide } from '@midwayjs/decorator';
import { Context } from 'egg';
import { CoolController, BaseController } from '@cool-midway/core';
import { CoolController, BaseController, CoolUrlTag } from '@cool-midway/core';
import { DemoGoodsEntity } from '../../entity/goods';
import { SelectQueryBuilder } from 'typeorm';
/**
*
@ -18,6 +19,11 @@ import { DemoGoodsEntity } from '../../entity/goods';
userId: ctx.admin.userId,
};
},
// 给请求路径打上标签
urlTag: {
name: 'ignoreToken',
url: ['page'],
},
// info接口忽略价格字段
infoIgnoreProperty: ['price'],
// 分页查询配置
@ -26,6 +32,10 @@ import { DemoGoodsEntity } from '../../entity/goods';
keyWordLikeFields: ['title'],
// 让type字段支持筛选
fieldEq: ['type'],
// 4.x 新增 追加其他条件
extend: async (find: SelectQueryBuilder<DemoGoodsEntity>) => {
find.groupBy('a.id');
},
// 增加其他条件
where: async (ctx: Context) => {
return [
@ -44,6 +54,7 @@ export class DemoAdminGoodsController extends BaseController {
/**
*
*/
@CoolUrlTag('ignoreToken')
@Get('/other')
async other() {
return this.ok('hello, cool-admin!!!');

View File

@ -0,0 +1,33 @@
import { ICoolUrlTag } from '@cool-midway/core';
import { App, Provide } from '@midwayjs/decorator';
import {
IWebMiddleware,
IMidwayWebNext,
IMidwayWebApplication,
} from '@midwayjs/web';
import { Context } from 'egg';
/**
*
*/
@Provide()
export class DemoUserMiddleware implements IWebMiddleware {
@App()
app: IMidwayWebApplication;
resolve() {
return async (ctx: Context, next: IMidwayWebNext) => {
// 获得请求路径标签可以利用此处来判断是否忽略token校验以及其他需求场景
const urlTag: ICoolUrlTag = await this.app
.getApplicationContext()
.getAsync('cool:urlTag');
console.log('urlTag', urlTag);
// 控制器前执行的逻辑
const startTime = Date.now();
// 执行下一个 Web 中间件,最后执行到控制器
await next();
// 控制器之后执行的逻辑
console.log(Date.now() - startTime);
};
}
}

View File

@ -13,6 +13,6 @@ export class WelcomeController extends BaseController {
@Get('/')
public async welcome() {
await this.ctx.render('welcome', { text: 'HELLO COOL-ADMIN' });
await this.ctx.render('welcome', { text: 'HELLO COOL-ADMIN 4.x' });
}
}