Browse Source

解决查询对象时,扩展字段条件$null查询不到问题

yucheng 3 years ago
parent
commit
85ae3cfc48

+ 0 - 4
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java

@@ -13,12 +13,10 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.common.constant.ValidEnum;
-import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.model.entity.BaseEntity;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.define.entity.ObjectInfoDefine;
-import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
 import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
@@ -34,11 +32,9 @@ import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
 import com.persagy.dmp.rwd.parser.service.InfoDataFactory;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 

+ 4 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/utils/ObjectDigitalCriteriaHelper.java

@@ -145,8 +145,10 @@ public class ObjectDigitalCriteriaHelper {
             ObjectNode obj = (ObjectNode) value;
             if (obj.has("$like")) {
                 format = "#JSON#json_unquote(json_extract({}, '$.{}'))";
-            } else {
-                for (String key : Arrays.asList("$gt", "$lt", "$gte", "$lte", "$ne", "$null")) {
+            } else if (obj.has(QueryOperator.NULL.getIndex())) {
+                format = "#JSON#json_extract({}, '$.{}')";
+            }else {
+                for (String key : Arrays.asList("$gt", "$lt", "$gte", "$lte", "$ne")) {
                     if (obj.has(key)) {
                         // 递归处理
                         return ensureFormatKey(infoCode, obj.get(key));