From 09eca02701d369e82b29c08b403688648c1d4bc6 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Tue, 06 Jun 2023 00:27:45 +0800 Subject: [PATCH] 矩阵修改 --- src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 6 + src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 10 ++ src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java | 18 +- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 2 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 9 + src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 20 ++++ src/main/java/cc/mrbird/febs/mall/service/IMatrixTreeNodeService.java | 10 ++ src/main/java/cc/mrbird/febs/mall/service/impl/MatrixTreeNodeServiceImpl.java | 64 ++++++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 32 +----- src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java | 30 +++++ src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java | 5 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 6 src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 1 src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 5 + src/main/resources/application-dev.yml | 2 src/test/java/cc/mrbird/febs/TreeTest.java | 40 ++++++++ src/main/resources/templates/febs/views/modules/order/orderList.html | 23 ---- 17 files changed, 215 insertions(+), 68 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java index e1f7784..232d796 100644 --- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java +++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java @@ -185,4 +185,24 @@ return BindingBuilder.bind(orderBonusQueue()).to(orderBonusExchange()).with(RabbitQueueEnum.ORDER_BONUS.getRoute()); } //订单分红 end + + + /** + * 矩阵节点 + * @return + */ + @Bean + public DirectExchange matrixTreeExchange() { + return new DirectExchange(RabbitQueueEnum.MATRIX_TREE.getExchange()); + } + + @Bean + public Queue matrixTreeQueue() { + return new Queue(QueueConstants.MATRIX_TREE); + } + + @Bean + public Binding matrixTreeBind() { + return BindingBuilder.bind(matrixTreeQueue()).to(matrixTreeExchange()).with(RabbitQueueEnum.MATRIX_TREE.getRoute()); + } } diff --git a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java index b6729ba..8cacfac 100644 --- a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java +++ b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java @@ -65,15 +65,15 @@ log.info(" "); log.info("国潮奢美 权限系统启动完毕,地址:{}", url); - boolean auto = febsProperties.isAutoOpenBrowser(); - if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) { - String os = System.getProperty("os.name"); - // 默认为 windows时才自动打开页面 - if (StringUtils.containsIgnoreCase(os, FebsConstant.SYSTEM_WINDOWS)) { - //使用默认浏览器打开系统登录页 - Runtime.getRuntime().exec("cmd /c start " + url); - } - } +// boolean auto = febsProperties.isAutoOpenBrowser(); +// if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) { +// String os = System.getProperty("os.name"); +// // 默认为 windows时才自动打开页面 +// if (StringUtils.containsIgnoreCase(os, FebsConstant.SYSTEM_WINDOWS)) { +// //使用默认浏览器打开系统登录页 +// Runtime.getRuntime().exec("cmd /c start " + url); +// } +// } } } } 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 3356f8f..ebcf9ff 100644 --- a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java +++ b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java @@ -40,7 +40,20 @@ return null; } - MemberNode parentNode = findNotWholeNode(); + MemberNode childTreeRoot = getNode(node.getRefererId()); + + MemberNode parentNode = findNotWholeNode(childTreeRoot == null ? root : childTreeRoot); + parentNode.addNode(node); + return parentNode; + } + + public MemberNode addNode(MemberNode node, Long parentNodeId) { + if (parentNodeId == null) { + root = node; + return null; + } + + MemberNode parentNode = getNode(parentNodeId); parentNode.addNode(node); return parentNode; } @@ -49,7 +62,7 @@ * 层级遍历,查到子节点未满3个的节点 * @return */ - public MemberNode findNotWholeNode() { + public MemberNode findNotWholeNode(MemberNode root) { ArrayDeque<MemberNode> deque = new ArrayDeque<>(); deque.add(root); @@ -77,6 +90,10 @@ return result; } + public MemberNode findNotWholeNode() { + return findNotWholeNode(root); + } + /** * 查找整个树下对应节点 * @param param memberId/address/inviteId @@ -85,6 +102,10 @@ public MemberNode getNode(Object param) { if (root == null) { return null; + } + + if (root.getMemberId().equals(param) || root.getPhone().equals(param) || root.getInviteId().equals(param)) { + return root; } return getNode(root.CHILD, param); @@ -107,7 +128,10 @@ return node; } - return getNode(node.CHILD, param); + MemberNode childNode = getNode(node.CHILD, param); + if (childNode != null) { + return childNode; + } } return null; diff --git a/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java b/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java index 419b9c2..333b930 100644 --- a/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java +++ b/src/main/java/cc/mrbird/febs/mall/init/MatrixTreeInit.java @@ -35,8 +35,11 @@ memberNode.setMemberId(node.getTreeNode()); memberNode.setPhone(node.getPhone()); memberNode.setInviteId(node.getInviteId()); - MatrixTree.getInstance().addNode(memberNode); + memberNode.setRefererId(node.getReferrerId()); + MatrixTree.getInstance().addNode(memberNode, node.getParentNode()); } + + MatrixTree instance = MatrixTree.getInstance(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMatrixTreeNodeService.java b/src/main/java/cc/mrbird/febs/mall/service/IMatrixTreeNodeService.java new file mode 100644 index 0000000..390f6b6 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/IMatrixTreeNodeService.java @@ -0,0 +1,10 @@ +package cc.mrbird.febs.mall.service; + +import cc.mrbird.febs.common.tree.MemberNode; +import cc.mrbird.febs.mall.entity.MatrixTreeNode; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface IMatrixTreeNodeService extends IService<MatrixTreeNode> { + + public MemberNode addTreeNode(Long memberId); +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index 756a322..20e3dd8 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -49,8 +49,7 @@ private final SqlSessionTemplate sqlSessionTemplate; private final MallMoneyFlowMapper mallMoneyFlowMapper; private final MallMqRecordMapper mallMqRecordMapper; - - private final MatrixTreeNodeMapper matrixTreeNodeMapper; + private final IMatrixTreeNodeService matrixTreeNodeService; @Override @Transactional(rollbackFor = Exception.class) @@ -61,30 +60,9 @@ return; } - MatrixTree tree = MatrixTree.getInstance(); - MemberNode node = tree.getNode(member.getInviteId()); - if (node != null) { - return; - } - - MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByTreeNode(memberId); - if (matrixTreeNode != null) { - return; - } - - node = new MemberNode(); - node.setInviteId(member.getInviteId()); - node.setPhone(member.getPhone()); - node.setRefererId(member.getReferrerId()); - node.setMemberId(member.getId()); - MemberNode parentNode = tree.addNode(node); - - matrixTreeNode = new MatrixTreeNode(); - matrixTreeNode.setTreeNode(memberId); - matrixTreeNode.setParentNode(parentNode == null ? null : parentNode.getMemberId()); - matrixTreeNodeMapper.insert(matrixTreeNode); - + MemberNode parentNode = matrixTreeNodeService.addTreeNode(memberId); if (parentNode == null) { + log.info("父级节点未找到:{}", memberId); return; } @@ -102,12 +80,12 @@ } MallMember parentMember = memberMapper.selectById(parentNode.getMemberId()); + parentMember.setChildNodeCnt(parentNode.CHILD.size()); int levelCode = MemberLevelEnum.getLevelCode(parentMember.getLevel()); if (Integer.parseInt(dic.getValue()) >= levelCode) { - parentMember.setChildNodeCnt(parentNode.CHILD.size()); parentMember.setLevel(dic.getCode()); - memberMapper.updateById(parentMember); } + memberMapper.updateById(parentMember); } /** diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 783f2c1..ff1222a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -15,6 +15,7 @@ import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; @@ -114,6 +115,7 @@ mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode()); mallMember.setSex(registerDto.getSex()); + mallMember.setInsideWith(1); mallMember.setBindPhone(registerDto.getAccount()); mallMember.setSkin("default"); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MatrixTreeNodeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MatrixTreeNodeServiceImpl.java new file mode 100644 index 0000000..48885b8 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MatrixTreeNodeServiceImpl.java @@ -0,0 +1,64 @@ +package cc.mrbird.febs.mall.service.impl; + +import cc.mrbird.febs.common.tree.MatrixTree; +import cc.mrbird.febs.common.tree.MemberNode; +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.entity.MatrixTreeNode; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cc.mrbird.febs.mall.mapper.MatrixTreeNodeMapper; +import cc.mrbird.febs.mall.service.IMatrixTreeNodeService; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MatrixTreeNodeServiceImpl extends ServiceImpl<MatrixTreeNodeMapper, MatrixTreeNode> implements IMatrixTreeNodeService { + + private final MallMemberMapper mallMemberMapper; + private final MatrixTreeNodeMapper matrixTreeNodeMapper; + + @Override + public MemberNode addTreeNode(Long memberId) { + MallMember mallMember = mallMemberMapper.selectById(memberId); + if (mallMember == null) { + return null; + } + + MatrixTree instance = MatrixTree.getInstance(); + MemberNode node = instance.getNode(memberId); + if (node != null) { + return null; + } + + if (StrUtil.isNotBlank(mallMember.getReferrerId())) { + MemberNode parentNode = instance.getNode(mallMember.getReferrerId()); + + MemberNode notWholeNode = null; + if (parentNode != null) { + notWholeNode = instance.findNotWholeNode(parentNode); + } else { + notWholeNode = instance.findNotWholeNode(); + } + + MatrixTreeNode treeNode = new MatrixTreeNode(); + treeNode.setTreeNode(mallMember.getId()); + treeNode.setParentNode(notWholeNode.getMemberId()); + matrixTreeNodeMapper.insert(treeNode); + } else { + MatrixTreeNode treeNode = new MatrixTreeNode(); + treeNode.setTreeNode(mallMember.getId()); + matrixTreeNodeMapper.insert(treeNode); + } + + node = new MemberNode(); + node.setPhone(mallMember.getPhone()); + node.setMemberId(memberId); + node.setInviteId(mallMember.getInviteId()); + node.setRefererId(mallMember.getReferrerId()); + return instance.addNode(node); + } +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index d087269..91d5d4c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -116,7 +116,7 @@ } else { // 判断上级是否与自己购买的套餐符合,若符合则走3级直推逻辑,若不符合则另外一个 - if (parentMember.getAccountLevel() >= item.getGoodsLevel()) { + if (parentMember.getAccountLevel() == 1 && item.getGoodsLevel() != 1) { for (DataDictionaryCustom dataDic : dataDices) { JSONObject jsonObject = JSONObject.parseObject(dataDic.getValue()); if (directCnt >= jsonObject.getInteger("pushCnt")) { @@ -149,8 +149,8 @@ int index = 1; for (MallMember mallMember : mallMembers) { - if (!item.getGoodsLevel().equals(mallMember.getAccountLevel())) { - break; + if (mallMember.getAccountLevel() == 1) { + continue; } if (index == 2) { diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java index 2decbc2..ac8b1cc 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java +++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java @@ -11,6 +11,7 @@ public static final String AGENT_RETURN_MONEY = "meye_queue_agent_return_money"; public static final String ORDER_RETURN_MONEY = "meye_queue_order_return_money"; public static final String ORDER_BONUS = "meye_queue_order_bonus"; + public static final String MATRIX_TREE = "meye_queue_matrix_tree"; /** * 补贴金额 , * 分享补贴,星级补贴 diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java index 3f74175..eb08a01 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java +++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java @@ -2,6 +2,7 @@ import cc.mrbird.febs.mall.service.IAgentService; import cc.mrbird.febs.mall.service.IApiMallOrderInfoService; +import cc.mrbird.febs.mall.service.IMatrixTreeNodeService; import cc.mrbird.febs.mall.service.IMemberProfitService; import cc.mrbird.febs.rabbit.constants.QueueConstants; import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum; @@ -28,6 +29,9 @@ private IAgentService agentService; @Autowired private IMemberProfitService memberProfitService; + + @Autowired + private IMatrixTreeNodeService matrixTreeNodeService; @RabbitListener(queues = "meye_queue_order_delay") public void orderCancelDelay(String id) { @@ -68,4 +72,10 @@ } } + @RabbitListener(queues = QueueConstants.MATRIX_TREE) + public void matrixTree(Long memberId) { + log.info("矩阵节点消息:{}", memberId); + matrixTreeNodeService.addTreeNode(memberId); + } + } diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java index 8e3e72a..4eed134 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java +++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java @@ -34,7 +34,11 @@ FORCE_VOUCHER_SALE("meye_exchange_force_voucher_sale", "meye_route_key_force_voucher_sale", - "meye_queue_force_voucher_sale"); + "meye_queue_force_voucher_sale"), + + MATRIX_TREE("meye_exchange_matrix_tree", + "meye_route_key_matrix_tree", + "meye_queue_matrix_tree"); private String exchange; diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java index a7552a4..91cc56a 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java +++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java @@ -92,4 +92,9 @@ log.info("发送订单分红消息:{}", orderId); rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_BONUS.getExchange(), RabbitQueueEnum.ORDER_BONUS.getRoute(), orderId); } + + public void sendMatrixTree(Long memberId) { + log.info("发送矩阵节点消息:{}", memberId); + rabbitTemplate.convertAndSend(RabbitQueueEnum.MATRIX_TREE.getExchange(), RabbitQueueEnum.MATRIX_TREE.getRoute(), memberId); + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 75b24f3..acc964b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -18,7 +18,7 @@ username: ct_test password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://120.27.238.55:3406/db_meiye_prd?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&allowMultiQueries=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://120.27.238.55:3406/db_meiye_mall?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&allowMultiQueries=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 # username: db_meiye # password: meiye#@!321 # driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html index 058c38a..ad54201 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -71,6 +71,14 @@ <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchStatus"> {{# } }} </script> + +<script type="text/html" id="switchInsideWith"> + {{# if(d.insideWith === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="正常|禁用" checked lay-skin="switch" lay-filter="switchInsideWith"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchInsideWith"> + {{# } }} +</script> <style> .layui-form-onswitch { background-color: #5FB878 !important; @@ -248,6 +256,7 @@ } }, minWidth: 100,align:'left'}, {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'left'}, + {field: 'insideWith', title: '余额转增', templet: '#switchInsideWith', minWidth: 100,align:'left'}, {field: 'createdTime', title: '注册时间', minWidth: 180,align:'left'}, // {title: '操作', // templet: function (d) { diff --git a/src/main/resources/templates/febs/views/modules/order/orderList.html b/src/main/resources/templates/febs/views/modules/order/orderList.html index 1b57287..614d757 100644 --- a/src/main/resources/templates/febs/views/modules/order/orderList.html +++ b/src/main/resources/templates/febs/views/modules/order/orderList.html @@ -100,8 +100,6 @@ <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderDetail:view" lay-event="seeOrder">详情</button> <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="orderMoneyFlow">资金流水</button> {{# } else if(d.status === 7) { }} -<!-- <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderDetail:view" lay-event="seeOrder">详情</button>--> -<!-- <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="orderMoneyFlow">资金流水</button>--> <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="delOrder">删除</button> {{# } else { }} <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderDetail:view" lay-event="seeOrder">详情</button> @@ -330,27 +328,6 @@ {field: 'payOrderNo', title: '支付订单号', minWidth: 200,align:'left'}, {title: '操作', minWidth: 200 ,toolbar: '#mall-order-option',hide:mallOrderOption,align:'left', fixed:'right'}, - // {title: '操作', - // templet: function (d) { - // if (d.status === 2) { - // if(d.deliverType ===2){ - // return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-btn-success" lay-event="takeGoods" shiro:hasPermission="user:update">自提</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="orderMoneyFlow" shiro:hasPermission="orderMoneyFlow:update">资金流水</button>' - // }else{ - // return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-btn-success" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="orderMoneyFlow" shiro:hasPermission="orderMoneyFlow:update">资金流水</button>' - // } - // }else if(d.status === 7){ - // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-xs layui-btn-normal layui-btn-danger" lay-event="delOrder" shiro:hasPermission="user:update">删除</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="orderMoneyFlow" shiro:hasPermission="orderMoneyFlow:update">资金流水</button>' - // }else{ - // return '<button class="layui-btn layui-btn-normal layui-btn-xs " lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="orderMoneyFlow" shiro:hasPermission="orderMoneyFlow:update">资金流水</button>' - // } - // },minWidth: 200,align:'center', fixed:'right'} ]] }); } diff --git a/src/test/java/cc/mrbird/febs/TreeTest.java b/src/test/java/cc/mrbird/febs/TreeTest.java index 8312aeb..455ec6d 100644 --- a/src/test/java/cc/mrbird/febs/TreeTest.java +++ b/src/test/java/cc/mrbird/febs/TreeTest.java @@ -2,9 +2,20 @@ import cc.mrbird.febs.common.tree.MatrixTree; import cc.mrbird.febs.common.tree.MemberNode; +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.entity.MallOrderInfo; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; +import cc.mrbird.febs.mall.service.IAgentService; +import cc.mrbird.febs.mall.service.IMatrixTreeNodeService; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; /** * @author wzy @@ -27,4 +38,33 @@ System.out.println(111); } + + @Autowired + private MallMemberMapper mallMemberMapper; + + @Autowired + private IMatrixTreeNodeService matrixTreeNodeService; + + @Autowired + private MallOrderInfoMapper mallOrderInfoMapper; + + @Autowired + private IAgentService agentService; + + @Test + public void initMemberTreeTest() { + LambdaQueryWrapper<MallOrderInfo> orderQuery = new LambdaQueryWrapper<>(); + orderQuery.eq(MallOrderInfo::getStatus, 2) + .eq(MallOrderInfo::getOrderType, 1) + .orderByAsc(MallOrderInfo::getId); + List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectList(orderQuery); + + for (MallOrderInfo mallOrderInfo : mallOrderInfos) { + agentService.autoUpAgentLevel(mallOrderInfo.getMemberId()); + } + + MatrixTree instance = MatrixTree.getInstance(); + System.out.println(111); + } + } -- Gitblit v1.9.1