{"remainingRequest":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\artfess-module\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\artfess-module\\src\\api\\mock-util.js","dependencies":[{"path":"D:\\jenkins\\workspace\\artfess-module\\src\\api\\mock-util.js","mtime":1675232038481},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _toConsumableArray from \"D:/jenkins/workspace/artfess-module/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nvar mockUtil = {\n  // 通用分页查询方法\n  query: function query(data, param) {\n    var _this = this;\n\n    data = data || [];\n    param = param || {};\n\n    var tmpAry = _toConsumableArray(data);\n\n    if (param.querys && param.querys.length > 0) {\n      var group = param.querys.groupByKey(\"group\"); // 每一个分组所对应的查询结果集(二维数组)\n\n      var ary4group = [];\n      Object.keys(group).forEach(function (g) {\n        var tmp = _toConsumableArray(data);\n\n        var qs = group[g]; // 同一组查询条件只取第一个条件中的relation作为当前组的组合关系\n\n        var relation = qs[0][\"relation\"]; // AND类型的组合，每一个查询条件在上一次过滤的结果集中再次过滤\n\n        if (relation == 'AND') {\n          qs.forEach(function (q) {\n            tmp = _this._query4operation(q, tmp);\n          });\n          ary4group.push(tmp);\n        } // OR类型的组合，每一个查询条件得到单独的过滤结果集，最后将结果集合并去重\n        else if (relation == 'OR') {\n            var ary4query = [];\n            qs.forEach(function (q) {\n              var r = _this._query4operation(q, tmp); // 合并\n\n\n              ary4query = ary4query.concat(r);\n            }); // 去重\n\n            ary4query.unique();\n            ary4group.push(ary4query);\n          } else {\n            throw \"\\u5F53\\u524D\\u4F20\\u5165\\u7684relation\\u662F\".concat(relation, \"\\uFF0C\\u53EA\\u80FD\\u662F'AND'\\u6216'OR'\");\n          }\n      }); // 取多个分组的查询结果集的交集\n\n      tmpAry = this._mixArray(ary4group);\n    } // 排序\n\n\n    if (param.sorter) {\n      param.sorter.forEach(function (sort) {\n        var directDic = ['ASC', 'DESC'];\n\n        if (directDic.indexOf(sort.direction) == -1) {\n          throw \"\\u4E0D\\u652F\\u6301\\u6392\\u5E8F\\u65B9\\u5411\".concat(sort.direction, \"\\uFF0C\\u4EC5\\u652F\\u6301\").concat(directDic);\n        }\n\n        var isASC = sort.direction == 'ASC';\n        tmpAry.sort(function (pre, after) {\n          return pre[sort.property] > after[sort.property] ? isASC ? 1 : -1 : isASC ? -1 : 1;\n        });\n      });\n    } // 分页\n\n\n    if (param.pageBean) {\n      var _rows = tmpAry.slice((param.pageBean.page - 1) * param.pageBean.pageSize, param.pageBean.page * param.pageBean.pageSize);\n\n      return {\n        rows: _rows,\n        page: param.pageBean.page,\n        pageSize: param.pageBean.pageSize,\n        total: tmpAry.length\n      };\n    } else {\n      return {\n        rows: rows\n      };\n    }\n  },\n  // 根据不同的查询条件进行过滤\n  _query4operation: function _query4operation(query, ary) {\n    var operation = query.operation;\n    var permitOperations = ['EQUAL', 'LIKE', 'IN'];\n\n    if (permitOperations.indexOf(operation) == -1) {\n      throw \"\\u67E5\\u8BE2\\u6761\\u4EF6\\u4E0D\\u652F\\u6301\".concat(operation, \"\\uFF0C\\u4EC5\\u652F\\u6301\").concat(permitOperations);\n    }\n\n    var result = [];\n\n    switch (operation) {\n      case 'EQUAL':\n        result = ary.filter(function (m) {\n          return query.value === m[query.property];\n        });\n        break;\n\n      case 'LIKE':\n        result = ary.filter(function (m) {\n          return m[query.property].indexOf(query.value) > -1;\n        });\n        break;\n\n      case 'IN':\n        result = ary.filter(function (m) {\n          return query.value.indexOf(m[query.property]) > -1;\n        });\n        break;\n    }\n\n    return result;\n  },\n  // 多个数组之间取交集\n  _mixArray: function _mixArray(ary4group) {\n    ary4group = ary4group || [];\n    var result = [];\n    ary4group.forEach(function (ary, index) {\n      if (index == 0) {\n        result = _toConsumableArray(ary);\n      } else {\n        var set1 = new Set(result),\n            set2 = new Set(ary);\n        result = _toConsumableArray(new Set(_toConsumableArray(set1).filter(function (x) {\n          return set2.has(x);\n        })));\n      }\n    });\n    return result;\n  }\n};\nexport default mockUtil;",null]}