From f055d5e3a122afd9557704f4e65339a78a6b8d87 Mon Sep 17 00:00:00 2001 From: wangqing Date: Thu, 10 Jun 2021 16:31:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/UserProjectController.java | 2 +- .../request/QueryProjectResultRequest.java | 2 ++ .../impl/UserProjectResultServiceImpl.java | 18 +++++++++++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java index 6766b87..4b4c70c 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java @@ -277,7 +277,7 @@ public class UserProjectController { */ private UserProjectItemEntity formatProjectItem(OperateProjectItemRequest request) { //把Map转换成Bean 在转换成Map 去除不在bean字段列表的多字段 - Object bean = BeanUtil.fillBeanWithMap(request.getExpand(), request.getType().getExpandClass(),false); + Object bean = BeanUtil.toBeanIgnoreCase(request.getExpand(), request.getType().getExpandClass(),false); UserProjectItemEntity entity = new UserProjectItemEntity(); BeanUtil.copyProperties(request, entity, UserProjectItemEntity.Fields.defaultValue); entity.setExpand(BeanUtil.beanToMap(bean)); diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/request/QueryProjectResultRequest.java b/tduck-project/src/main/java/com/tduck/cloud/project/request/QueryProjectResultRequest.java index d3ceeab..952499d 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/request/QueryProjectResultRequest.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/request/QueryProjectResultRequest.java @@ -6,6 +6,7 @@ import com.tduck.cloud.common.entity.PageRequest; import com.tduck.cloud.common.util.JsonUtils; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.Getter; import lombok.NoArgsConstructor; import lombok.experimental.FieldNameConstants; import org.springframework.format.annotation.DateTimeFormat; @@ -60,6 +61,7 @@ public class QueryProjectResultRequest extends PageRequest { return null; } + @Getter @AllArgsConstructor public enum QueryComparison { EQ("eq", "="), diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java index b238db0..89808d3 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java +++ b/tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.*; import cn.hutool.http.HttpUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -73,12 +74,23 @@ public class UserProjectResultServiceImpl extends ServiceImpllambdaQuery() + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery() .eq(UserProjectResultEntity::getProjectKey, request.getProjectKey()) .le(ObjectUtil.isNotNull(request.getEndDateTime()), UserProjectResultEntity::getCreateTime, request.getEndDateTime()) .ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserProjectResultEntity::getCreateTime, request.getBeginDateTime()) - - .orderByDesc(BaseEntity::getCreateTime)); + .orderByDesc(BaseEntity::getCreateTime); + if (ObjectUtil.isNotNull(request.getExtParamsMap())) { + request.getExtParamsMap().keySet().forEach(item -> { + String comparison = MapUtil.getStr(request.getExtComparisonsMap(), item); + QueryProjectResultRequest.QueryComparison queryComparison = QueryProjectResultRequest.QueryComparison.get(comparison); + Object value = request.getExtParamsMap().get(item); + if (queryComparison == QueryProjectResultRequest.QueryComparison.LIKE) { + value = "'%" + value + "%'"; + } + lambdaQueryWrapper.apply(StrUtil.format("original_data ->'$.{}' {} {} ", item, queryComparison.getKey(), value)); + }); + } + return this.page(request.toMybatisPage(), lambdaQueryWrapper); } @Override