From fda57b880c57c2a7e9d26d7912eed310e028042d Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Sat, 03 Jun 2023 03:25:42 +0800 Subject: [PATCH] fix --- src/test/java/cc/mrbird/febs/ProfitTest.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 7 ++- src/main/resources/application-dev.yml | 6 ++ src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html | 18 ++++---- src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java | 2 + src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 31 +++++++++++++++ src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 1 7 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java index db8c637..af4a498 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java @@ -112,4 +112,6 @@ IPage<MallMoneyFlow> achieveReleaseChild(QueryRequest request, MallScoreAchieveRelease mallScoreAchieveRelease); FebsResponse insideWithType(Long id, int i); + + List<MallMember> findParentMemberList(List<String> inviteIds, Integer level, boolean containsParent); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index bc7cdd2..8ed5bf9 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -36,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -771,4 +772,34 @@ return ids; } + + @Override + public List<MallMember> findParentMemberList(List<String> inviteIds, Integer level, boolean containsParent) { + List<MallMember> mallMembers = this.baseMapper.selectByInviteIds(inviteIds); + if(CollUtil.isEmpty(mallMembers)) { + return mallMembers; + } + + + List<MallMember> result = new ArrayList<>(); + int index = containsParent ? 0 : 1; + int count = 0; + while(true) { + if (level != null && count == level) { + break; + } + + if (index >= mallMembers.size()) { + break; + } + + String inviteId = inviteIds.get(index); + List<MallMember> collect = mallMembers.stream().filter(item -> item.getInviteId().equals(inviteId)).collect(Collectors.toList()); + result.add(collect.get(0)); + + index++; + count++; + } + return result; + } } 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 91124c0..8a3b2d9 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 @@ -38,6 +38,7 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final MallSystemSettingMapper mallSystemSettingMapper; + private final IAdminMallMemberService adminMallMemberService; /** * 直推收益 @@ -141,7 +142,7 @@ continue; } - List<MallMember> mallMembers = mallMemberMapper.selectParentMemberList(StrUtil.split(parentMember.getReferrerIds(), ','), parentMember.getReferrerId(), 2); + List<MallMember> mallMembers = adminMallMemberService.findParentMemberList(StrUtil.split(parentMember.getReferrerIds(), ','), 2, true); if (CollUtil.isEmpty(mallMembers)) { continue; } @@ -155,7 +156,7 @@ if (index != 2) { indirectPerDic = indirectPerTwoDic; } - BigDecimal doubleParentProfit = profit.multiply(new BigDecimal(indirectPerDic.getValue())); + BigDecimal doubleParentProfit = profit.multiply(new BigDecimal(indirectPerDic.getValue()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)); changeScoreAndCommission(mallMember.getId(), doubleParentProfit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo()); index++; } @@ -168,7 +169,7 @@ } List<String> parents = StrUtil.split(parentMember.getReferrerIds(), ','); - List<MallMember> members = mallMemberMapper.selectByInviteIds(parents); + List<MallMember> members = adminMallMemberService.findParentMemberList(parents, null, true); if (CollUtil.isEmpty(members)) { return; } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a527c2f..75b24f3 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -18,7 +18,11 @@ username: ct_test password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver - 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 + 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 +# username: db_meiye +# password: meiye#@!321 +# driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://47.111.90.145:3306/db_meiye?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=GMT%2b8 redis: # Redis数据库索引(默认为 0) 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 a0f8d18..058c38a 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -231,6 +231,7 @@ {field: 'name', title: '名称', minWidth: 100,align:'left', totalRowText: '合计:'}, {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, {field: 'balance', title: '余额', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.balance) }}'}, + {field: 'score', title: '赠送积分', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.score) }}'}, {field: 'prizeScore', title: '现金积分', minWidth: 100,align:'left',totalRow: '{{= parseInt(d.prizeScore) }}'}, {field: 'childNodeCnt', title: '粉丝数量', minWidth: 100,align:'left'}, {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html index 1e9fea5..0fdea4d 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html @@ -47,19 +47,19 @@ {field: 'type', title: '流水类型', templet: function (d) { if (d.type === 1) { - return '<span>静态收益</span>' - } else if (d.type === 2) { return '<span>直推奖</span>' + } else if (d.type === 2) { + return '<span>隔代收益</span>' } else if (d.type === 3) { - return '<span>代理收益</span>' + return '<span>全网分红</span>' } else if (d.type === 4) { - return '<span>排名收益</span>' + return '<span>代理分红</span>' }else if (d.type === 5) { - return '<span>总监收益</span>' + return '<span>股东分红</span>' }else if (d.type === 6) { - return '<span>社区店补</span>' + return '<span>积分兑换</span>' }else if (d.type === 7) { - return '<span>一代收益</span>' + return '<span>推荐奖</span>' }else if (d.type === 8) { return '<span>提现</span>' }else if (d.type === 9) { @@ -114,10 +114,10 @@ templet: function (d) { if (d.flowType === 1) { return '余额'; + } else if(d.flowType === 2) { + return '赠送积分' } else if(d.flowType === 3) { return '现金积分' - } else if(d.flowType === 5) { - return '贡献点' } else { return '-'; } diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java index 04267a9..ae22d4e 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(10L); + memberProfitService.directProfit(49L); } // // @Autowired -- Gitblit v1.9.1