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