From 7ca521e4267b987270f6ccbb9a6c076aeb467d96 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 04 Jul 2018 17:11:33 +0800 Subject: [PATCH] 设备,监控站 管理功能增强 --- src/app/business/services/http/device.service.ts | 56 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 9 deletions(-) diff --git a/src/app/business/services/http/device.service.ts b/src/app/business/services/http/device.service.ts index 9771877..83c70d2 100644 --- a/src/app/business/services/http/device.service.ts +++ b/src/app/business/services/http/device.service.ts @@ -1,9 +1,9 @@ import { _HttpClient } from '@delon/theme'; import { environment } from 'environments/environment'; import { Injectable } from '@angular/core'; -import { ResultBean } from '@business/entity/grid'; +import { ResultBean, PageBean } from '@business/entity/grid'; import { Observable } from 'rxjs/Observable'; -import { ExampleService } from '@business/services/util/example.service'; +import { ExampleService, Criteria } from '@business/services/util/example.service'; import { Device } from '@business/entity/data'; @Injectable() @@ -11,16 +11,37 @@ private urls = { list: environment.SERVER_BASH_URL + 'device/page-list', save: environment.SERVER_BASH_URL + 'device/add-or-modify', - delete: environment.SERVER_BASH_URL + 'device/delete-by-ids' + delete: environment.SERVER_BASH_URL + 'device/delete-by-ids', + count: environment.SERVER_BASH_URL + 'device/count-by-example' }; - public getListUrl (){ + public getListUrl () { return this.urls.list; } - public getSqlParams(queryText:string){ + public getSqlParams(queryMap: {[key: string]: number|string}) { const example = new ExampleService(); - if (queryText != null && queryText !== '') { - example.or().andLike({name: 'name', value: '%' + queryText + '%'}); - example.or().andLike({name: 'mac', value: '%' + queryText + '%'}); + const orgId = !!queryMap.orgId ? queryMap.orgId : null; + const mpointId = !!queryMap.mpointId ? queryMap.mpointId : null; + const devMacOrName = !!queryMap.devMacOrName && !!(<string>queryMap.devMacOrName).trim() ? queryMap.devMacOrName : null; + let criWithMac: Criteria = null; + let criWithName: Criteria = null; + if (!!devMacOrName) { + criWithName = example.or().andLike({name: 'name', value: '%' + devMacOrName + '%'}); + criWithMac = example.or().andLike({name: 'mac', value: '%' + devMacOrName + '%'}); + } + if (!!mpointId) { + if (!!devMacOrName) { + criWithName.andEqualTo({name: 'monitorPointId', value: mpointId}); + criWithMac.andEqualTo({name: 'monitorPointId', value: mpointId}); + }else { + example.or().andEqualTo({name: 'monitorPointId', value: mpointId}); + } + } else if (!!orgId) { + if (!!devMacOrName) { + criWithName.andCondition(`monitor_point_id in (select id from monitor_point where organization_id = ${orgId})`); + criWithMac.andCondition(`monitor_point_id in (select id from monitor_point where organization_id = ${orgId})`); + }else { + example.or().andCondition(`monitor_point_id in (select id from monitor_point where organization_id = ${orgId})`); + } } return example.getSqlParam(); } @@ -28,7 +49,24 @@ delete(...ids: number[]): Observable< ResultBean<any> > { return this.http.post(this.urls.delete, ids); } - public save(data:Device): Observable<any> { + public save(data: Device): Observable<any> { return this.http.post(this.urls.save, data); } + public countByExample(example: ExampleService): Observable<ResultBean<number>> { + return this.http.get(this.urls.count, { queryParams: example.getSqlParam()}); + } + public getPageByExample(page: PageBean, example: ExampleService): Observable<PageBean> { + let orderByClause = ''; + const _queryParams = !!example ? example.getSqlParam() : ''; + if (!!page) { + if ( page.getOrderByClause != null && page.getOrderByClause instanceof Function) { + orderByClause = page.getOrderByClause(); + } + } else { + page = {pageIndex: 0, pageSize: 20}; + } + const param: PageBean = {pageSize: page.pageSize, pageIndex: page.pageIndex, + queryParams: _queryParams, orderByClause: orderByClause}; + return this.http.get(this.urls.list, param); + } } -- Gitblit v1.8.0