lrf vor 8 Monaten
Ursprung
Commit
4aaacb2ccf
2 geänderte Dateien mit 15 neuen und 2 gelöschten Zeilen
  1. 14 2
      src/frame/BaseServiceV2.ts
  2. 1 0
      src/service/platform/demand.service.ts

+ 14 - 2
src/frame/BaseServiceV2.ts

@@ -100,6 +100,7 @@ export abstract class BaseServiceV2 {
     for (let i = 0; i < searchColumns.length; i++) {
       const key = searchColumns[i];
       const value = query[key];
+      if (!value) continue;
       /**该字段的查询方式 */
       const opera = get(operas, key);
       /**builder的使用函数名 */
@@ -172,8 +173,19 @@ export abstract class BaseServiceV2 {
           params = { [`${valueStr}`]: value };
           break;
         case this.Opera.Json:
-          str = `JSONB_EXISTS("${key}", :${valueStr})`;
-          params = { [`${valueStr}`]: value };
+          let valueArr = [];
+          let strArr = [];
+          params = {};
+          if (isArray(value)) valueArr = value;
+          else valueArr = [value];
+          for (let vi = 0; vi < valueArr.length; vi++) {
+            const v = valueArr[vi];
+            const mvalKey = `${valueStr}${vi}`;
+            const mstr = `JSONB_EXISTS("${key}", :${mvalKey})`;
+            strArr.push(mstr);
+            params[mvalKey] = v;
+          }
+          str = `(${strArr.join(' OR ')})`;
           break;
         case this.Opera.Equal:
         default:

+ 1 - 0
src/service/platform/demand.service.ts

@@ -17,6 +17,7 @@ export class DemandService extends BaseServiceV2 {
   getQueryColumnsOpera() {
     const obj = {
       industry: this.Opera.In,
+      area: this.Opera.Json,
     };
     return obj;
   }