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 | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/src/app/business/services/http/device.service.ts b/src/app/business/services/http/device.service.ts
index 750e277..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 () {
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();
}
@@ -31,4 +52,21 @@
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