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