pao-aop-server
Version:
基于pao-aop的服务端框架
186 lines • 5.13 kB
TypeScript
import 'reflect-metadata';
import { ConnectionOptions, Connection } from 'typeorm';
import { BaseService } from '../../base';
import { BaseAddon, IDataService } from 'pao-aop';
/**
* 数据过滤器接口
* @author huyl
*/
export interface IRelationDataFilter {
/**
* 获取运算符
*/
getLogicSign?(): string;
/**
* 获取过滤语句
* @param paramValues 参数
*/
getFilterSql?(paramValues: {} | any): string | undefined;
/**
* 获取参数
*/
getParameters?(paramValues: {} | any): Array<any> | undefined;
}
/**
* 数据过滤器
* @author huyl
*/
export declare class BaseRelationDataFilter extends BaseAddon implements IRelationDataFilter {
/**
* 子过滤器列表
*/
childFilters: IRelationDataFilter[];
/**
* 过滤参数
*/
parameters?: any[];
/**
* 获取过滤语句
* @param paramValues 参数
*/
getFilterSql?(paramValues: {} | any): string | undefined;
/**
* 获取过滤参数
* @param paramValues 参数
*/
getParameters?(paramValues: {} | any): Array<any> | undefined;
/**
* 获取运算符
*/
getLogicSign?(): string;
/**
* AND逻辑运算
* @param filters 表达式
* @remark 传入的表示式可以是sqlFilter或者baseDataFilter,
* 如果是baseDataFilter,则baseDataFilter生成表达式会用()闭包
* 例如(sqlfilter,baseDataFilter)生成结果(sqlFilterSql and ( baseDataFilterSql ) )
*/
and?(...filters: IRelationDataFilter[]): BaseRelationDataFilter;
/**
* OR逻辑运算
* @param filters 表达式
* @remark 和and方法一样,只是最后是使用OR的逻辑运算符
*/
or?(...filters: IRelationDataFilter[]): BaseRelationDataFilter;
/**
* 添加筛选类型的过滤条件
* @param filters 筛选类型的过滤条件
* @remark 筛选类型:group by/having/limit等
*/
add?(...filters: IRelationDataFilter[]): BaseRelationDataFilter;
}
/**
* AND逻辑运算过滤器
* @author huyl
*/
export declare class AndRelationDataFilter extends BaseRelationDataFilter implements IRelationDataFilter {
getLogicSign?(): string;
}
/**
* OR逻辑运算过滤器
* @author huyl
*/
export declare class OrRelationDataFilter extends BaseRelationDataFilter implements IRelationDataFilter {
getLogicSign?(): string;
}
/**
* SQL语句过滤器
* @author huyl
*/
export declare class SqlRelationDataFilter extends BaseAddon implements IRelationDataFilter {
fieldKey: string;
sql: string;
caption?: string;
/**
* SQL语句过滤器
* @param fieldKey 字段关键字
* @param sql SQL过滤语句
* @param caption 标题
*/
constructor(fieldKey: string, sql: string, caption?: string);
/**
* 获取过滤语句
* @param paramValues 参数
*/
getFilterSql?(paramValues: {} | any): string | undefined;
/**
* 获取参数
* @param paramValues 参数列表
*/
getParameters?(paramValues: {} | any): Array<any> | undefined;
}
/**
* 数据命令
* @author huyl
*/
export declare class RelationDataCommand extends BaseAddon {
id?: string;
name?: string;
primaryKeyFields?: string[];
sql?: string;
/** 表名 */
tableName?: string;
/** 是否为多表查询(默认为多表查询) */
isMultiTableQuery?: boolean;
/** 数据过滤器 */
dataFilter?: BaseRelationDataFilter[];
/** TRUE条件过滤字符串 */
private trueFilterString?;
/** 参数 */
private parameters?;
/**
* 数据命令
* @param id 唯一标识
* @param name 名称
* @param primaryKeyFields 主键
* @param sql SQL语句
*/
constructor(id?: string, name?: string, primaryKeyFields?: string[], sql?: string);
/**
* 获取命令字符串
* @param paramValues 查询参数
*/
getCommandText?(paramValues?: {}): string | undefined;
/**
* 获取过滤参数
*/
getParameters?(): any[] | undefined;
}
/**
* 数据连接对象
* @author huyl
*/
export declare class DatabaseConnection extends BaseAddon {
/**
* 数据库连接配置
* @description 可以是连接的字符串,或者连接的配置对象
*/
dbConnection?: ConnectionOptions;
/** 当前TypeORM的连接对象 */
private _currentConnection?;
/** 数据连接对象管理器 */
private databaseManager;
/** 连接数据库 */
connect?(): Promise<Connection>;
}
/**
* 关系型数据服务
* @author huyl
*/
export declare class RelationDataService extends BaseService implements IDataService {
/** 数据连接信息 */
connection: ConnectionOptions | any;
/** 命令列表 */
commandList: RelationDataCommand[];
/**
* 获取命令信息
* @param commandID 命令ID
*/
getCommandByID?(commandID: string): RelationDataCommand | undefined;
/**
* 查询
* @param params 查询参数
*/
query(command: string, params?: {}): Promise<any>;
}
//# sourceMappingURL=index.d.ts.map