|
@@ -0,0 +1,90 @@
|
|
|
+package com.seamew.lottery.infrastructure.repository;
|
|
|
+
|
|
|
+import com.seamew.lottery.common.Constants;
|
|
|
+import com.seamew.lottery.domain.rule.model.aggregates.TreeRuleRich;
|
|
|
+import com.seamew.lottery.domain.rule.model.vo.TreeNodeLineVO;
|
|
|
+import com.seamew.lottery.domain.rule.model.vo.TreeNodeVO;
|
|
|
+import com.seamew.lottery.domain.rule.model.vo.TreeRootVO;
|
|
|
+import com.seamew.lottery.domain.rule.repository.IRuleRepository;
|
|
|
+import com.seamew.lottery.infrastructure.dao.IRuleTreeDao;
|
|
|
+import com.seamew.lottery.infrastructure.dao.IRuleTreeNodeDao;
|
|
|
+import com.seamew.lottery.infrastructure.dao.IRuleTreeNodeLineDao;
|
|
|
+import com.seamew.lottery.infrastructure.po.RuleTree;
|
|
|
+import com.seamew.lottery.infrastructure.po.RuleTreeNode;
|
|
|
+import com.seamew.lottery.infrastructure.po.RuleTreeNodeLine;
|
|
|
+import org.springframework.stereotype.Repository;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Author: seamew
|
|
|
+ * @Title: RuleRepository
|
|
|
+ * @CreateTime: 2023年02月25日 17:17:00
|
|
|
+ * @Description: 规则信息仓储服务
|
|
|
+ * @Version: 1.0
|
|
|
+ */
|
|
|
+@Repository
|
|
|
+public class RuleRepository implements IRuleRepository {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private IRuleTreeDao ruleTreeDao;
|
|
|
+ @Resource
|
|
|
+ private IRuleTreeNodeDao ruleTreeNodeDao;
|
|
|
+ @Resource
|
|
|
+ private IRuleTreeNodeLineDao ruleTreeNodeLineDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TreeRuleRich queryTreeRuleRich(Long treeId) {
|
|
|
+
|
|
|
+ // 规则树
|
|
|
+ RuleTree ruleTree = ruleTreeDao.queryRuleTreeByTreeId(treeId);
|
|
|
+ TreeRootVO treeRoot = new TreeRootVO();
|
|
|
+ treeRoot.setTreeId(ruleTree.getId());
|
|
|
+ treeRoot.setTreeRootNodeId(ruleTree.getTreeRootNodeId());
|
|
|
+ treeRoot.setTreeName(ruleTree.getTreeName());
|
|
|
+
|
|
|
+ // 树节点->树连接线
|
|
|
+ Map<Long, TreeNodeVO> treeNodeMap = new HashMap<>();
|
|
|
+ List<RuleTreeNode> ruleTreeNodeList = ruleTreeNodeDao.queryRuleTreeNodeList(treeId);
|
|
|
+ for (RuleTreeNode treeNode : ruleTreeNodeList) {
|
|
|
+ List<TreeNodeLineVO> treeNodeLineInfoList = new ArrayList<>();
|
|
|
+ if (Constants.NodeType.STEM.equals(treeNode.getNodeType())) {
|
|
|
+
|
|
|
+ RuleTreeNodeLine ruleTreeNodeLineReq = new RuleTreeNodeLine();
|
|
|
+ ruleTreeNodeLineReq.setTreeId(treeId);
|
|
|
+ ruleTreeNodeLineReq.setNodeIdFrom(treeNode.getId());
|
|
|
+ List<RuleTreeNodeLine> ruleTreeNodeLineList = ruleTreeNodeLineDao.queryRuleTreeNodeLineList(ruleTreeNodeLineReq);
|
|
|
+
|
|
|
+ for (RuleTreeNodeLine nodeLine : ruleTreeNodeLineList) {
|
|
|
+ TreeNodeLineVO treeNodeLineInfo = new TreeNodeLineVO();
|
|
|
+ treeNodeLineInfo.setNodeIdFrom(nodeLine.getNodeIdFrom());
|
|
|
+ treeNodeLineInfo.setNodeIdTo(nodeLine.getNodeIdTo());
|
|
|
+ treeNodeLineInfo.setRuleLimitType(nodeLine.getRuleLimitType());
|
|
|
+ treeNodeLineInfo.setRuleLimitValue(nodeLine.getRuleLimitValue());
|
|
|
+ treeNodeLineInfoList.add(treeNodeLineInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ TreeNodeVO treeNodeInfo = new TreeNodeVO();
|
|
|
+ treeNodeInfo.setTreeId(treeNode.getTreeId());
|
|
|
+ treeNodeInfo.setTreeNodeId(treeNode.getId());
|
|
|
+ treeNodeInfo.setNodeType(treeNode.getNodeType());
|
|
|
+ treeNodeInfo.setNodeValue(treeNode.getNodeValue());
|
|
|
+ treeNodeInfo.setRuleKey(treeNode.getRuleKey());
|
|
|
+ treeNodeInfo.setRuleDesc(treeNode.getRuleDesc());
|
|
|
+ treeNodeInfo.setTreeNodeLineInfoList(treeNodeLineInfoList);
|
|
|
+
|
|
|
+ treeNodeMap.put(treeNode.getId(), treeNodeInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ TreeRuleRich treeRuleRich = new TreeRuleRich();
|
|
|
+ treeRuleRich.setTreeRoot(treeRoot);
|
|
|
+ treeRuleRich.setTreeNodeMap(treeNodeMap);
|
|
|
+
|
|
|
+ return treeRuleRich;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|