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