fix
Hentua
2024-02-19 d188e9fa2f3ff0a099df4233f7fc2b6be8305937
fix
4 files modified
99 ■■■■■ changed files
src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java 23 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html 7 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html 9 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html 60 ●●●●● patch | view | raw | blame | history
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());
                }
                    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);
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>
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>
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,6 +154,17 @@
                    {field: 'amount', title: '金额', minWidth: 150,align:'left', totalRow:true},
                    {field: 'type', title: '流水类型',
                        templet: function (d) {
                            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) {
@@ -203,21 +212,18 @@
                            }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(),
            };
        }