xiaoyong931011
2023-08-11 75cd0d8aff31f28596a5b52c2686bc2afee46589
数据修改
12 files modified
2 files added
412 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java 21 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/MallSystemPayDto.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappWalletMineDao.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberInfoVo.java 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappMemberDao.xml 11 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappWalletMineDao.xml 6 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DataDictionaryCustomMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/mallSystemPay.html 102 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member.html 174 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.dto.AgentLevelSetUpdateDto;
import cc.mrbird.febs.dapp.dto.MallSystemPayDto;
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappSystemProfit;
@@ -177,4 +178,13 @@
        return dappMemberService.agentLevelSetUpdate(agentLevelSetUpdateDto);
    }
    /**
     * 代理列表-设置代理级别
     */
    @PostMapping("updateSystemPay")
    @ControllerEndpoint(operation = "会员列表-系统拨付", exceptionMessage = "操作失败")
    public FebsResponse agentLevelSetUpdate(@Valid MallSystemPayDto mallSystemPayDto) {
        return dappMemberService.updateSystemPay(mallSystemPayDto);
    }
}
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -8,12 +8,11 @@
import cc.mrbird.febs.dapp.entity.DappSystemProfit;
import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
import cc.mrbird.febs.dapp.mapper.DappSystemProfitDao;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.dapp.vo.AdminAgentLevelSetInfoVo;
import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
import cc.mrbird.febs.dapp.vo.DappMemberInfoVo;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -39,6 +38,8 @@
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final DappSystemProfitDao dappSystemProfitDao;
    private final DappMemberDao dappMemberDao;
    private final DappWalletCoinDao dappWalletCoinDao;
    private final DappWalletMineDao dappWalletMineDao;
    @GetMapping(value = "admin")
    @RequiresPermissions("admin:view")
@@ -238,4 +239,18 @@
        model.addAttribute("agentLevelSet", data);
        return FebsUtil.view("dapp/member-agent-level");
    }
    /**
     * 拨付
     * @return
     */
    @GetMapping("mallSystemPay/{type}/{id}")
    @RequiresPermissions("agentLevel:view")
    public String systemPay(@PathVariable long id, @PathVariable Integer type, Model model) {
        DappMemberInfoVo data = dappMemberDao.selectDappMemberInfoVoByMemberId(id);
        model.addAttribute("systemPay", data);
        model.addAttribute("type", type);
        return FebsUtil.view("dapp/mallSystemPay");
    }
}
src/main/java/cc/mrbird/febs/dapp/dto/MallSystemPayDto.java
New file
@@ -0,0 +1,18 @@
package cc.mrbird.febs.dapp.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "MallOrderRefundDto", description = "参数接收类")
public class MallSystemPayDto {
    private Long id;
    private BigDecimal balance;
    private BigDecimal addBalance;
    private Integer type;
}
src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
@@ -7,6 +7,12 @@
 */
@Getter
public enum FundFlowEnum {
    //系统操作资产包
    SYSTEM_PACKAGE("SYSTEM_PACKAGE", 29),
    //系统操作赠送积分
    SYSTEM_SCORE("SYSTEM_SCORE", 28),
    //系统操作余额
    SYSTEM_AMOUNT("SYSTEM_AMOUNT", 27),
    //每日获取金额(前端提示记录)
    AMOUNT_RECORD("AMOUNT_RECORD", 26),
    //卖出资产获得余额手续费
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -99,4 +99,5 @@
    List<DappMemberEntity> selectChildAgentList(@Param("inviteId")String inviteId, @Param("accountType")String accountType);
    DappMemberInfoVo selectDappMemberInfoVoByMemberId(@Param("memberId")long id);
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappWalletMineDao.java
@@ -21,4 +21,6 @@
    int updateWithLock(@Param("record") DappWalletMineEntity dappWalletMineEntity);
    List<DappWalletMineEntity> selectAmountThanZero();
    void addTotalAndaddAvailableById(@Param("amount") BigDecimal availableAmount, @Param("memberId") Long memberId);
}
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -82,4 +82,6 @@
    FebsResponse packageInfo();
    FebsResponse salePackage(SalePackageDto salePackageDto);
    FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -555,7 +555,7 @@
        if(ObjectUtil.isEmpty(dappMemberEntity)) {
            return new FebsResponse().fail().message("会员信息不存在");
        }
        dappMemberEntity.setActiveStatus(1);
        dappMemberEntity.setActiveStatus(2);
        dappMemberDao.updateById(dappMemberEntity);
        return new FebsResponse().success();
    }
@@ -823,6 +823,56 @@
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) {
        Long memberId = mallSystemPayDto.getId();
        DappMemberEntity mallMember = dappMemberDao.selectById(memberId);
        if(ObjectUtil.isEmpty(mallMember)){
            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
        }
        BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
        Integer type = mallSystemPayDto.getType();
        if (type == 1) {
            dappWalletCoinDao.addTotalAndaddAvailableById(memberId,bigDecimal);
            //插入流水
            DappFundFlowEntity amountFlow = new DappFundFlowEntity(
                    memberId,
                    bigDecimal,
                    FundFlowEnum.SYSTEM_AMOUNT.getCode(),
                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                    BigDecimal.ZERO);
            dappFundFlowDao.insert(amountFlow);
        } else if (type == 2) {
            dappWalletMineDao.addTotalAndaddAvailableById(bigDecimal,memberId);
            //插入流水
            DappFundFlowEntity amountFlow = new DappFundFlowEntity(
                    memberId,
                    bigDecimal,
                    FundFlowEnum.SYSTEM_SCORE.getCode(),
                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                    BigDecimal.ZERO);
            dappFundFlowDao.insert(amountFlow);
        } else if (type == 3) {
            BigDecimal balance = mallMember.getBalance();
            balance = balance.add(bigDecimal);
            mallMember.setBalance(balance);
            dappMemberDao.updateById(mallMember);
            //插入流水
            DappFundFlowEntity amountFlow = new DappFundFlowEntity(
                    memberId,
                    bigDecimal,
                    FundFlowEnum.SYSTEM_PACKAGE.getCode(),
                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                    BigDecimal.ZERO);
            dappFundFlowDao.insert(amountFlow);
        } else {
            throw new FebsException("参数错误");
        }
        return new FebsResponse().success();
    }
    public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
        List<List<String>> partitionedList = new ArrayList<>();
        int size = originalList.size();
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberInfoVo.java
@@ -10,6 +10,8 @@
@ApiModel(value = "DappMemberInfoVo", description = "会员信息")
public class DappMemberInfoVo {
    private Long id;
    @ApiModelProperty(value = "邀请码")
    private String inviteId;
@@ -28,4 +30,7 @@
    @ApiModelProperty(value = "赠送积分")
    private BigDecimal score;
    @ApiModelProperty(value = "资产")
    private BigDecimal balance;
}
src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -329,4 +329,15 @@
        select * from dapp_member
        where (find_in_set(#{inviteId}, referer_ids) or invite_id=#{inviteId}) and account_type=#{accountType}
    </select>
    <select id="selectDappMemberInfoVoByMemberId" resultType="cc.mrbird.febs.dapp.vo.DappMemberInfoVo">
        select a.id,
               a.balance balance,
               (IFNULL(b.available_amount, 0)) amount,
               (IFNULL(c.available_amount, 0)) score
        from dapp_member a
        left join dapp_wallet_coin b on a.id = b.member_id
        left join dapp_wallet_mine c on a.id = c.member_id
        where a.id = #{memberId}
    </select>
</mapper>
src/main/resources/mapper/dapp/DappWalletMineDao.xml
@@ -40,4 +40,10 @@
    <select id="selectAmountThanZero" resultType="cc.mrbird.febs.dapp.entity.DappWalletMineEntity">
        select * from dapp_wallet_mine where available_amount > 0
    </select>
    <update id="addTotalAndaddAvailableById">
        update dapp_wallet_mine
        set total_amount = total_amount + #{amount},
            available_amount = available_amount + #{amount}
        where member_id=#{memberId}
    </update>
</mapper>
src/main/resources/mapper/dapp/DataDictionaryCustomMapper.xml
@@ -37,6 +37,6 @@
    <select id="getAgentLevelOption" resultType="cc.mrbird.febs.dapp.vo.AdminAgentLevelOptionTreeVo">
        select a.code id,a.code name from data_dictionary_custom a
        where a.type='NODE_PERK'
        where a.type='TEAM_LEVEL'
    </select>
</mapper>
src/main/resources/templates/febs/views/dapp/mallSystemPay.html
New file
@@ -0,0 +1,102 @@
<style>
    #systemPay-update {
        padding: 20px 25px 25px 0;
    }
    #systemPay-update .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #systemPay-update #data-permission-tree-block {
        border: 1px solid #eee;
        border-radius: 2px;
        padding: 3px 0;
    }
    #systemPay-update .layui-treeSelect .ztree li span.button.switch {
        top: 1px;
        left: 3px;
    }
    #systemPay-update img{
        max-width:100px
    }
</style>
<div class="layui-fluid" id="systemPay-update">
    <form class="layui-form" action="" lay-filter="systemPay-update-form">
        <div class="layui-form-item febs-hide">
            <label class="layui-form-label febs-form-item-require">id:</label>
            <div class="layui-input-block">
                <input type="text" name="id">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">当前余额:</label>
            <div class="layui-input-block">
                <input type="number" name="balance" lay-verify="required" autocomplete="off" class="layui-input" readonly>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">拨付数目:</label>
            <div class="layui-input-block">
                <input type="number" name="addBalance" lay-verify="required" autocomplete="off" class="layui-input">
                <div class="layui-word-aux">输入负数即减少数量</div>
            </div>
        </div>
        <div class="layui-form-item febs-hide">
            <button class="layui-btn" lay-submit="" lay-filter="systemPay-update-form-submit" id="submit"></button>
        </div>
    </form>
</div>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            laydate = layui.laydate,
            eleTree = layui.eleTree,
            systemPay = [[${systemPay}]],
            type = [[${type}]],
            $view = $('#systemPay-update'),
            validate = layui.validate;
        form.render();
        laydate.render({
            elem: '#febs-form-group-date'
        });
        formSelects.render();
        initUserValue();
        function initUserValue() {
            var balance;
            if (type == 1) {
                balance = systemPay.amount
            } else if (type == 2) {
                balance = systemPay.score
            } else if (type ==3) {
                balance = systemPay.balance
            } else {
            }
            form.val("systemPay-update-form", {
                "id": systemPay.id,
                "balance": balance,
            });
        }
        form.on('submit(systemPay-update-form-submit)', function (data) {
            data.field.type = type;
            febs.post(ctx + 'member/updateSystemPay', data.field, function () {
                layer.closeAll();
                febs.alert.success('操作成功');
                $('#febs-member').find('#query').click();
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/dapp/member.html
@@ -58,42 +58,6 @@
    }}
    <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
</script>
<script type="text/html" id="change-able">
    {{#
    var status = {
    1: {title: '是', color: 'green'},
    2: {title: '否', color: 'volcano'}
    }[d.changeAble];
    }}
    <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
</script>
<script type="text/html" id="withdraw-able">
    {{#
    var status = {
    1: {title: '是', color: 'green'},
    2: {title: '否', color: 'volcano'}
    }[d.withdrawAble];
    }}
    <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
</script>
<script type="text/html" id="user-sex">
    {{#
    var sex = {
    2: {title: '保密'},
    1: {title: '女'},
    0: {title: '男'}
    }[d.sex];
    }}
    <span>{{ sex.title }}</span>
</script>
<script type="text/html" id="balance">
    <span name="balance">{{ d.balance }}</span></br>
    <span><a lay-event="freshBalance">刷新</a></span>
    <span><a shiro:hasPermission="member:showMeMoney" lay-event="changeMoney">提现</a></span>
</script>
<script type="text/html" id="approve-list">
    <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.address}}</a>
</script>
<script type="text/html" id="switchActiveStatus">
    {{# if(d.activeStatus === 1) { }}
    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchActiveStatus">
@@ -103,15 +67,14 @@
</script>
<script type="text/html" id="tableMemberBar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="mallSystemPay:update" lay-event="coinAmount">拨付余额</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="mallSystemPay:update" lay-event="scoreAmount">拨付赠送积分</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevelSet:update" lay-event="balance">拨付资产包</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevelSet:update" lay-event="agentLevel">设置代理等级</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevel:view" lay-event="coinAmount">拨付余额</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevel:view" lay-event="scoreAmount">拨付赠送积分</button>
        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevel:view" lay-event="balance">拨付资产包</button>
    </div>
</script>
<script type="text/html" id="mallmember-option">
    <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevel:view" lay-event="agentLevel">设置代理等级</button>
    <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="agentLevel:view" lay-event="agentLevel">设置会员级别</button>
</script>
<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
@@ -132,21 +95,21 @@
        initTable();
        // table.on('tool(memberTable)', function (obj) {
        //     var data = obj.data,
        //         layEvent = obj.event;
        //     if (layEvent === 'agentLevel') {
        //         febs.modal.open('设置代理级别', 'dappView/agentLevel/' + data.id, {
        //             btn: ['确认', '取消'],
        //             yes: function (index, layero) {
        //                 $('#agent-level-set').find('#submit').trigger('click');
        //             },
        //             btn2: function () {
        //                 layer.closeAll();
        //             }
        //         });
        //     }
        // });
        table.on('tool(memberTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
            if (layEvent === 'agentLevel') {
                febs.modal.open('设置代理级别', 'dappView/agentLevel/' + data.id, {
                    btn: ['确认', '取消'],
                    yes: function (index, layero) {
                        $('#agent-level-set').find('#submit').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
            }
        });
        table.on('sort(memberTable)', function (obj) {
            sortObject = obj;
@@ -191,13 +154,12 @@
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'memberTable',
                url: ctx + 'member/list',
                // toolbar:"#tableMemberBar",
                toolbar:"#tableMemberBar",
                defaultToolbar:[],
                totalRow: true,
                totalRow: true ,// 开启合计行
                cols: [[
                    {type: 'checkbox'},
                    // {title: '代理级别',
@@ -223,8 +185,34 @@
            var data = obj.data,
                layEvent = obj.event;
            if (layEvent === 'coinAmount') {
                var checkData = table.checkStatus('memberTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                systemPay("余额", checkData[0].id, 1);
            }
            if (layEvent === 'scoreAmount') {
                var checkData = table.checkStatus('memberTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                systemPay("赠送积分", checkData[0].id, 2);
            }
            if (layEvent === 'balance') {
                var checkData = table.checkStatus('userTable').data;
                var checkData = table.checkStatus('memberTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
@@ -233,73 +221,13 @@
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                systemPay("修改余额", checkData[0].id, 1);
            }
            if (layEvent === 'voucherUpdate') {
                var checkData = table.checkStatus('userTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                voucherUpdate("拨付绿色凭证", checkData[0].id, 1);
            }
            if (layEvent === 'score') {
                var checkData = table.checkStatus('userTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                systemPay("修改赠送积分", checkData[0].id, 2);
            }
            if (layEvent === 'prizeScore') {
                var checkData = table.checkStatus('userTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                systemPay("修改竞猜积分", checkData[0].id, 3);
            }
            if (layEvent === 'agentLevel') {
                var checkData = table.checkStatus('userTable').data;
                if (checkData.length <= 0) {
                    febs.alert.warn('请选择需要的用户');
                    return;
                }
                if (checkData.length > 1) {
                    febs.alert.warn('请选择一个用户');
                    return;
                }
                febs.modal.open('设置代理级别', 'modules/mallMember/agentLevelSet/' + checkData[0].id, {
                    btn: ['确认', '取消'],
                    yes: function (index, layero) {
                        $('#agent-level-set').find('#submit').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
                systemPay("资产包", checkData[0].id, 3);
            }
        });
        function systemPay(text, id, type) {
            febs.modal.open('text', 'modules/mallMember/mallSystemPay/' + type +'/'+ id, {
                btn: ['提交', '取消'],
            febs.modal.open(text, 'dappView/mallSystemPay/' + type +'/'+ id, {
                btn: ['确认', '取消'],
                yes: function (index, layero) {
                    $('#systemPay-update').find('#submit').trigger('click');
                },