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