chore: src/modules/demo/service/tenant.ts
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
import { Inject, Provide } from '@midwayjs/core';
|
||||||
|
import { BaseService } from '@cool-midway/core';
|
||||||
|
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||||
|
import { Repository } from 'typeorm';
|
||||||
|
import { DemoGoodsEntity } from '../entity/goods';
|
||||||
|
import { noTenant } from '../../base/db/tenant';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品服务
|
||||||
|
*/
|
||||||
|
@Provide()
|
||||||
|
export class DemoTenantService extends BaseService {
|
||||||
|
@InjectEntityModel(DemoGoodsEntity)
|
||||||
|
demoGoodsEntity: Repository<DemoGoodsEntity>;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
ctx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用多租户
|
||||||
|
*/
|
||||||
|
async use() {
|
||||||
|
await this.demoGoodsEntity.createQueryBuilder().getMany();
|
||||||
|
await this.demoGoodsEntity.find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不使用多租户(局部不使用)
|
||||||
|
*/
|
||||||
|
async noUse() {
|
||||||
|
// 过滤多租户
|
||||||
|
await this.demoGoodsEntity.createQueryBuilder().getMany();
|
||||||
|
// 被noTenant包裹,不会过滤多租户
|
||||||
|
await noTenant(this.ctx, async () => {
|
||||||
|
return await this.demoGoodsEntity.createQueryBuilder().getMany();
|
||||||
|
});
|
||||||
|
// 过滤多租户
|
||||||
|
await this.demoGoodsEntity.find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无效多租户
|
||||||
|
*/
|
||||||
|
async invalid() {
|
||||||
|
// 自定义sql,不进行多租户过滤
|
||||||
|
await this.nativeQuery('select * from demo_goods');
|
||||||
|
// 自定义分页sql,不进行多租户过滤
|
||||||
|
await this.sqlRenderPage('select * from demo_goods');
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user