From 65cf739fe077c398d35e58a083a1c7be40a3b7a2 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 06 Aug 2023 23:32:39 +0800
Subject: [PATCH] 数据修改
---
src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java | 2
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 107 ++++++++++++++++++++++----
src/main/java/cc/mrbird/febs/dapp/mapper/MatrixTreeNodeMapper.java | 2
src/main/java/cc/mrbird/febs/dapp/entity/MatrixTreeNode.java | 2
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java | 11 ++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 11 ++
src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml | 15 +++
src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java | 4 +
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java | 8 +
src/main/resources/mapper/dapp/DappMemberDao.xml | 4 +
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java | 2
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java | 2
src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java | 28 +++++++
src/main/resources/mapper/dapp/MatrixTreeNodeMapper.xml | 6 +
src/main/java/cc/mrbird/febs/common/tree/MemberNode.java | 2
src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java | 23 ++++-
src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java | 2
17 files changed, 205 insertions(+), 26 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java b/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
index 8ed6ab5..f5d1f69 100644
--- a/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
+++ b/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
@@ -68,7 +68,7 @@
private String resolveToken(String token) {
try {
RSA rsa = new RSA(AppContants.PRIVATE_KEY, null);
- String[] tokens = StrUtil.split(rsa.decryptStr(token, KeyType.PrivateKey), "_");
+ String[] tokens = StrUtil.splitToArray(rsa.decryptStr(token, KeyType.PrivateKey), "_");
if (verifyTokenExpired(Long.parseLong(tokens[1]))) {
return tokens[0];
} else {
diff --git a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
index 3b57b22..5e57dfa 100644
--- a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
+++ b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
@@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayDeque;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -136,4 +137,31 @@
return null;
}
+
+ /**
+ * 获取某一个MemberNode的所有上级节点
+ * @param node MemberNode节点
+ * @return MemberNode的List,按照从上到下的顺序排列
+ */
+ public List<MemberNode> getAllAncestors(MemberNode node) {
+ List<MemberNode> ancestorList = new ArrayList<>();
+ getAllAncestorsHelper(node, ancestorList);
+ return ancestorList;
+ }
+
+ /**
+ * 递归辅助方法,用于获取某一个MemberNode的所有上级节点
+ * @param node 当前节点
+ * @param ancestorList 存储上级节点的List
+ */
+ private void getAllAncestorsHelper(MemberNode node, List<MemberNode> ancestorList) {
+ if (node == null || node.getRefererId() == null) {
+ return;
+ }
+
+ MemberNode parent = getNode(node.getRefererId());
+ ancestorList.add(parent);
+
+ getAllAncestorsHelper(parent, ancestorList);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java b/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
index d26e14b..e4216d1 100644
--- a/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
+++ b/src/main/java/cc/mrbird/febs/common/tree/MemberNode.java
@@ -18,6 +18,8 @@
private String refererId;
+ private Integer type;
+
public List<MemberNode> CHILD = new LinkedList<>();
public MemberNode(Long memberId, String phone, String inviteId, String refererId) {
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
index 359ed8e..b3967d9 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -56,7 +56,7 @@
private String chainType;
/**
- * 是否是超级节点 1-是 2-否
+ * 推广标识 1-左 2-右
*/
private Integer nodeType;
@@ -64,8 +64,12 @@
* 账号类型 admin normal
*/
private String accountType;
-
+ //小区业绩
private BigDecimal usdtBalance;
+ //左边区域业绩
+ private BigDecimal leftAchieve;
+ //右边区域业绩
+ private BigDecimal rightAchieve;
/**
* 激活状态 1-已激活 2-未激活
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java b/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
index 68225cc..19e60ff 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/MallAchieveRecord.java
@@ -16,7 +16,7 @@
public class MallAchieveRecord extends BaseEntity {
private Long memberId;
-
+ //剩余业绩
private BigDecimal amount;
//订单成本
private BigDecimal costAmount;
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/MatrixTreeNode.java b/src/main/java/cc/mrbird/febs/dapp/entity/MatrixTreeNode.java
index 9fdc314..362caa1 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/MatrixTreeNode.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/MatrixTreeNode.java
@@ -14,6 +14,8 @@
private Long parentNode;
private Integer deep;
+ //1:左边 2:右边 0:根节点
+ private Integer type;
@TableField(exist = false)
private String phone;
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index 0f2f671..c389b7f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -90,4 +90,6 @@
DappMemberEntity selectInviteLeft(@Param("inviteId")String inviteId);
DappMemberEntity selectInviteRight(@Param("inviteId")String inviteId);
+
+ List<DappMemberEntity> selectMemberByActiveStatus();
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
index 7095fbc..cebef6f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/MallAchieveRecordMapper.java
@@ -19,5 +19,9 @@
BigDecimal selectSumAchieveByMemberIds(@Param("list")List<Long> mallMembersOffLinePerkIds, @Param("date") Date date);
+ BigDecimal selectSumAchieveByMemberIdList(@Param("list")List<Long> mallMembersOffLinePerkIds);
+
List<MallAchieveRecord> selectListByDate(@Param("date")Date profitDate);
+
+ List<MallAchieveRecord> selectListByMemberId(@Param("memberId")Long memberId);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/MatrixTreeNodeMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/MatrixTreeNodeMapper.java
index 479e0ea..3e8ad46 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/MatrixTreeNodeMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/MatrixTreeNodeMapper.java
@@ -12,4 +12,6 @@
List<MatrixTreeNode> selectAllMatrixTreeNode();
MatrixTreeNode selectByTreeNode(@Param("treeNode") Long treeNode);
+
+ MatrixTreeNode selectByParentNodeAndType(@Param("parentNodeMemberId")Long parentNodeMemberId, @Param("nodeType")Integer nodeType);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
index 09d829b..958855f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -104,4 +104,6 @@
void speedPayOrderMsg(Long orderId);
void speedAutoLevelUpMsg(Long memberId);
+
+ void memberPerk();
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 48aea73..dfb2b33 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -933,11 +933,20 @@
BigDecimal.ZERO,
payOrderNo,
id);
- dappFundFlowDao.insert(donateScoreFlow);
+
+ /**
+ * 支付成功,消费后成有效账户后可分享(有效用户可推广)
+ */
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
+ if(2 == dappMemberEntity.getActiveStatus()){
+ dappMemberEntity.setActiveStatus(1);
+ dappMemberDao.updateById(dappMemberEntity);
+ }
/**
* todo 发送一条订单出的消息
*/
chainProducer.sendSpeedPayOrderMsg(id);
+ chainProducer.sendAutoLevelUpMsg(member.getId());
}
public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index 4315ec3..4bc2400 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.tree.MatrixTree;
import cc.mrbird.febs.common.tree.MemberNode;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
@@ -2488,26 +2489,100 @@
return;
}
- List<DataDictionaryCustom> dicList = dataDictionaryCustomMapper.selectDicByType(AppContants.AGENT_LEVEL);
- DataDictionaryCustom dic = null;
- for (DataDictionaryCustom dataDictionaryCustom : dicList) {
- if (Integer.parseInt(dataDictionaryCustom.getValue()) == parentNode.CHILD.size()) {
- dic = dataDictionaryCustom;
- break;
- }
- }
-
- if (dic == null) {
+ MatrixTree matrixTree = MatrixTree.getInstance();
+ List<MemberNode> allNodes = matrixTree.getAllAncestors(parentNode); // 获取某一个MemberNode的所有上级节点
+ allNodes.add(parentNode);
+ if(CollUtil.isEmpty(allNodes)){
return;
}
+ /**
+ * 更新所有上级的小区业绩
+ */
+ for(MemberNode memberNode : allNodes){
+ BigDecimal smallAchieve = BigDecimal.ZERO;
+ List<MemberNode> allNodesChildList = memberNode.getCHILD();
+ if(CollUtil.isNotEmpty(allNodesChildList)){
+ List<Long> left = allNodesChildList.stream().filter(allNodesChild -> allNodesChild.getType() == 1).map(MemberNode::getMemberId).collect(Collectors.toList());
+ List<Long> right = allNodesChildList.stream().filter(allNodesChild -> allNodesChild.getType() == 2).map(MemberNode::getMemberId).collect(Collectors.toList());
- MallMember parentMember = memberMapper.selectById(parentNode.getMemberId());
- parentMember.setChildNodeCnt(parentNode.CHILD.size());
- int levelCode = MemberLevelEnum.getLevelCode(parentMember.getLevel());
- if (Integer.parseInt(dic.getValue()) >= levelCode) {
- parentMember.setLevel(dic.getCode());
+ BigDecimal leftAmount = mallAchieveRecordMapper.selectSumAchieveByMemberIdList(left);
+
+ BigDecimal rightAmount = mallAchieveRecordMapper.selectSumAchieveByMemberIdList(right);
+ if(leftAmount.compareTo(rightAmount) > 0){
+ smallAchieve = rightAmount;
+ }else{
+ smallAchieve = leftAmount;
+ }
+ //更新用户的区域业绩
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberNode.getMemberId());
+ dappMemberEntity.setUsdtBalance(smallAchieve);
+ dappMemberEntity.setLeftAchieve(leftAmount);
+ dappMemberEntity.setRightAchieve(rightAmount);
+ dappMemberDao.updateById(dappMemberEntity);
+ log.info("用户:{},leftAchieve :{}, rightAchieve:{}, smallAchieve:{}",
+ dappMemberEntity.getAddress(), leftAmount, rightAmount, smallAchieve);
+
+ /**
+ * 判断是否符合升级条件
+ */
+ String nextLevel = MemberLevelEnum.MEMBER.getNextLevel(dappMemberEntity.getAccountType());
+ DataDictionaryCustom memberLevelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.V1.getType()
+ , nextLevel);
+ if(ObjectUtil.isNotEmpty(memberLevelDic)){
+ String value = memberLevelDic.getValue();
+ cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(value);
+ BigDecimal smallAchieveDic = new BigDecimal(parseObj.get("smallAchieve").toString());
+ if(smallAchieve.compareTo(smallAchieveDic) >= 0){
+ //升级
+ dappMemberEntity.setAccountType(nextLevel);
+ dappMemberDao.updateById(dappMemberEntity);
+ }
+ }
+ }
}
- memberMapper.updateById(parentMember);
+ }
+
+ @Override
+ public void memberPerk() {
+ List<DappMemberEntity> dappMemberEntityList = dappMemberDao.selectMemberByActiveStatus();
+ if(CollUtil.isEmpty(dappMemberEntityList)){
+ return;
+ }
+ DataDictionaryCustom staticReleaseDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.STATIC_RELEASE.getType(),
+ DataDictionaryEnum.STATIC_RELEASE.getCode()
+ );
+ if(ObjectUtil.isEmpty(staticReleaseDic)){
+ return;
+ }
+ BigDecimal staticRelease = new BigDecimal(staticReleaseDic.getValue() == null ? "0" : staticReleaseDic.getValue());
+ if(BigDecimal.ZERO.compareTo(staticRelease) >= 0){
+ return;
+ }
+ for(DappMemberEntity dappMemberEntity : dappMemberEntityList){
+ if(1 != dappMemberEntity.getActiveStatus()){
+ break;
+ }
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(dappMemberEntity.getId());
+ /**
+ * 按照订单、比例生成对应的静态释放
+ */
+ for(MallAchieveRecord mallAchieveRecord : mallAchieveRecords){
+ BigDecimal costAmount = mallAchieveRecord.getCostAmount();
+ BigDecimal amount = mallAchieveRecord.getAmount();
+ BigDecimal eachDayPerk = costAmount.multiply(staticRelease).setScale(2,BigDecimal.ROUND_DOWN);
+ /**
+ * 生成一条静态补贴的流水
+ * 增加账户余额
+ * 生成减少赠送积分流水
+ * 减少账户的赠送积分
+ * 业绩记录减少实际业绩amount
+ *
+ */
+ }
+
+ }
}
/**
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
index bd7895b..2fc58bd 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
import cc.mrbird.febs.dapp.mapper.MatrixTreeNodeMapper;
import cc.mrbird.febs.dapp.service.IMatrixTreeNodeService;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
@@ -30,16 +31,26 @@
MatrixTree instance = MatrixTree.getInstance();
MemberNode node = instance.getNode(memberId);
+ //节点存在则直接返回
if (node != null) {
return null;
}
-
+ //未找到节点
if (StrUtil.isNotBlank(mallMember.getRefererId())) {
+ //返回直推上级所在节点
MemberNode parentNode = instance.getNode(mallMember.getRefererId());
MemberNode notWholeNode = null;
if (parentNode != null) {
- notWholeNode = instance.findNotWholeNode(parentNode);
+ Long parentNodeMemberId = parentNode.getMemberId();
+ MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByParentNodeAndType(parentNodeMemberId,mallMember.getNodeType());
+ if(ObjectUtil.isNotEmpty(matrixTreeNode)){
+ //直推上级的第一代子节点
+ MemberNode nodeParentChild = instance.getNode(matrixTreeNode.getTreeNode());
+ notWholeNode = instance.findNotWholeNode(nodeParentChild);
+ }else{
+ notWholeNode = instance.findNotWholeNode(parentNode);
+ }
} else {
notWholeNode = instance.findNotWholeNode();
}
@@ -47,17 +58,21 @@
MatrixTreeNode treeNode = new MatrixTreeNode();
treeNode.setTreeNode(mallMember.getId());
treeNode.setParentNode(notWholeNode.getMemberId());
+ treeNode.setType(mallMember.getNodeType());
matrixTreeNodeMapper.insert(treeNode);
} else {
MatrixTreeNode treeNode = new MatrixTreeNode();
treeNode.setTreeNode(mallMember.getId());
+ treeNode.setType(0);
matrixTreeNodeMapper.insert(treeNode);
}
-
+ MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByTreeNode(memberId);
+ DappMemberEntity dappMemberEntity = mallMemberMapper.selectById(matrixTreeNode.getParentNode());
node = new MemberNode();
node.setMemberId(memberId);
node.setInviteId(mallMember.getInviteId());
- node.setRefererId(mallMember.getRefererId());
+ node.setRefererId(dappMemberEntity.getInviteId());
+ node.setType(mallMember.getNodeType());
return instance.addNode(node);
}
}
diff --git a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
index 0b17fa1..62082de 100644
--- a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
+++ b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -24,9 +24,18 @@
@ConditionalOnProperty(prefix = "system", name = "quartz-job", havingValue = "true")
public class BnbTransferJob{
+
+ @Autowired
+ private DappSystemService dappSystemService;
+
+ /**
+ * 每天按照消费金额的5‰静释放(千分之五的静态释放比例)
+ * (按购买顺序结算,同时有5个订单就有结算记录)
+ * (设置多少,全部按照最新的来释放)
+ */
@Scheduled(cron = "0 0 0 * * ?")
public void aKlineJobDay() {
- dappSystemService.aKlineJobDay();
+ dappSystemService.memberPerk();
}
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index 2ecc2c5..eb3c3eb 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -309,4 +309,8 @@
<select id="selectInviteRight" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
select * from dapp_member where invite_right = #{inviteId}
</select>
+
+ <select id="selectMemberByActiveStatus" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
+ select * from dapp_member where active_status = 1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml b/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
index 23f7942..28702b3 100644
--- a/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
+++ b/src/main/resources/mapper/dapp/MallAchieveRecordMapper.xml
@@ -23,9 +23,24 @@
and date_format(achieve_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
</select>
+ <select id="selectSumAchieveByMemberIdList" resultType="java.math.BigDecimal">
+ select IFNULL(sum(IFNULL(amount,0)),0)
+ from mall_achieve_record
+ where member_id IN
+ <foreach collection = "list" item = "item" separator="," open = "(" close = ")" >
+ #{item}
+ </foreach >
+ </select>
+
<select id="selectListByDate" resultType="cc.mrbird.febs.dapp.entity.MallAchieveRecord">
select * from mall_achieve_record
where date_format(achieve_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
</select>
+ <select id="selectListByMemberId" resultType="cc.mrbird.febs.dapp.entity.MallAchieveRecord">
+ select * from mall_achieve_record
+ where member_id = #{memberId}
+ order by CREATE_TIME asc
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/dapp/MatrixTreeNodeMapper.xml b/src/main/resources/mapper/dapp/MatrixTreeNodeMapper.xml
index d7af182..8638b56 100644
--- a/src/main/resources/mapper/dapp/MatrixTreeNodeMapper.xml
+++ b/src/main/resources/mapper/dapp/MatrixTreeNodeMapper.xml
@@ -11,4 +11,10 @@
<select id="selectByTreeNode" resultType="cc.mrbird.febs.dapp.entity.MatrixTreeNode">
select * from matrix_tree_node where tree_node=#{treeNode}
</select>
+
+ <select id="selectByParentNodeAndType" resultType="cc.mrbird.febs.dapp.entity.MatrixTreeNode">
+ select * from matrix_tree_node
+ where tree_node = #{parentNodeMemberId}
+ and type = #{nodeType}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1