fengxiang
2018-07-04 7ca521e4267b987270f6ccbb9a6c076aeb467d96
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();
  }