Procházet zdrojové kódy

wrapper转换增加class参数。用于解决无法通过反射从wrapper中获取泛型类的问题。

yucheng před 3 roky
rodič
revize
a0e0e538c1

+ 1 - 2
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/dic/controller/DictDataController.java

@@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
-import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -59,7 +58,7 @@ public class DictDataController {
             }
         }
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, DictData.class);
         Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
         return ResultHelper.multi(page.getRecords(), page.getTotal());
     }

+ 1 - 1
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/dic/controller/DictDataMapController.java

@@ -45,7 +45,7 @@ public class DictDataMapController {
         }
         QueryWrapper<DictDataMap> wrapper = new QueryWrapper<>();
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, DictDataMap.class);
         Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
         return ResultHelper.multi(page.getRecords(), page.getTotal());
     }

+ 1 - 1
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/dic/controller/DictTypeController.java

@@ -45,7 +45,7 @@ public class DictTypeController {
         }
         QueryWrapper<DictType> wrapper = new QueryWrapper<>();
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, DictType.class);
         Page page = service.queryByCondition(QueryCriteriaHelper.toPage(criteria), wrapper);
         return ResultHelper.multi(page.getRecords(), page.getTotal());
     }

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/GraphDefineController.java

@@ -39,7 +39,7 @@ public class GraphDefineController {
         }
         QueryWrapper<GraphDefine> wrapper = new QueryWrapper<>();
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, GraphDefine.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         if(criteria.isOnlyCount()) {
             Integer total = service.queryCount(wrapper);

+ 1 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/ObjectInfoController.java

@@ -13,7 +13,6 @@ 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.mybatis.utils.ConditionUtil;
-import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
 import com.persagy.dmp.rwd.define.service.IObjectInfoService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,7 +45,7 @@ public class ObjectInfoController {
         // 添加所属项目条件
         ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, ObjectInfoDefine.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         // 没有排序条件时,按默认条件排序
         if(CollUtil.isEmpty(page.getOrders())) {

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/ObjectTypeController.java

@@ -54,7 +54,7 @@ public class ObjectTypeController {
         // 添加所属项目条件
         ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, ObjectTypeDefine.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         if(criteria.isOnlyCount()) {
             Integer total = service.queryCount(wrapper);

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/RelationDefineController.java

@@ -41,7 +41,7 @@ public class RelationDefineController {
         // 添加所属项目条件
         // ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, RelationDefine.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         if(criteria.isOnlyCount()) {
             Integer total = service.queryCount(wrapper);

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -61,7 +61,7 @@ public class ObjectDigitalController{
         // 处理扩展条件
         ObjectDigitalCriteriaHelper.ensureExtraCond(criteria.getCriteria());
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, ObjectDigital.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         if(criteria.isOnlyCount()) {
             Integer total = service.queryCount(wrapper);

+ 2 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectRelationController.java

@@ -49,7 +49,7 @@ public class ObjectRelationController {
         // 添加所属项目条件
         ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, ObjectRelation.class);
         Page page = QueryCriteriaHelper.toPage(criteria);
         if(criteria.isOnlyCount()) {
             Integer total = service.queryCount(wrapper);
@@ -126,7 +126,7 @@ public class ObjectRelationController {
         // 添加所属项目条件
         ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper, criteria);
+        QueryCriteriaHelper.toWrapper(wrapper, criteria, ObjectRelation.class);
         List<ObjectRelation> delList = service.delete(wrapper);
         return ResultHelper.multi(delList,delList.size());
     }

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/iot/service/impl/CurrentIotServiceImpl.java

@@ -139,7 +139,7 @@ public class CurrentIotServiceImpl implements CurrentIotService {
         // 添加所属项目条件
         ConditionUtil.ensureProjectCriteria(wrapper);
         // 转换查询条件
-        QueryCriteriaHelper.toWrapper(wrapper,queryCriteria);
+        QueryCriteriaHelper.toWrapper(wrapper,queryCriteria, ObjectDigital.class);
         List<ObjectDigital> data = objectDigitalService.queryByCondition(wrapper);
 
         if(data == null || data.size()<=0){

+ 5 - 4
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/utils/QueryCriteriaHelper.java

@@ -51,13 +51,15 @@ public class QueryCriteriaHelper {
     /**
      * 转换为查询条件
      * @param wrapper
+     * @param criteria
+     * @param clazz 用于判定属性是否存在. - 通过反射无法从wrapper中获取到泛型class,还是显式传参吧
      */
-    public static <T extends BaseEntity> void toWrapper(QueryWrapper<T> wrapper, QueryCriteria criteria) {
+    public static <T extends BaseEntity> void toWrapper(QueryWrapper<T> wrapper, QueryCriteria criteria, Class<T> clazz) {
         if(criteria == null) {
             return;
         }
         toWrapper(wrapper, criteria.getCriteria());
-        ensureOrders(wrapper, criteria.getOrders());
+        ensureOrders(wrapper, criteria.getOrders(), clazz);
     }
 
     /**
@@ -193,11 +195,10 @@ public class QueryCriteriaHelper {
      * @param orders
      * @param <T>
      */
-    public static <T extends BaseEntity> void ensureOrders(QueryWrapper<T> wrapper, List<OrderItem> orders) {
+    public static <T extends BaseEntity> void ensureOrders(QueryWrapper<T> wrapper, List<OrderItem> orders, Class<T> clazz) {
         if(CollUtil.isEmpty(orders)) {
             return;
         }
-        Class clazz = wrapper.getEntity().getClass();
         for(OrderItem order:orders) {
             // 实体没有属性,不参与排序(扩展属性中的也不排序)
             if(!ReflectUtil.hasField(clazz, order.getColumn())) {