KKSU
2024-12-23 54262ec578ab0aabe8d3ae78a4d4180ba12ac300
feat(mall): 增加会员等级互相转账功能

- 在 RunVip 模型中添加 insideState 字段,用于控制是否允许内转
- 在 ApiMallMemberServiceImpl 中使用 insideState替代 withdrawState 判断用户是否允许兑换碳币
- 在 ApiRunVipVo 中添加 insideState 字段的序列化
- 更新前端模板,在会员等级添加和编辑页面添加互相转账选项
5 files modified
33 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/entity/RunVip.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/ApiRunVipVo.java 2 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/runVip/vipAdd.html 13 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/runVip/vipEdit.html 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/RunVip.java
@@ -25,6 +25,8 @@
    private Integer withdrawState;//是否允许碳币提现 1是0否
    private Integer insideState;//是否允许内转 1-是0-否
    private BigDecimal growthValue;//每日碳积分增长倍数
    private Integer growthCnt;//每日获取碳积分最大值
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -495,7 +495,7 @@
         * 用户的等级level是否允许兑换碳币
         */
        RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
        if(ObjectUtil.isEmpty(runVip) || runVip.getWithdrawState() != YesOrNoEnum.YES.getValue()){
        if(ObjectUtil.isEmpty(runVip) || runVip.getInsideState() != YesOrNoEnum.YES.getValue()){
            throw new FebsException("请先升级会员");
        }
src/main/java/cc/mrbird/febs/mall/vo/ApiRunVipVo.java
@@ -30,6 +30,8 @@
    private Integer changeState;//是否允许碳积分兑换碳币 1是0否
    @ApiModelProperty(value = "是否允许碳币提现 1是0否")
    private Integer withdrawState;//是否允许碳币提现 1是0否
    @ApiModelProperty(value = "是否允许内转 1-是0-否")
    private Integer insideState;//是否允许内转 1-是0-否
    @ApiModelProperty(value = "每日碳积分增长倍数")
    private BigDecimal growthValue;//每日碳积分增长倍数
    @ApiModelProperty(value = "每日获取碳积分最大值")
src/main/resources/templates/febs/views/modules/runVip/vipAdd.html
@@ -127,6 +127,19 @@
        <div class="layui-form-item">
            <div class="layui-col-lg6">
                <label class="layui-form-label febs-form-item-require">互相转账:</label>
                <div class="layui-input-block">
                    <select name="insideState" class="valid-type" lay-filter="type-select">
                        <option value="1">允许</option>
                        <option value="0">不允许</option>
                    </select>
                    <div class="layui-form-mid layui-word-aux">是否允许互相转账碳币。</div>
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-col-lg6">
                <label class="layui-form-label febs-form-item-require">碳币提现:</label>
                <div class="layui-input-block">
                    <select name="withdrawState" class="valid-type" lay-filter="type-select">
src/main/resources/templates/febs/views/modules/runVip/vipEdit.html
@@ -127,6 +127,19 @@
        <div class="layui-form-item">
            <div class="layui-col-lg6">
                <label class="layui-form-label febs-form-item-require">互相转账:</label>
                <div class="layui-input-block">
                    <select name="insideState" class="valid-type" lay-filter="type-select">
                        <option value="1">允许</option>
                        <option value="0">不允许</option>
                    </select>
                    <div class="layui-form-mid layui-word-aux">是否允许互相转账碳币。</div>
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-col-lg6">
                <label class="layui-form-label febs-form-item-require">碳币提现:</label>
                <div class="layui-input-block">
                    <select name="withdrawState" class="valid-type" lay-filter="type-select">
@@ -172,6 +185,7 @@
                "state":runVip.state,
                "changeState":runVip.changeState,
                "withdrawState" : runVip.withdrawState,
                "insideState" : runVip.insideState,
                "growthValue" : runVip.growthValue,
                "growthCnt" : runVip.growthCnt,
                "rebatePercent" : runVip.rebatePercent