xiaoyong931011
2023-04-06 5ed10e400440b46f3427613984a84c978a1ecd89
测试环境
3 files modified
2 files added
260 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java 41 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java 34 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/hlmVoucherButton.html 121 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/perkSet.html 62 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum;
import cc.mrbird.febs.common.enumerates.PerkEnum;
import cc.mrbird.febs.common.service.ValidateCodeService;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
@@ -13,6 +14,7 @@
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.vo.AdminPerkSetVo;
import cc.mrbird.febs.monitor.service.ILoginLogService;
import cc.mrbird.febs.system.service.IUserService;
import cn.hutool.core.date.DateUtil;
@@ -120,4 +122,43 @@
        model.addAttribute("indexData", data);
        return FebsUtil.view("modules/system/indexData");
    }
    @GetMapping("perkSet")
    @RequiresPermissions("perkSet:view")
    public String perkSet(Model model) {
        AdminPerkSetVo adminPerkSetVo = new AdminPerkSetVo();
        DataDictionaryCustom buySetMealPerkPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PerkEnum.BUY_SET_MEAL_PERK_PERCENT.getType(),
                PerkEnum.BUY_SET_MEAL_PERK_PERCENT.getCode());
        if (buySetMealPerkPercentDic != null) {
            adminPerkSetVo.setBuySetMealPerkPercent(buySetMealPerkPercentDic.getValue());
        }
        DataDictionaryCustom directCashPerkPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PerkEnum.DIRECT_CASH_PERK_PERCENT.getType(),
                PerkEnum.DIRECT_CASH_PERK_PERCENT.getCode());
        if (directCashPerkPercentDic != null) {
            adminPerkSetVo.setDirectCashPerkPercent(directCashPerkPercentDic.getValue());
        }
        DataDictionaryCustom directScorePerkPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PerkEnum.DIRECT_SCORE_PERK_PERCENT.getType(),
                PerkEnum.DIRECT_SCORE_PERK_PERCENT.getCode());
        if (directScorePerkPercentDic != null) {
            adminPerkSetVo.setDirectScorePerkPercent(directScorePerkPercentDic.getValue());
        }
        DataDictionaryCustom directorCashPerkPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PerkEnum.DIRECTOR_CASH_PERK_PERCENT.getType(),
                PerkEnum.DIRECTOR_CASH_PERK_PERCENT.getCode());
        if (directorCashPerkPercentDic != null) {
            adminPerkSetVo.setDirectorCashPerkPercent(directorCashPerkPercentDic.getValue());
        }
        DataDictionaryCustom partnerCashPerkPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PerkEnum.PARTNER_CASH_PERK_PERCENT.getType(),
                PerkEnum.PARTNER_CASH_PERK_PERCENT.getCode());
        if (partnerCashPerkPercentDic != null) {
            adminPerkSetVo.setPartnerCashPerkPercent(partnerCashPerkPercentDic.getValue());
        }
        model.addAttribute("adminPerkSet", adminPerkSetVo);
        return FebsUtil.view("modules/system/perkSet");
    }
}
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -272,6 +272,7 @@
            BigDecimal perkEnumDicPercent = new BigDecimal(perkEnumDic.getValue() == null ? "0" : perkEnumDic.getValue());
            //获得数量
            BigDecimal perkEnumDicPercentPerk = perkEnumDicPercent.multiply(AppContants.PERCENTAGE).multiply(amountTC).setScale(2, BigDecimal.ROUND_DOWN);
            if(perkEnumDicPercentPerk.compareTo(BigDecimal.ZERO) > 0){
            //增加
            iApiMallMemberWalletService.add(perkEnumDicPercentPerk,memberId,walletField);
            //增加一个流水记录
@@ -284,6 +285,7 @@
                    AppContants.IS_RETURN_YES);
        }
    }
    }
    /**
     *  按照级别,根据订单金额去加权平分
src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java
New file
@@ -0,0 +1,34 @@
package cc.mrbird.febs.mall.vo;
import lombok.Data;
@Data
public class AdminPerkSetVo {
    /**
     * 购买套餐,给购买人固定比例的积分
     * BUY_SET_MEAL_PERK_PERCENT
     */
    private String buySetMealPerkPercent;
    /**
     * 直推固定比例 现金比例
     * DIRECT_CASH_PERK_PERCENT
     */
    private String directCashPerkPercent;
    /**
     * 直推固定比例 积分比例
     * DIRECT_SCORE_PERK_PERCENT
     */
    private String directScorePerkPercent;
    /**
     * 合伙人享全公司入单分红5%加权(现金)
     * PARTNER_CASH_PERK_PERCENT
     */
    private String partnerCashPerkPercent;
    /**
     * 董事享受全公司入单分红2%加权(现金)
     * DIRECTOR_CASH_PERK_PERCENT
     */
    private String directorCashPerkPercent;
}
src/main/resources/templates/febs/views/modules/system/hlmVoucherButton.html
New file
@@ -0,0 +1,121 @@
<div class="layui-fluid layui-anim febs-anim" id="hlm-voucher-button" lay-title="一键卖出">
    <div class="layui-row layui-col-space8 febs-container">
        <form class="layui-form" action="" lay-filter="hlm-voucher-button-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <blockquote class="layui-elem-quote blue-border">绿色积分凭证</blockquote>
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <label class="layui-form-label febs-form-item-require">价格:</label>
                            <div class="layui-form-mid layui-word-aux">当前价格:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="scorePrice" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                    </div>
                    <blockquote class="layui-elem-quote blue-border">提现设置,提现时,是否需要凭证</blockquote>
                    <div class="layui-col-lg6">
                        <label class="layui-form-label febs-form-item-require">需要凭证:</label>
                        <div class="layui-input-block">
                            <input type="radio" name="voucherOnOff" value="1" title="是"  lay-filter="hasVoucher"/>
                            <input type="radio" name="voucherOnOff" value="2" title="否"  lay-filter="hasVoucher" checked />
                        </div>
                    </div>
                    <div class="layui-form-item voucher-percent-input febs-hide">
                        <label class="layui-form-label">凭证比例:</label>
                        <div class="layui-input-block">
                            <input type="text" name="voucherPercent" placeholder="" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                    <div class="layui-card-footer">
                        <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="hlm-voucher-button-submit" id="submit">保存</button>
                            <div class="layui-btn layui-btn-warm table-action" id="voucherButton">
                                确认一键卖出
                            </div>
                    </div>
                    <div class="layui-card-footer">
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>
<style>
    .layui-form-label {
        width: 120px;
    }
    .layui-form-item .layui-input-block {
        margin-left: 150px;
    }
    .layui-table-form .layui-form-item {
        margin-bottom: 20px !important;
    }
</style>
<script data-th-inline="javascript" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'febs', 'form', 'eleTree'], function () {
        var $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            $view = $('#hlm-voucher-button'),
            hlmVoucherButton = [[${hlmVoucherButtonDto}]],
            $voucherButton = $view.find('#voucherButton'),
            $view = $('#hlm-voucher-button');
        form.verify({
            integer: [
                /^[1-9]\d*$/
                , '只能输入正整数'
            ]
        });
        initHlmVoucherButtonValue();
        $voucherButton.on('click', function () {
            febs.modal.confirm('确认一键卖出', '点击【确定】,即强制卖出所有账户的一半积分凭证?', function () {
                selaHalfVoucher();
            });
        });
        function selaHalfVoucher() {
            febs.post(ctx + 'admin/system/selaHalfVoucher', null, function (res) {
                febs.alert.success('设置成功');
                return ;
            });
        }
        form.on('radio(hasVoucher)', function(data){
            if (data.value == 2) {
                $('.voucher-percent-input').hide();
            } else {
                $('.voucher-percent-input').show();
            }
        });
        form.render();
        function initHlmVoucherButtonValue() {
            form.val("hlm-voucher-button-form", {
                "scorePrice": hlmVoucherButton.scorePrice,
                "voucherOnOff": hlmVoucherButton.voucherOnOff,
                "voucherPercent": hlmVoucherButton.voucherPercent,
            });
            if (hlmVoucherButton.voucherOnOff == 1) {
                $(".voucher-percent-input").show();
            }
        }
        form.on('submit(hlm-voucher-button-submit)', function (data) {
            febs.post(ctx + 'admin/system/hlmVoucherButton', data.field, function (res) {
                febs.alert.success('设置成功');
                return ;
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/modules/system/perkSet.html
@@ -3,21 +3,50 @@
        <form class="layui-form" action="" lay-filter="perk-set-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <blockquote class="layui-elem-quote blue-border">补贴比例设置(比例为百分比,例如:20,即获得订单中对应金额*20%的积分。)</blockquote>
                    <div class="layui-form-item">
                        <label class="layui-form-label ">增加到积分池比例:</label>
                        <div class="layui-input-block">
                            <input type="text" name="everydayRatio" data-th-id="${scorePoor.everydayRatio}"
                                   lay-verify="number" autocomplete="off" class="layui-input" >
                        <div class="layui-inline">
                            <label class="layui-form-label febs-form-item-require">购买人:</label>
                            <div class="layui-form-mid layui-word-aux">获得【积分】比例:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="buySetMealPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                        </div>
                        <div class="layui-word-aux" style="margin-left: 150px;">【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25</div>
                            <div class="layui-form-mid layui-word-aux">%。</div>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label ">每日平分百分比:</label>
                        <div class="layui-input-block">
                            <input type="text" name="dividEquallyRatio" data-th-id="${scorePoor.dividEquallyRatio}"
                                   lay-verify="number" autocomplete="off" class="layui-input" >
                        <div class="layui-inline">
                            <label class="layui-form-label febs-form-item-require">直推:</label>
                            <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="directCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                        </div>
                        <div class="layui-word-aux" style="margin-left: 150px;">【填写整数】积分池每日平分百分比:直接输入百分比,例如25%,直接输入25</div>
                            <div class="layui-form-mid layui-word-aux">%,获得【积分】比例:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="directScorePerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                            </div>
                            <div class="layui-form-mid layui-word-aux">%。</div>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <label class="layui-form-label febs-form-item-require">合伙人:</label>
                            <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="partnerCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                            </div>
                            <div class="layui-form-mid layui-word-aux">%。</div>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <label class="layui-form-label febs-form-item-require">董事:</label>
                            <div class="layui-form-mid layui-word-aux">获得【现金】比例:</div>
                            <div class="layui-input-inline">
                                <input type="text" name="directorCashPerkPercent" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input">
                            </div>
                            <div class="layui-form-mid layui-word-aux">%。</div>
                        </div>
                    </div>
                </div>
@@ -46,20 +75,23 @@
        var $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            scorePoor = [[${scorePoor}]],
            adminPerkSet = [[${adminPerkSet}]],
            validate = layui.validate,
            $view = $('#perk-set');
        form.verify(validate);
        initCashoutValue();
        initPerkSetValue();
        form.render();
        function initCashoutValue() {
        function initPerkSetValue() {
            form.val("perk-set-form", {
                "everydayRatio": scorePoor.everydayRatio,
                "dividEquallyRatio": scorePoor.dividEquallyRatio
                "buySetMealPerkPercent": adminPerkSet.buySetMealPerkPercent,
                "directCashPerkPercent": adminPerkSet.directCashPerkPercent,
                "directScorePerkPercent": adminPerkSet.directScorePerkPercent,
                "partnerCashPerkPercent": adminPerkSet.partnerCashPerkPercent,
                "directorCashPerkPercent": adminPerkSet.directorCashPerkPercent
            });
        }