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