wujiefeng 1 år sedan
förälder
incheckning
44d5aee7f0
18 ändrade filer med 274 tillägg och 49 borttagningar
  1. 4 4
      FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/AddDictionaryParam.java
  2. 26 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DeepQueryParam.java
  3. 16 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DictionaryItemDeepParam.java
  4. 3 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DictionaryItemQueryParam.java
  5. 20 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/ListDictionaryParam.java
  6. 11 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/pay/TotalStatisticsModel.java
  7. 6 6
      FullCardServer/pom.xml
  8. 11 11
      FullCardServer/src/main/java/com/zhongshu/card/server/core/config/PaymentServerConfig.java
  9. 13 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/dictionary/DictionaryController.java
  10. 3 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/DictionaryDao.java
  11. 6 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/DictionaryItemDao.java
  12. 6 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/extend/DictionaryItemDaoExtend.java
  13. 58 5
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/impl/DictionaryItemDaoImpl.java
  14. 1 8
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/pay/extend/BalanceRechargeOrderDaoExtend.java
  15. 1 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/pay/impl/BalanceRechargeOrderDaoImpl.java
  16. 2 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/wallet/Wallet.java
  17. 1 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/model/dictionary/DItemChildrenResult.java
  18. 86 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/dictionary/DictionaryService.java

+ 4 - 4
FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/AddDictionaryParam.java

@@ -13,9 +13,9 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 public class AddDictionaryParam {
 
-    @Schema(name = "oid", description = "项目oid", example = "665fc0ef9083d203896d3549")
-    @NotNull(message = "项目oid不能为null")
-    @NotEmpty(message = "项目oid不能为空")
+    @Schema(name = "projectId", description = "项目oid", example = "665fc0ef9083d203896d3549")
+    @NotNull(message = "projectId不能为null")
+    @NotEmpty(message = "projectId不能为空")
     private String projectId;
 
     @Schema(name = "key", description = "常量", example = "class")
@@ -34,6 +34,6 @@ public class AddDictionaryParam {
 //    @Schema(name = "type", description = "类型", example = "Customize")
 //    private DictionaryType type;
 
-    @Schema(name = "是否禁用", description = "状态", example = "false")
+    @Schema(name = "disabled", description = "状态", example = "false")
     private boolean disabled;
 }

+ 26 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DeepQueryParam.java

@@ -0,0 +1,26 @@
+package com.zhongshu.card.client.model.dictionary;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DeepQueryParam {
+
+    private boolean deep;
+
+    private String projectId;
+
+    private List<KeyFilter> keyFilters;
+
+    @Data
+    public static class KeyFilter{
+
+        @Schema(description = "字典编码")
+        private String dictionaryKey;
+
+        @Schema(description = "字典编码/项编码")
+        private List<String> keys;
+    }
+}

+ 16 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DictionaryItemDeepParam.java

@@ -0,0 +1,16 @@
+package com.zhongshu.card.client.model.dictionary;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DictionaryItemDeepParam {
+
+    @Schema(description = "字典编码")
+    private List<String> keys;
+
+    @Schema(description = "是否递归")
+    private boolean recursion;
+}

+ 3 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/DictionaryItemQueryParam.java

@@ -11,4 +11,7 @@ public class DictionaryItemQueryParam {
 
     @Schema(name = "dictionaryId", description = "字典id")
     private String dictionaryId;
+
+    @Schema(name = "parentId", description = "父级id")
+    private String parentId;
 }

+ 20 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/dictionary/ListDictionaryParam.java

@@ -0,0 +1,20 @@
+package com.zhongshu.card.client.model.dictionary;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ListDictionaryParam {
+
+    @Schema(description = "项目id")
+    private String projectId;
+
+    @Schema(description = "字典编码")
+    private String dictionaryKey;
+
+    @Schema(description = "字典编码/项编码")
+    private List<String> keys;
+
+}

+ 11 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/pay/TotalStatisticsModel.java

@@ -0,0 +1,11 @@
+package com.zhongshu.card.client.model.pay;
+
+import lombok.Data;
+
+@Data
+public class TotalStatisticsModel {
+
+    private String id;
+
+    private Integer totalAmount;
+}

+ 6 - 6
FullCardServer/pom.xml

@@ -43,12 +43,12 @@
             <version>${project.version}</version>
         </dependency>
 
-        <!--   支付中心     -->
-        <dependency>
-            <groupId>com.github.microservice.payment</groupId>
-            <artifactId>PaymentClient</artifactId>
-            <version>${project.version}</version>
-        </dependency>
+<!--        &lt;!&ndash;   支付中心     &ndash;&gt;-->
+<!--        <dependency>-->
+<!--            <groupId>com.github.microservice.payment</groupId>-->
+<!--            <artifactId>PaymentClient</artifactId>-->
+<!--            <version>${project.version}</version>-->
+<!--        </dependency>-->
 
 <!--         支付中心客户端-->
         <dependency>

+ 11 - 11
FullCardServer/src/main/java/com/zhongshu/card/server/core/config/PaymentServerConfig.java

@@ -1,11 +1,11 @@
-package com.zhongshu.card.server.core.config;
-
-import com.github.microservice.auth.config.AuthClientConfiguration;
-import com.zhongshu.payment.client.config.PaymentClientConfiguration;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import(PaymentClientConfiguration.class)
-public class PaymentServerConfig {
-}
+//package com.zhongshu.card.server.core.config;
+//
+//import com.github.microservice.auth.config.AuthClientConfiguration;
+//import com.zhongshu.payment.client.config.PaymentClientConfiguration;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.context.annotation.Import;
+//
+//@Configuration
+//@Import(PaymentClientConfiguration.class)
+//public class PaymentServerConfig {
+//}

+ 13 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/dictionary/DictionaryController.java

@@ -60,7 +60,7 @@ public class DictionaryController {
         return dictionaryService.updateItem(param);
     }
 
-    @Operation(summary = "删除字典", description = "修改字典")
+    @Operation(summary = "删除项", description = "删除项")
     @RequestMapping(value = "deleteItem", method = RequestMethod.GET)
     public ResultContent deleteItem(@RequestParam("id") String id){
         return dictionaryService.deleteItem(id);
@@ -72,4 +72,16 @@ public class DictionaryController {
                            @Parameter(required = true) DictionaryItemQueryParam param){
         return dictionaryService.pageItem(pageable, param);
     }
+
+    @Operation(summary = "根据编码获取字典", description = "根据编码获取字典")
+    @RequestMapping(value = "listDictionary", method = RequestMethod.POST)
+    public ResultContent listDictionary(@RequestBody ListDictionaryParam param){
+        return dictionaryService.listDictionary(param);
+    }
+
+    @Operation(summary = "根据编码获取项", description = "根据编码获取字典")
+    @RequestMapping(value = "listItem", method = RequestMethod.POST)
+    public ResultContent listItem(@RequestBody ListDictionaryParam param){
+        return dictionaryService.listItem(param);
+    }
 }

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/DictionaryDao.java

@@ -4,10 +4,13 @@ import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.zhongshu.card.server.core.dao.dictionary.extend.DictionaryDaoExtend;
 import com.zhongshu.card.server.core.domain.dictionary.Dictionary;
 
+import java.util.List;
+
 public interface DictionaryDao extends MongoDao<Dictionary>, DictionaryDaoExtend {
 
     Dictionary findTopById(String id);
 
     Dictionary findTopByProjectIdAndKey(String projectId, String key);
 
+    List<Dictionary> findTopByProjectIdAndKeyIn(String projectId, List<String> keys);
 }

+ 6 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/DictionaryItemDao.java

@@ -5,9 +5,15 @@ import com.zhongshu.card.server.core.dao.dictionary.extend.DictionaryDaoExtend;
 import com.zhongshu.card.server.core.dao.dictionary.extend.DictionaryItemDaoExtend;
 import com.zhongshu.card.server.core.domain.dictionary.DictionaryItem;
 
+import java.util.List;
+
 public interface DictionaryItemDao extends MongoDao<DictionaryItem>, DictionaryItemDaoExtend {
 
     DictionaryItem findTopById(String id);
 
     DictionaryItem findTopByDictionary_IdAndKey(String dictionaryId, String key);
+
+    List<DictionaryItem> findTopByDictionary_IdAndKeyIn(String dictionaryId, List<String> keys);
+
+    List<DictionaryItem> findByDictionary_Id(String dictionaryId);
 }

+ 6 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/extend/DictionaryItemDaoExtend.java

@@ -2,10 +2,15 @@ package com.zhongshu.card.server.core.dao.dictionary.extend;
 
 import com.zhongshu.card.client.model.dictionary.DictionaryItemModel;
 import com.zhongshu.card.server.core.domain.dictionary.DictionaryItem;
+import com.zhongshu.card.server.core.model.dictionary.DItemChildrenResult;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
+import java.util.List;
+
 public interface DictionaryItemDaoExtend {
 
-    Page<DictionaryItem> page(Pageable pageable, String dictionaryId, String name);
+    Page<DictionaryItem> page(Pageable pageable, String dictionaryId, String name, String parentId);
+
+    List<DItemChildrenResult> deepAggregate(String dictionaryId, List<String> keys);
 }

+ 58 - 5
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/dictionary/impl/DictionaryItemDaoImpl.java

@@ -1,17 +1,27 @@
 package com.zhongshu.card.server.core.dao.dictionary.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
+import com.mongodb.client.MongoCollection;
 import com.zhongshu.card.server.core.dao.dictionary.extend.DictionaryItemDaoExtend;
 import com.zhongshu.card.server.core.domain.dictionary.DictionaryItem;
+import com.zhongshu.card.server.core.model.dictionary.DItemChildrenResult;
 import org.apache.commons.lang3.StringUtils;
+import org.bson.Document;
+import org.bson.conversions.Bson;
+import org.bson.types.ObjectId;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 
 import javax.imageio.metadata.IIOMetadataFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
 import java.util.regex.Pattern;
 
 public class DictionaryItemDaoImpl implements DictionaryItemDaoExtend {
@@ -19,22 +29,65 @@ public class DictionaryItemDaoImpl implements DictionaryItemDaoExtend {
     @Autowired
     DBHelper dbHelper;
 
+    @Autowired
+    MongoTemplate mongoTemplate;
+
     @Override
-    public Page<DictionaryItem> page(Pageable pageable, String dictionaryId, String name) {
+    public Page<DictionaryItem> page(Pageable pageable, String dictionaryId, String name, String parentId) {
         Criteria criteria = new Criteria();
 
-        if (StringUtils.isNotBlank(dictionaryId)) {
-            criteria.and("dictionary._id").is(dictionaryId);
-        }
-
         if (StringUtils.isNotBlank(name)) {
             Pattern pattern = Pattern.compile("^.*" + name + ".*$");
             criteria.orOperator(Criteria.where("name").regex(pattern), Criteria.where("key").regex(pattern));
         }
 
+        if (StringUtils.isBlank(parentId)){
+            parentId = dictionaryId;
+        }
+        criteria.and("parentId").is(parentId);
+        criteria.and("dictionary._id").is(dictionaryId);
         Query query = Query.query(criteria);
         query.with(Sort.by(Sort.Order.asc("sort"), Sort.Order.desc("createTime")));
 
         return dbHelper.pages(query, pageable, DictionaryItem.class);
     }
+
+    @Override
+    public List<DItemChildrenResult> deepAggregate(String dictionaryId, List<String> keys) {
+
+        List<Document> pipeline =  new ArrayList<>() {{
+                add(new Document()
+                        .append("$match", new Document()
+                                .append("key", new Document()
+                                        .append("$in", keys
+                                        )
+                                )
+                                .append("dictionary", new Document()
+                                        .append("$ref", "dictionary")
+                                        .append("$id", new ObjectId(dictionaryId))
+                                )
+                        ));
+        }};
+
+        pipeline.add( new Document()
+                .append("$graphLookup", new Document()
+                        .append("from", "dictionaryItem")
+                        .append("startWith", "$idString")
+                        .append("connectFromField", "idString")
+                        .append("connectToField", "parentId")
+                        .append("as", "children")
+                        .append("depthField", "level")
+                ));
+        final MongoCollection<Document> collection = this.mongoTemplate.getCollection(this.mongoTemplate.getCollectionName(DictionaryItem.class));
+
+        List<DItemChildrenResult> ret = new ArrayList<>();
+
+
+        collection.aggregate(pipeline).allowDiskUse(false).forEach((document)->{
+            Optional.ofNullable(document).ifPresent((it) -> {
+                ret.add(this.mongoTemplate.getConverter().read(DItemChildrenResult.class, it));
+            });
+        });
+        return ret;
+    }
 }

+ 1 - 8
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/pay/extend/BalanceRechargeOrderDaoExtend.java

@@ -1,15 +1,8 @@
 package com.zhongshu.card.server.core.dao.pay.extend;
 
-import ch.qos.logback.core.util.StringUtil;
-import com.github.microservice.types.OrderState;
-import com.zhongshu.card.client.model.pay.QueryRechargeParam;
+
 import com.zhongshu.card.client.type.payAccount.RechargeOrderStatus;
 import com.zhongshu.card.server.core.domain.pay.BalanceRechargeOrder;
-import com.zhongshu.payment.client.model.TotalStatisticsModel;
-import com.zhongshu.payment.client.types.TradeType;
-import org.springframework.data.mongodb.core.aggregation.Aggregation;
-import org.springframework.data.mongodb.core.aggregation.AggregationResults;
-import org.springframework.data.mongodb.core.query.Criteria;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/pay/impl/BalanceRechargeOrderDaoImpl.java

@@ -3,14 +3,12 @@ package com.zhongshu.card.server.core.dao.pay.impl;
 import ch.qos.logback.core.util.StringUtil;
 import com.github.microservice.types.OrderState;
 import com.zhongshu.card.client.model.pay.QueryRechargeParam;
+import com.zhongshu.card.client.model.pay.TotalStatisticsModel;
 import com.zhongshu.card.client.type.payAccount.RechargeOrderStatus;
 import com.zhongshu.card.client.utils.DateUtils;
 import com.zhongshu.card.server.core.dao.pay.extend.BalanceRechargeOrderDaoExtend;
 import com.zhongshu.card.server.core.domain.pay.BalanceRechargeOrder;
 import com.zhongshu.card.server.core.util.CommonUtil;
-import com.zhongshu.payment.client.model.TotalStatisticsModel;
-import com.zhongshu.payment.client.types.TradeType;
-import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;

+ 2 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/wallet/Wallet.java

@@ -3,7 +3,6 @@ package com.zhongshu.card.server.core.domain.wallet;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
-import com.zhongshu.payment.client.types.WalletType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -34,8 +33,8 @@ public class Wallet extends SuperMain {
     @DBRef(lazy = true)
     private UserAccount userAccount;
 
-    @Schema(description = "类型")
-    private WalletType walletType;
+//    @Schema(description = "类型")
+//    private WalletType walletType;
 
     @Schema(description = "支付账户-对应支付中心")
     private String payAccount;

+ 1 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/dictionary/DItemChildrenResult.java

@@ -18,11 +18,9 @@ public class DItemChildrenResult {
     private Dictionary dictionary;
 
     //父级id
-    @Indexed
     private String parentId;
 
     //唯一值
-    @Indexed
     private String key;
 
     //字典项
@@ -32,14 +30,13 @@ public class DItemChildrenResult {
     private DictionaryType type;
 
     //排序
-    @Indexed
     private Integer sort;
 
     //禁用状态
-    @Indexed
     private boolean disable;
 
     private Long level;
 
     private List<DItemChildrenResult> children;
+
 }

+ 86 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/dictionary/DictionaryService.java

@@ -9,6 +9,7 @@ import com.zhongshu.card.server.core.dao.dictionary.DictionaryDao;
 import com.zhongshu.card.server.core.dao.dictionary.DictionaryItemDao;
 import com.zhongshu.card.server.core.domain.dictionary.Dictionary;
 import com.zhongshu.card.server.core.domain.dictionary.DictionaryItem;
+import com.zhongshu.card.server.core.model.dictionary.DItemChildrenResult;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import org.apache.commons.lang3.StringUtils;
 import org.bson.types.ObjectId;
@@ -18,6 +19,9 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Service
 public class DictionaryService extends SuperService {
 
@@ -106,7 +110,7 @@ public class DictionaryService extends SuperService {
         };
 
         Page<Dictionary> page = dictionaryDao.page(pageable, param.getProjectId(), param.getName(), param.getType());
-        return PageEntityUtil.concurrent2PageModel(page, this::toModel);
+        return ResultContent.buildContent(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
 
     private DictionaryModel toModel(Dictionary dictionary){
@@ -134,6 +138,9 @@ public class DictionaryService extends SuperService {
         dictionaryItem.setId(id);
         dictionaryItem.setIdString(id);
         dictionaryItem.setCreateTime(System.currentTimeMillis());
+        if (StringUtils.isBlank(param.getKey())){
+            dictionaryItem.setParentId(param.getDictionaryId());
+        }
         dictionaryItemDao.save(dictionaryItem);
         return ResultContent.buildSuccess();
     }
@@ -182,8 +189,8 @@ public class DictionaryService extends SuperService {
     }
 
     public Object pageItem(Pageable pageable, DictionaryItemQueryParam param){
-        Page<DictionaryItem> page = dictionaryItemDao.page(pageable, param.getDictionaryId(), param.getName());
-        return PageEntityUtil.concurrent2PageModel(page, this::toItemModel);
+        Page<DictionaryItem> page = dictionaryItemDao.page(pageable, param.getDictionaryId(), param.getName(), param.getParentId());
+        return ResultContent.buildContent(PageEntityUtil.concurrent2PageModel(page, this::toItemModel));
     }
 
     private DictionaryItemModel toItemModel(DictionaryItem dictionaryItem){
@@ -195,4 +202,80 @@ public class DictionaryService extends SuperService {
         return dictionaryItemModel;
     }
 
+    /**
+     * 根据字典编码获取字典
+     * @param param
+     * @return
+     */
+    public ResultContent listDictionary(ListDictionaryParam param){
+
+        String projectId = param.getProjectId();
+        if (StringUtils.isBlank(projectId)){
+            projectId = getCurrentProjectOid();
+        }
+        if (StringUtils.isBlank(projectId)){
+            return ResultContent.buildFail("项目id不能为空");
+        };
+
+        if (param.getKeys()==null || param.getKeys().isEmpty()){
+            return ResultContent.buildFail("字典编码不能为null或空");
+        }
+
+        List<Dictionary> dictionaryList = dictionaryDao.findTopByProjectIdAndKeyIn(projectId, param.getKeys());
+        return ResultContent.buildContent(dictionaryList.stream().map(this::toModel).toList());
+    }
+
+//    public ResultContent listItem(String projectId,String dictionary, String key){
+//        dictionaryItemDao.findTopByDictionary_IdAndKeyIn()
+//    }
+
+    /**
+     * 根据项编码获取项
+     * @param param
+     * @return
+     */
+    public ResultContent listItem(ListDictionaryParam param){
+
+        if (StringUtils.isBlank(param.getDictionaryKey())){
+            return ResultContent.buildFail("字典编码不能为空");
+        }
+
+
+        Dictionary dictionary = dictionaryDao.findTopByProjectIdAndKey(param.getProjectId(), param.getDictionaryKey());
+        if (dictionary == null){
+            return ResultContent.buildFail("字典不存在");
+        }
+
+        List<DictionaryItem> dictionaryItemList = new ArrayList<>();
+
+        if (param.getKeys()==null || param.getKeys().isEmpty()){
+            dictionaryItemList = dictionaryItemDao.findByDictionary_Id(dictionary.getId());
+        }else {
+            dictionaryItemList = dictionaryItemDao.findTopByDictionary_IdAndKeyIn(dictionary.getId(), param.getKeys());
+        }
+        return ResultContent.buildContent(dictionaryItemList.stream().map(this::toItemModel).toList());
+    }
+
+//    /**
+//     * 字典项向下查询
+//     */
+//    public Object deepListItem(DeepQueryParam queryParam){
+//
+//        List<DeepQueryParam.KeyFilter> keyFilters = queryParam.getKeyFilters();
+//
+//        keyFilters.stream().map(keyFilter -> {
+//           Dictionary dictionary = dictionaryDao.findTopByProjectIdAndKey(queryParam.getProjectId(), keyFilter.getDictionaryKey());
+//
+//           if (queryParam.isDeep() && !keyFilter.getKeys().isEmpty()){
+//               List<DItemChildrenResult> itemList = dictionaryItemDao.deepAggregate(dictionary.getId(), keyFilter.getKeys());
+//           }
+//
+//       }).toList();
+//
+//        Dictionary dictionary = dictionaryDao.findTopByProjectIdAndKey(projectId, dictionaryKey);
+//
+//        dictionaryItemDao.f
+//    }
+
+
 }