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 |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/app/business/services/http/device.service.ts b/src/app/business/services/http/device.service.ts
index 8bf7bfd..83c70d2 100644
--- a/src/app/business/services/http/device.service.ts
+++ b/src/app/business/services/http/device.service.ts
@@ -3,7 +3,7 @@
 import { Injectable } from '@angular/core';
 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()
@@ -17,11 +17,31 @@
   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();
   }

--
Gitblit v1.8.0