From d188e9fa2f3ff0a099df4233f7fc2b6be8305937 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Mon, 19 Feb 2024 23:28:13 +0800
Subject: [PATCH] fix

---
 src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html |  152 +++++++++++++++++++------------------
 src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html        |    7 -
 src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java       |   25 +++++-
 src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html     |    9 -
 4 files changed, 105 insertions(+), 88 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
index be9569d..19b1de4 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
@@ -3,11 +3,13 @@
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
+import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
 import cc.mrbird.febs.mall.entity.MallOrderItem;
 import cc.mrbird.febs.mall.mapper.MallMemberMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.service.IApiMallGoodsService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
@@ -27,6 +29,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -46,6 +49,7 @@
     private final MallMemberMapper mallMemberMapper;
     private final MallVipConfigMapper mallVipConfigMapper;
     private final AgentProducer agentProducer;
+    private final IApiMallGoodsService mallGoodsService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -58,6 +62,7 @@
         Long memberId = mallOrderInfo.getMemberId();
         MallVipBenefits mallVipBenefits = mallVipConfigService.hasVipBenefits(memberId);
 
+        MallMember member = mallMemberMapper.selectById(memberId);
         BigDecimal multiple = BigDecimal.ONE;
         String name = "";
         if (mallVipBenefits != null) {
@@ -73,9 +78,19 @@
         mallMoneyFlowService.addMoneyFlow(memberId, new BigDecimal(score), ScoreFlowTypeEnum.BUY.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2);
         mallMemberWalletService.add(new BigDecimal(score), memberId, "prizeScore");
 
+        List<Long> itemGoodsIds = mallOrderInfo.getItems().stream().map(MallOrderItem::getGoodsId).distinct().collect(Collectors.toList());
+        List<MallGoods> goodsList = mallGoodsService.listByIds(itemGoodsIds);
+        Map<Long, MallGoods> goodsMap = goodsList.stream().collect(Collectors.toMap(MallGoods::getId, MallGoods -> MallGoods));
+
         Map<Long, BigDecimal> recommendScoreMap = new HashMap<>();
         mallOrderInfo.getItems().forEach(item -> {
-            if (StrUtil.isNotBlank(item.getMemberInviteId())) {
+            if (StrUtil.isNotBlank(item.getMemberInviteId()) && !member.getInviteId().equals(item.getMemberInviteId())) {
+                MallGoods mallGoods = goodsMap.get(item.getGoodsId());
+                if (mallGoods.getStaticMulti() == null) {
+                    return;
+                }
+
+                BigDecimal multi = mallGoods.getStaticMulti().divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
                 MallMember mallMember = mallMemberMapper.selectInfoByInviteId(item.getMemberInviteId());
                 if (mallMember == null) {
                     return;
@@ -83,16 +98,16 @@
 
                 BigDecimal recommendScore = recommendScoreMap.get(mallMember.getId());
                 if (recommendScore != null) {
-                    recommendScore = recommendScore.add(item.getAmount());
-                }
 
-                recommendScoreMap.put(mallMember.getId(), recommendScore);
+                    recommendScore = recommendScore.add(item.getAmount().multiply(multi));
+                    recommendScoreMap.put(mallMember.getId(), recommendScore);
+                }
             }
         });
 
         recommendScoreMap.forEach((key, value) -> {
             mallMoneyFlowService.addMoneyFlow(key, value, ScoreFlowTypeEnum.RECOMMEND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2);
-            mallMemberWalletService.add(new BigDecimal(score), key, "prizeScore");
+            mallMemberWalletService.add(value, key, "prizeScore");
         });
 
         agentProducer.sendVipLevelUp(orderId);
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
index 02ed611..55605b8 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -103,11 +103,10 @@
                                             </div>
                                         </div>
 
-                                        <div class="layui-form-item febs-hide tc-set">
-                                            <label class="layui-form-label">静态倍数</label>
+                                        <div class="layui-form-item">
+                                            <label class="layui-form-label">推销员返积分比例(%)</label>
                                             <div class="layui-input-block">
-                                                <input type="text" name="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input">
-                                                <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div>
+                                                <input type="text" name="staticMulti" placeholder="请输入推销员返积分比例" autocomplete="off" class="layui-input">
                                             </div>
                                         </div>
 
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
index 5cfd40f..ddd65fa 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
@@ -112,13 +112,10 @@
                                             </div>
                                         </div>
 
-                                        <div class="layui-form-item febs-hide tc-set">
-                                            <label class="layui-form-label">静态倍数</label>
+                                        <div class="layui-form-item">
+                                            <label class="layui-form-label">推销员返积分比例</label>
                                             <div class="layui-input-block">
-                                                <input type="text" name="staticMulti" placeholder="请输入静态倍数"
-                                                       autoComplete="off" class="layui-input">
-                                                <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分
-                                                </div>
+                                                <input type="text" name="staticMulti" placeholder="请输入推销员返积分比例" autocomplete="off" class="layui-input">
                                             </div>
                                         </div>
 
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
index 8eb1a87..53d5972 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
@@ -49,6 +49,16 @@
                                             </select>
                                         </div>
                                     </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">资金类型</label>
+                                        <div class="layui-input-inline">
+                                            <select name="flowType">
+                                                <option value="">请选择</option>
+                                                <option value="1">余额</option>
+                                                <option value="3">积分</option>
+                                            </select>
+                                        </div>
+                                    </div>
 
                                     <div class="layui-inline">
                                         <label class="layui-form-label layui-form-label-sm">开始时间</label>
@@ -65,18 +75,6 @@
                                                    placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
-<!--                                    <div class="layui-inline">-->
-<!--                                        <label class="layui-form-label layui-form-label-sm">资金类型</label>-->
-<!--                                        <div class="layui-input-inline">-->
-<!--                                            <select name="flowType">-->
-<!--                                                <option value="">请选择</option>-->
-<!--                                                <option value="1">余额</option>-->
-<!--                                                <option value="2">赠送积分</option>-->
-<!--                                                <option value="3">竞猜积分</option>-->
-<!--                                                <option value="4">佣金</option>-->
-<!--                                            </select>-->
-<!--                                        </div>-->
-<!--                                    </div>-->
                                 </div>
                             </div>
                             <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -156,68 +154,76 @@
                     {field: 'amount', title: '金额', minWidth: 150,align:'left', totalRow:true},
                     {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 === 3) {
-                                return '<span>代理收益</span>'
-                            } else if (d.type === 4) {
-                                return '<span>排名收益</span>'
-                            }else if (d.type === 5) {
-                                return '<span>总监收益</span>'
-                            }else if (d.type === 6) {
-                                return '<span>社区店补</span>'
-                            }else if (d.type === 7) {
-                                return '<span>一代收益</span>'
-                            }else if (d.type === 8) {
-                                return '<span>提现</span>'
-                            }else if (d.type === 9) {
-                                return '<span>转账</span>'
-                            }else if (d.type === 10) {
-                                return '<span>余额支付</span>'
-                            }else if (d.type === 11) {
-                                return '<span>退款</span>'
-                            }else if (d.type === 12) {
-                                return '<span>佣金转竞猜积分</span>'
-                            }else if (d.type === 13) {
-                                return '<span>佣金转余额</span>'
-                            }else if (d.type === 14) {
-                                return '<span>竞猜积分签到</span>'
-                            }else if (d.type === 15) {
-                                return '<span>感恩奖</span>'
-                            }else if (d.type === 16) {
-                                return '<span>系统拨付</span>'
-                            }else if (d.type === 17) {
-                                return '<span>抽奖</span>'
-                            }else if (d.type === 18) {
-                                return '<span>充值</span>'
-                            }else if (d.type === 19) {
-                                return '<span>收益</span>'
-                            }else if (d.type === 20) {
-                                return '<span>赠送金额</span>'
-                            }else if (d.type === 21) {
-                                return '<span>微信支付</span>'
-                            }else if (d.type === 22) {
-                                return '<span>微信退款</span>'
-                            }else{
-                                return ''
+                            if (d.flowType === 3) {
+                                if (d.type === 1) {
+                                    return '<span>积分支付</span>'
+                                } else if (d.type === 2) {
+                                    return '<span>购买商品获得积分</span>'
+                                } else if (d.type === 3) {
+                                    return '<span>推荐下单获得积分</span>'
+                                }
+                            }
+
+                            if (d.flowType === 1) {
+                                if (d.type === 1) {
+                                    return '<span>静态收益</span>'
+                                } else if (d.type === 2) {
+                                    return '<span>直推奖</span>'
+                                } else if (d.type === 3) {
+                                    return '<span>代理收益</span>'
+                                } else if (d.type === 4) {
+                                    return '<span>排名收益</span>'
+                                }else if (d.type === 5) {
+                                    return '<span>总监收益</span>'
+                                }else if (d.type === 6) {
+                                    return '<span>社区店补</span>'
+                                }else if (d.type === 7) {
+                                    return '<span>一代收益</span>'
+                                }else if (d.type === 8) {
+                                    return '<span>提现</span>'
+                                }else if (d.type === 9) {
+                                    return '<span>转账</span>'
+                                }else if (d.type === 10) {
+                                    return '<span>余额支付</span>'
+                                }else if (d.type === 11) {
+                                    return '<span>退款</span>'
+                                }else if (d.type === 12) {
+                                    return '<span>佣金转竞猜积分</span>'
+                                }else if (d.type === 13) {
+                                    return '<span>佣金转余额</span>'
+                                }else if (d.type === 14) {
+                                    return '<span>竞猜积分签到</span>'
+                                }else if (d.type === 15) {
+                                    return '<span>感恩奖</span>'
+                                }else if (d.type === 16) {
+                                    return '<span>系统拨付</span>'
+                                }else if (d.type === 17) {
+                                    return '<span>抽奖</span>'
+                                }else if (d.type === 18) {
+                                    return '<span>充值</span>'
+                                }else if (d.type === 19) {
+                                    return '<span>收益</span>'
+                                }else if (d.type === 20) {
+                                    return '<span>赠送金额</span>'
+                                }else if (d.type === 21) {
+                                    return '<span>微信支付</span>'
+                                }else if (d.type === 22) {
+                                    return '<span>微信退款</span>'
+                                }else{
+                                    return ''
+                                }
                             }
                         }, minWidth: 80,align:'center'},
-                    // {field: 'flowType', title: '资金类型',
-                    //     templet: function (d) {
-                    //         if (d.flowType === 1) {
-                    //             return '余额';
-                    //         } else if(d.flowType === 2) {
-                    //             return '赠送积分'
-                    //         } else if(d.flowType === 3) {
-                    //             return '竞猜积分'
-                    //         } else if(d.flowType === 4) {
-                    //             return '佣金'
-                    //         } else {
-                    //             return '-';
-                    //         }
-                    //     }, minWidth: 80,align:'center'},
+                    {field: 'flowType', title: '资金类型',
+                        templet: function (d) {
+                            if (d.flowType === 1) {
+                                return '余额';
+                            } else if(d.flowType === 3) {
+                                return '积分'
+                            } else {
+                                return '-';
+                            }
+                        }, minWidth: 80,align:'center'},
                     {field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'},
                     {field: 'createdTime', title: '创建时间', minWidth: 180,align:'center'}
                 ]]
@@ -238,7 +244,7 @@
                 name: $searchForm.find('input[name="name"]').val().trim(),
                 phone: $searchForm.find('input[name="phone"]').val().trim(),
                 type: $searchForm.find("select[name='type']").val(),
-                // flowType: $searchForm.find("select[name='flowType']").val(),
+                flowType: $searchForm.find("select[name='flowType']").val(),
             };
         }
 

--
Gitblit v1.9.1