import { Observable } from 'rxjs'; import { AppRest } from './rest'; import { RestQuery, QueryParams, PageData } from '../restquery/restquery'; import { BaseEntity, ID } from '../model/baseentity'; import { AppConfig } from '../meta/appconfig'; import { MetadataDao } from './metadatadao'; import { CacheService } from './cacheservice'; /** * 应用程序Dao,提供实体后台访问的服务, * 提供了缓存支持,TableDef.cachable 可以设定该实体是否进行缓存 * @export */ export declare class AppDao { appRest: AppRest; metadataDao: MetadataDao; cacheService: CacheService; appConfig: AppConfig; constructor(appRest: AppRest, metadataDao: MetadataDao, cacheService: CacheService, appConfig: AppConfig); /** * 设置APPConfig,一般情况下,AppConfig 会自动注入 * 在某些情况下,需要运行时动态修改APPConfig,可以条用本方法 * @param appConfig */ init(appConfig: AppConfig): void; /** * 获取实体的URL * @param entName 实体名称 */ getEntityUrl(entName: string): string; private getEntityDef; /** * 获取实体URL, * 如果指定了实体对象或者ID,返回:<baseUrl>/<id>, * 如果指定了操作,返回:<baseUrl>/<id>/<op> * @param entityName 实体名称 * @param obj 实体对象或者ID * @param op 实体操作 */ getUrl(entityName: string, obj?: BaseEntity | ID, op?: string): string; /** * 按照ID获取实体,对应后台GET/ID的API, * @template T 实体类型 * @param string entityName 实体名称 * @param ID id 实体ID,'-1'表示获取一个新增未存的实体 * @param params 附加参数,键值对 * @returns Observable 实体对象 * @memberOf AppDao */ get(entityName: string, id: ID, params?: object): Observable; /** * 实体查询,所有对LIST的查询最终都在这里实现 * @param entityName 实体名称 * @param params * @returns PageData */ getQuery(entityName: string, params: RestQuery): Observable>; /** * 实体查询,参数有Map构成,将会重新解析为RestQuery进行查询,相遇getQuery的快速版 * @param entityName 实体名称 * @param params 查询参数,以下键值将被解析为特定参数,其余键值将当做查询条件:
* first: 分页查询指定的开始位置
* rows: 分页查询每页的大小,如果小于等于0,表示不分页
* orderBy: 排序属性,如 deptName asc,deptName desc等等。多个人排序通过逗号进行分隔
* sort: 排序设置数组
* limit: 非分页查询中,返回数量的限制
* aggregate: 对满足条件的数据进行聚合统计
* columns: 查询或者统计的列 * @see RestQuery * @returns PageData */ getEntity(entityName: string, params?: { [prop: string]: any; }): Observable>; /** * 按照指定条件查询实体列表 * 可指定最大的返回行数 * @template T 实体类型 * @param string entityName 实体名称 * @param QueryPrams} [params] 查询参数 * @param number [limit] 返回行数限制 * @returns Observable 实体列表 * @memberOf AppDao */ getList(entityName: string, params?: QueryParams, limit?: number): Observable; /** * 实体分页查询 * @template T 实体类型 * @param string entityName 实体名称 * @param number first 分页起点 * @param number rows 分页页长 * @param QueryParams params 查询参数 * @returns Observable> 分页结果 * @memberOf AppDao */ getPage(entityName: string, first: number, rows: number, params?: QueryParams): Observable>; /** * 保存实体到后台 * @template T 实体类型 * @param string entityName 实体名称 * @param T obj 实体对象 * @returns Observable 保存后的实体对象 * @memberOf AppDao */ save(entityName: string, obj: T): Observable; private saveAll; /** * 删除实体 * @param string entityName 实体名称 * @param (aseEntity | ID)} obj 实体ID或者实体对象 * @returns Observable * @memberOf AppDao */ remove(entityName: string, obj: BaseEntity | ID, params?: object): Observable; /** * 保存二级资源 * @param entityName 实体名称 * @param subRes 子资源,如role/1,可以是抽象资源,如审核:check * @param obj 子资源对象 */ saveSubEntity(entityName: string, subRes: string, obj?: any): Observable; /** * 删除子资源 * @param entityName 实体名称 * @param subRes 子资源,如role/1 * @param obj 子资源对象 */ removeSubEntity(entityName: string, subRes: string, obj: BaseEntity | ID): Observable; /** * 获取子资源列表 * @param entityName 实体名称 * @param subRes 子资源,如 1/role */ getSubEntity(entityName: string, subRes: string): Observable; } export interface FileInfo { fileName: string; size: number; blob: Blob; } export interface ApiStatus { status: number; msg: string; data: any; } export interface LoginResult { orgcode: string; user: string; token: string; }