From a51f290518a41cf8993d8ee3f9b77e33e93b186b Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Sat, 03 Jun 2023 11:52:56 +0800 Subject: [PATCH] fix --- src/test/java/cc/mrbird/febs/MemberTest.java | 73 ++++++++++++++++++++++++++++++++++++ src/test/java/cc/mrbird/febs/ProfitTest.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 4 +- 3 files changed, 76 insertions(+), 3 deletions(-) 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 8a3b2d9..49f1683 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 @@ -153,10 +153,10 @@ break; } - if (index != 2) { + if (index == 2) { indirectPerDic = indirectPerTwoDic; } - BigDecimal doubleParentProfit = profit.multiply(new BigDecimal(indirectPerDic.getValue()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); + BigDecimal doubleParentProfit = amount.multiply(new BigDecimal(indirectPerDic.getValue()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); changeScoreAndCommission(mallMember.getId(), doubleParentProfit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo()); index++; } diff --git a/src/test/java/cc/mrbird/febs/MemberTest.java b/src/test/java/cc/mrbird/febs/MemberTest.java new file mode 100644 index 0000000..10d9686 --- /dev/null +++ b/src/test/java/cc/mrbird/febs/MemberTest.java @@ -0,0 +1,73 @@ +package cc.mrbird.febs; + +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +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 + * @date 2023-06-03 + **/ +@Slf4j +@SpringBootTest +public class MemberTest { + + @Autowired + private MallMemberMapper mallMemberMapper; + + @Test + public void refererIds() { + MallMember member = mallMemberMapper.selectById(1L); + + updateRefererIds(member); + } + + private void updateRefererIds(MallMember member) { + List<MallMember> mallMembers = mallMemberMapper.selectByRefererId(member.getInviteId()); + if (CollUtil.isEmpty(mallMembers)) { + return; + } + + mallMembers.forEach(item -> { + MallMember updateMember = new MallMember(); + updateMember.setId(item.getId()); + String s = refererIds(item.getReferrerId()); + updateMember.setReferrerIds(s); + mallMemberMapper.updateById(updateMember); + + updateRefererIds(item); + }); + } + + private String refererIds(String parentId) { + boolean flag = false; + if (StrUtil.isBlank(parentId)) { + flag = true; + } + String ids = ""; + while (!flag) { + if (StrUtil.isBlank(ids)) { + ids += parentId; + } else { + ids += ("," + parentId); + } + MallMember parentMember = this.mallMemberMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + + return ids; + } +} diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java index ae22d4e..396f75c 100644 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ b/src/test/java/cc/mrbird/febs/ProfitTest.java @@ -46,7 +46,7 @@ @Test public void profitTest() { - memberProfitService.directProfit(49L); + memberProfitService.directProfit(56L); } // // @Autowired -- Gitblit v1.9.1