Quellcode durchsuchen

竖井 查询参数特殊处理

lvxianyun vor 3 Jahren
Ursprung
Commit
4ecf269b64

+ 24 - 2
src/main/java/com/persagy/proxy/adm/controller/AdmShaftController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -29,7 +30,10 @@ import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
 import com.persagy.proxy.adm.utils.ObjectNameUtil;
 import com.persagy.proxy.common.entity.RelationDTO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.ws.rs.QueryParam;
 import java.util.*;
@@ -52,6 +56,8 @@ public class AdmShaftController {
     private IAdmBuildingService buildingService;
     @Autowired
     private IAdmSpaceService spaceService;
+    @Autowired
+    private ObjectMapper objectMapper;
 
     /**
      * 统计
@@ -146,7 +152,23 @@ public class AdmShaftController {
     @PostMapping("/query")
     public AdmResponse query(@RequestBody AdmQueryCriteria request) throws Exception {      
         request.setName(AdmShaft.OBJ_TYPE);
-        return service.doQuery(AdmContextUtil.toDmpContext(), request, AdmShaft.class);
+        QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);
+        ObjectNode criteria = queryCriteria.getCriteria();
+        if(!JSONUtil.isNull(criteria)){
+           Map<String, String> criteriaMap = objectMapper.convertValue(criteria, Map.class);
+           if(CollUtil.isNotEmpty(criteriaMap)){
+               ObjectNode criteriaNew = JsonNodeFactory.instance.objectNode();
+               criteriaMap.keySet().stream().forEach(key -> {
+                   if(key.startsWith("infos.")){
+                        criteriaNew.put(key.substring(6), criteriaMap.get(key));
+                   }else{
+                       criteriaNew.put(key, criteriaMap.get(key));
+                   }
+               });
+               queryCriteria.setCriteria(criteriaNew);
+           }
+        }
+        return service.doQuery(AdmContextUtil.toDmpContext(), queryCriteria, AdmShaft.class);
     }
 
     /**