xiaoyong931011
2023-05-19 0e1f10a6247e9db16c66972fa9d45f93b3573fc9
twoCoin项目修改
20 files modified
1 files added
390 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberNodeMapper.java 5 ●●●●● 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 32 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemFeeVo.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberNodeVo.java 8 ●●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappMemberNodeMapper.xml 15 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/error/403.html 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/error/404.html 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/error/500.html 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member-node-Info.html 40 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member.html 29 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/money-change-flow.html 121 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/system-fee-set.html 68 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/layout.html 2 ●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/login.html 4 ●●●● patch | view | raw | blame | history
src/main/resources/templates/index.html 8 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -44,7 +44,7 @@
            log.error("| |_   / /\\  | | | |");
            log.error("|_|   /_/--\\ |_| |_|__");
            log.error("                        ");
            log.error("BNBWEB启动失败,{}", e.getMessage());
            log.error("系统启动失败,{}", e.getMessage());
            log.error("Redis连接异常,请检查Redis连接配置并确保Redis服务已启动");
            // 关闭 FEBS
            context.close();
@@ -63,7 +63,7 @@
            log.info("/ /`  / / \\ | |\\/| | |_) | |   | |_   | |  | |_  ");
            log.info("\\_\\_, \\_\\_/ |_|  | |_|   |_|__ |_|__  |_|  |_|__ ");
            log.info("                                                      ");
            log.info("BNBWEB 权限系统启动完毕,地址:{}", url);
            log.info("系统启动完毕,地址:{}", url);
            boolean auto = febsProperties.isAutoOpenBrowser();
            if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) {
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -129,4 +129,17 @@
        Map<String, Object> data = getDataTable(dappMemberService.getTeamInfo(dappMemberEntity,request));
        return new FebsResponse().success().data(data);
    }
    /**
     * 用户列表-购买记录
     */
    @GetMapping("memberNodeInfo")
    public FebsResponse memberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request, Integer parentId) {
        if (parentId == null) {
            ViewController.memberNodeInfoMemberId = 0L;
        }
        dappMemberEntity.setId(ViewController.memberNodeInfoMemberId);
        Map<String, Object> data = getDataTable(dappMemberService.getMemberNodeInfo(dappMemberEntity,request));
        return new FebsResponse().success().data(data);
    }
}
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -152,6 +152,13 @@
            String value = symbolPrice.getValue() == null ? "0" : symbolPrice.getValue();
            adminSystemFeeVo.setSymbolPrice(value);
        }
        DataDictionaryCustom directProfitDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.DIRECT_PROFIT.getType(), DataDictionaryEnum.DIRECT_PROFIT.getCode());
        if (ObjectUtil.isNotEmpty(directProfitDic)) {
            String value = directProfitDic.getValue() == null ? "0" : directProfitDic.getValue();
            adminSystemFeeVo.setDirectProfit(value);
        }
        model.addAttribute("systemFee", adminSystemFeeVo);
        return FebsUtil.view("dapp/system-fee-set");
    }
@@ -194,4 +201,20 @@
        teamInfoMemberId = id;
        return FebsUtil.view("dapp/member-teamInfo");
    }
    public static long memberNodeInfoMemberId;
    /**
     * 用户列表-购买记录
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/memberNodeInfo/{id}")
    @RequiresPermissions("memberNodeInfo:view")
    public String memberNodeInfo(@PathVariable long id, Model model) {
        memberNodeInfoMemberId = id;
        return FebsUtil.view("dapp/member-node-Info");
    }
}
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -111,4 +111,10 @@
    @TableField(exist = false)
    private Long systemProfitId;
    @TableField(exist = false)
    private int memberNodeCnt;
    @TableField(exist = false)
    private BigDecimal memberNodeSumPrice;
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberNodeMapper.java
@@ -1,8 +1,12 @@
package cc.mrbird.febs.dapp.mapper;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappMemberNodeEntity;
import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo;
import cc.mrbird.febs.dapp.vo.DappMemberNodeVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +23,5 @@
    DappMemberNodeEntity selectNodeByMemberIdAndNodeCode(@Param("memberId")Long id, @Param("nodeCode")String code);
    IPage<DappMemberNodeVo> findMemberNodeInPage(Page<DappMemberNodeVo> page, @Param("record")DappMemberEntity dappMemberEntity);
}
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -65,4 +65,6 @@
    FebsResponse getMemberNode();
    FebsResponse getMemberInfo();
    IPage<DappMemberNodeVo> getMemberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -210,15 +210,21 @@
        if(CollUtil.isNotEmpty(records)){
            for(DappMemberEntity memberEntity : records){
                Long memberId = memberEntity.getId();
                DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectByMemberIdAndState(memberId,DappSystemProfit.STATE_IN);
                memberEntity.setSystemProfitId(ObjectUtil.isEmpty(dappSystemProfit) ? 0L : dappSystemProfit.getId());
                //直推收益
                BigDecimal directProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,3,2);
                memberEntity.setDirectProfit(directProfit);
                BigDecimal levelProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,4,2);
                memberEntity.setLevelProfit(levelProfit);
                BigDecimal luckyProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,7,2);
                memberEntity.setLuckyProfit(luckyProfit);
                //购买节点数量
                List<DappMemberNodeVo> dappMemberNodeVos = dappMemberNodeMapper.selectListByMemberId(memberId);
                memberEntity.setMemberNodeCnt(CollUtil.isEmpty(dappMemberNodeVos) ? 0 : dappMemberNodeVos.size());
                BigDecimal memberNodeSumPrice = BigDecimal.ZERO;
                if(CollUtil.isNotEmpty(dappMemberNodeVos)){
                    for(DappMemberNodeVo dappMemberNodeVo : dappMemberNodeVos){
                        BigDecimal nodePrice = dappMemberNodeVo.getNodePrice();
                        memberNodeSumPrice = memberNodeSumPrice.add(nodePrice);
                    }
                }
                memberEntity.setMemberNodeSumPrice(memberNodeSumPrice.setScale(8,BigDecimal.ROUND_DOWN));
            }
        }
        return dappMemberEntityIPage;
@@ -400,6 +406,12 @@
        DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode());
        symbolPriceDic.setValue(symbolPrice);
        dataDictionaryCustomMapper.updateById(symbolPriceDic);
        String directProfit = adminSystemFeeVo.getDirectProfit();
        DataDictionaryCustom directProfitDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.DIRECT_PROFIT.getType(), DataDictionaryEnum.DIRECT_PROFIT.getCode());
        directProfitDic.setValue(directProfit);
        dataDictionaryCustomMapper.updateById(directProfitDic);
    }
    @Override
@@ -498,6 +510,12 @@
        return new FebsResponse().success().data(dappMemberInfoVo);
    }
    @Override
    public IPage<DappMemberNodeVo> getMemberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request) {
        Page<DappMemberNodeVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        return dappMemberNodeMapper.findMemberNodeInPage(page, dappMemberEntity);
    }
    public TeamListVo buildTeamMatrix(Long memberId) {
        DappMemberEntity member = dappMemberDao.selectById(memberId);
        TeamListVo teamListVo = new TeamListVo();
src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemFeeVo.java
@@ -14,4 +14,6 @@
    private String serviceFee;
    private String symbolPrice;
    //直推奖励百分比
    private String directProfit;
}
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberNodeVo.java
@@ -1,10 +1,12 @@
package cc.mrbird.febs.dapp.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel(value = "DappMemberNodeVo", description = "会员节点购买信息")
@@ -25,4 +27,10 @@
     */
    @ApiModelProperty(value = "节点价格")
    private BigDecimal nodePrice;
    /**
     * 购买时间
     */
    @ApiModelProperty(value = "购买时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
}
src/main/resources/application-dev.yml
@@ -54,7 +54,7 @@
    publisher-confirm-type: correlated
system:
  online-transfer: true
  online-transfer: false
  chain-listener: false
  reset-job: false
  quartz-job: false
src/main/resources/mapper/dapp/DappMemberNodeMapper.xml
@@ -5,6 +5,7 @@
    <select id="selectListByMemberId" resultType="cc.mrbird.febs.dapp.vo.DappMemberNodeVo">
        select
            a.node_code nodeCode,
            a.create_time createTime,
            b.node_name nodeName,
            a.node_price nodePrice
        from dapp_member_node a
@@ -27,4 +28,18 @@
        and a.node_code = #{nodeCode}
    </select>
    <select id="findMemberNodeInPage" resultType="cc.mrbird.febs.dapp.vo.DappMemberNodeVo">
        select
            a.node_code nodeCode,
            a.create_time createTime,
            b.node_name nodeName,
            a.node_price nodePrice
        from dapp_member_node a
                 inner join dapp_node_order b on a.node_id = b.id
        where a.member_id = #{record.id}
        order  by a.create_time desc
    </select>
</mapper>
src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>BNBWEB 权限系统</title>
    <title>ANT 权限系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
src/main/resources/templates/error/404.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>BNBWEB 权限系统</title>
    <title>ANT 权限系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>BNBWEB 权限系统</title>
    <title>ANT 权限系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
src/main/resources/templates/febs/views/dapp/member-node-Info.html
New file
@@ -0,0 +1,40 @@
<div className="layui-fluid layui-anim febs-anim" id="febs-memberNode-info" lay-title="购买记录">
    <div className="layui-row febs-container">
        <div className="layui-col-md12">
            <div className="layui-card">
                <div className="layui-card-body febs-table-full">
                    <table lay-filter="memberNodeInfoChild" lay-data="{id: 'memberNodeInfoChild'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<script data-th-inline="none" type="text/javascript">
    layui.use(['jquery', 'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            $view = $('#febs-memberNode-info'),
            tableIns;
        form.render();
        initTable();
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'memberNodeInfoChild',
                url: ctx + 'member/memberNodeInfo?parentId=1',
                totalRow: true,
                cols: [[
                    {field: 'nodeName', title: '节点名称', minWidth: 100},
                    {field: 'nodePrice', title: '价格', minWidth: 100, totalRow: true},
                    {field: 'createTime', title: '购买时间', minWidth: 100},
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/dapp/member.html
@@ -8,8 +8,8 @@
                            <div class="layui-col-md10">
                                <div class="layui-form-item">
                                    <div class="layui-inline">
                                        <div class="layui-input-inline">
                                            <input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码"  class="layui-input">
                                        <label class="layui-form-label">地址邀请码:</label>
                                        <div class="layui-input-inline"><input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码"  class="layui-input">
                                        </div>
                                    </div>
<!--                                    <div class="layui-inline">-->
@@ -171,6 +171,12 @@
                    maxmin: true,
                });
            }
            if (layEvent === 'memberNodeInfo') {
                febs.modal.open( '购买记录', 'dappView/memberNodeInfo/' + data.id, {
                    maxmin: true,
                });
            }
            if (layEvent === 'accountStatus') {
                var text = "是否启用该用户?";
                if (data.accountStatus === 1) {
@@ -255,26 +261,18 @@
                url: ctx + 'member/list',
                totalRow: true,
                cols: [[
                    // {type: 'checkbox'},
                    // {type: 'numbers'},
                    {title: '代理级别',
                        templet: function (d) {
                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="teamInfo" shiro:hasPermission="teamInfo:view"><span>'+d.accountType+'</span></button>'
                            return '<span class="layui-btn layui-btn-normal layui-btn-xs">'+d.accountType+'</span>'
                        },minWidth: 130,align:'center', totalRowText: '合计'},
                    // {title: '地址', templet: '#approve-list', minWidth: 400},
                    {field: 'address', title: '地址', minWidth: 400},
                    {field: 'chainType', title: '所属链', minWidth: 130},
                    {field: 'activeStatus', title: '加入动能',
                    {field: 'memberNodeSumPrice', title: '拥有积分', minWidth: 130},
                    {title: '购买节点数量',
                        templet: function (d) {
                            if (d.activeStatus === 1) {
                                return '<span style="color:green;">'+d.systemProfitId+'</span>'
                            } else{
                                return ''
                            }
                        }, minWidth: 80,align:'center'},
                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="memberNodeInfo" shiro:hasPermission="memberNodeInfo:view"><span>'+d.memberNodeCnt+'</span></button>'
                        },minWidth: 130,align:'center'},
                    {field: 'directProfit', title: '直推收益', minWidth: 100, totalRow: true},
                    {field: 'levelProfit', title: '层级收益', minWidth: 100, totalRow: true},
                    {field: 'luckyProfit', title: '出局收益', minWidth: 100, totalRow: true},
                    {field: 'inviteId', title: '邀请码', minWidth: 100},
                    {field: 'refererId', title: '上级邀请码', minWidth: 100},
                    {field: 'createTime', title: '创建时间', minWidth: 180}
@@ -285,7 +283,6 @@
        function getQueryParams() {
            return {
                inviteId: $searchForm.find('input[name="inviteId"]').val().trim(),
                // changeAble: $searchForm.find("select[name='changeAble']").val(),
                accountStatus: $searchForm.find("select[name='accountStatus']").val(),
                withdrawAble: $searchForm.find("select[name='withdrawAble']").val(),
                invalidate_ie_cache: new Date()
src/main/resources/templates/febs/views/dapp/money-change-flow.html
@@ -7,57 +7,31 @@
                        <div class="layui-row">
                            <div class="layui-col-md10">
                                <div class="layui-form-item">
                                    <div class="layui-inline">
                                        <label class="layui-form-label">地址:</label>
                                        <div class="layui-input-inline">
                                            <input type="text" name="systemProfitId" autocomplete="off" placeholder="输入动能编号" class="layui-input">
                                            <input type="text" placeholder="输入地址" name="address" autocomplete="off" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">转账HASH:</label>
                                        <div class="layui-input-inline">
                                            <input type="text" name="address" autocomplete="off" placeholder="输入地址" class="layui-input">
                                            <input type="text" placeholder="输入转账HASH" name="fromHash" autocomplete="off" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <div class="layui-input-inline">
                                            <input type="text" name="fromHash" autocomplete="off" placeholder="输入FromHash" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">类型</label>
                                        <label class="layui-form-label">类型:</label>
                                        <div class="layui-input-inline">
                                            <select name="type">
<!--                                                1-加入动能 2-技术方收益 3-直推收益 4-层级收益 5-剩余层级收益给系统 6-复投动能 7-动能收益-->
                                                <option value=""></option>
                                                <option value="1">加入动能</option>
                                                <option value="2">技术方收益</option>
                                                <option value="1">购买节点</option>
                                                <option value="3">直推收益</option>
                                                <option value="4">层级收益</option>
                                                <option value="5">剩余层级收益</option>
                                                <option value="6">复投动能</option>
                                                <option value="7">出局收益</option>
                                            </select>
                                        </div>
                                    </div>
<!--                                    <div class="layui-inline">-->
<!--                                        <label class="layui-form-label layui-form-label-sm">可兑换</label>-->
<!--                                        <div class="layui-input-inline">-->
<!--                                            <select name="changeAble">-->
<!--                                                <option value=""></option>-->
<!--                                                <option value="2">否</option>-->
<!--                                                <option value="1">是</option>-->
<!--                                            </select>-->
<!--                                        </div>-->
<!--                                    </div>-->
<!--                                    <div class="layui-inline">-->
<!--                                        <label class="layui-form-label layui-form-label-sm">可提现</label>-->
<!--                                        <div class="layui-input-inline">-->
<!--                                            <select name="withdrawAble">-->
<!--                                                <option value=""></option>-->
<!--                                                <option value="2">否</option>-->
<!--                                                <option value="1">是</option>-->
<!--                                            </select>-->
<!--                                        </div>-->
<!--                                    </div>-->
                                </div>
                            </div>
                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -76,31 +50,11 @@
        </div>
    </div>
</div>
<style>
    .layui-table-cell {
        height: auto !important;
    }
</style>
<script type="text/html" id="flow-status">
    {{#
    var status = {
    2: {title: '成功'},
    1: {title: '进行中'},
    3: {title: '取消'}
    }[d.status];
    }}
    <span>{{ status.title }}</span>
</script>
<script type="text/html" id="flow-type">
    {{#
    var type = {
    1: {title: '加入动能'},
    2: {title: '技术方收益'},
    1: {title: '购买节点'},
    3: {title: '直推收益'},
    4: {title: '层级收益'},
    5: {title: '剩余层级收益'},
    6: {title: '复投动能'},
    7: {title: '出局收益'},
    }[d.type];
    }}
    <span>{{ type.title }}</span>
@@ -116,13 +70,11 @@
    <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
</script>
<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
    layui.use(['jquery',  'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            dropdown = layui.dropdown,
            $view = $('#febs-money-change'),
            $query = $view.find('#query'),
            $reset = $view.find('#reset'),
@@ -137,35 +89,8 @@
        table.on('tool(moneyChangeTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
            // if (layEvent === 'transferManual') {
            //     febs.modal.confirm('人工操作', '是否人工转账?', function () {
            //         transferManual("flow/withdrawAgree/" + data.id);
            //     });
            // }
            if (layEvent === 'transferManual') {
                febs.modal.confirm('人工操作', '是否人工转账?', function () {
                    transferManual(data.id);
                });
            }
        });
        function transferManual(id) {
            febs.get(ctx + 'flow/transferManual/' + id, null, function () {
                febs.alert.success('操作成功');
                $reset.click();
            });
        }
        table.on('sort(moneyChangeTable)', function (obj) {
            sortObject = obj;
            tableIns.reload({
                initSort: obj,
                where: $.extend(getQueryParams(), {
                    field: obj.field,
                    order: obj.type
                })
            });
        });
        $query.on('click', function () {
            var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
@@ -184,7 +109,6 @@
                url: ctx + 'flow/fundFlow',
                cols: [[
                    {field: 'address', title: '地址', minWidth: 400},
                    {field: 'systemProfitId', title: '动能编号', minWidth: 100},
                    {title: '类型', minWidth: 100,templet: '#flow-type',align:'center'},
                    {field: 'amount', title: '金额',
                        templet: function (d) {
@@ -196,39 +120,20 @@
                                return d.amount
                            }
                        }, minWidth: 80,align:'center'},
                    // {field: 'fee', title: '手续费', minWidth: 80},
                    {field: 'createTime', title: '创建时间', minWidth: 150},
                    {title: '状态', templet: '#status-able', minWidth: 80},
                    {field: 'fromHash', title: 'FromHash', minWidth: 150},
                    // {title: '操作',
                    //     templet: function (d) {
                    //         if(d.status == 1){
                    //             return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="transferManual" shiro:hasPermission="transferManual:update">手动转账</button>'
                    //         }else{
                    //             return ''
                    //         }
                    //     },minWidth: 100,align:'center'}
                    {field: 'fromHash', title: '转账HASH', minWidth: 150},
                ]]
            });
        }
        function getQueryParams() {
            return {
                systemProfitId: $searchForm.find('input[name="systemProfitId"]').val().trim(),
                address: $searchForm.find('input[name="address"]').val().trim(),
                fromHash: $searchForm.find('input[name="fromHash"]').val().trim(),
                type: $searchForm.find("select[name='type']").val(),
                // accountStatus: $searchForm.find("select[name='accountStatus']").val(),
                // withdrawAble: $searchForm.find("input[name='withdrawAble']").val(),
                // invalidate_ie_cache: new Date()
                type: $searchForm.find("select[name='type']").val()
            };
        }
        function changeStatus(url) {
            febs.post(ctx + url, null, function () {
                febs.alert.success('设置成功');
                $query.click();
            });
        }
    })
</script>
src/main/resources/templates/febs/views/dapp/system-fee-set.html
@@ -3,41 +3,48 @@
        <form class="layui-form" action="" lay-filter="system-fee-set-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <div class="layui-form-item">
                        <label class="layui-form-label ">每日返利的产矿百分比:</label>
                        <div class="layui-input-block">
                            <input type="text" name="rebatePercent" data-th-id="${systemFee.rebatePercent}"
                                   autocomplete="off" class="layui-input" >
                        </div>
<!--                        <div class="layui-word-aux" style="margin-left: 150px;">-->
<!--                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25-->
<!--                    <div class="layui-form-item">-->
<!--                        <label class="layui-form-label ">每日返利的产矿百分比:</label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input type="text" name="rebatePercent" data-th-id="${systemFee.rebatePercent}"-->
<!--                                   autocomplete="off" class="layui-input" >-->
<!--                        </div>-->
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label ">分给推荐三人的终身VIP会员手续费:</label>
                        <div class="layui-input-block">
                            <input type="text" name="memberFee" data-th-id="${systemFee.memberFee}"
                                   autocomplete="off" class="layui-input" >
                        </div>
<!--                        <div class="layui-word-aux" style="margin-left: 150px;">-->
<!--                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25-->
<!--&lt;!&ndash;                        <div class="layui-word-aux" style="margin-left: 150px;">&ndash;&gt;-->
<!--&lt;!&ndash;                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25&ndash;&gt;-->
<!--&lt;!&ndash;                        </div>&ndash;&gt;-->
<!--                    </div>-->
<!--                    <div class="layui-form-item">-->
<!--                        <label class="layui-form-label ">分给推荐三人的终身VIP会员手续费:</label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input type="text" name="memberFee" data-th-id="${systemFee.memberFee}"-->
<!--                                   autocomplete="off" class="layui-input" >-->
<!--                        </div>-->
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label ">提现手续费:</label>
                        <div class="layui-input-block">
                            <input type="text" name="serviceFee" data-th-id="${systemFee.serviceFee}"
                                   autocomplete="off" class="layui-input" >
                        </div>
<!--                        <div class="layui-word-aux" style="margin-left: 150px;">-->
<!--                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25-->
<!--&lt;!&ndash;                        <div class="layui-word-aux" style="margin-left: 150px;">&ndash;&gt;-->
<!--&lt;!&ndash;                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25&ndash;&gt;-->
<!--&lt;!&ndash;                        </div>&ndash;&gt;-->
<!--                    </div>-->
<!--                    <div class="layui-form-item">-->
<!--                        <label class="layui-form-label ">提现手续费:</label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input type="text" name="serviceFee" data-th-id="${systemFee.serviceFee}"-->
<!--                                   autocomplete="off" class="layui-input" >-->
<!--                        </div>-->
                    </div>
<!--&lt;!&ndash;                        <div class="layui-word-aux" style="margin-left: 150px;">&ndash;&gt;-->
<!--&lt;!&ndash;                            【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25&ndash;&gt;-->
<!--&lt;!&ndash;                        </div>&ndash;&gt;-->
<!--                    </div>-->
<!--                    <div class="layui-form-item">-->
<!--                        <label class="layui-form-label ">DMD价格:</label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input type="text" name="symbolPrice" data-th-id="${systemFee.symbolPrice}"-->
<!--                                   autocomplete="off" class="layui-input" >-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-form-item">
                        <label class="layui-form-label ">DMD价格:</label>
                        <label class="layui-form-label febs-form-item-require">直推奖励:</label>
                        <div class="layui-input-block">
                            <input type="text" name="symbolPrice" data-th-id="${systemFee.symbolPrice}"
                                   autocomplete="off" class="layui-input" >
                            <input type="text" name="directProfit" lay-verify="required" placeholder="请输入直推奖励" autocomplete="off" class="layui-input" >
                            <div class="layui-word-aux">例:10%,填写0.1</div>
                        </div>
                    </div>
                </div>
@@ -79,6 +86,7 @@
        function initSystemFeeValue() {
            form.val("system-fee-set-form", {
                "directProfit": systemFee.directProfit,
                "rebatePercent": systemFee.rebatePercent,
                "memberFee": systemFee.memberFee,
                "serviceFee": systemFee.serviceFee,
src/main/resources/templates/febs/views/layout.html
@@ -63,7 +63,7 @@
        <div class="layui-side-scroll">
            <div class="layui-logo" style="cursor: pointer">
                <img data-th-src="@{febs/images/logo.png}">
                <span>BNBWEB 权限系统</span>
                <span>ANT 权限系统</span>
            </div>
            <script
                    type="text/html"
src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>BNBWEB 权限系统</title>
    <title>ANT 权限系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -19,7 +19,7 @@
        <div class="layui-container">
            <div class="layui-row">
                <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
                    <div class="layui-logo"><span><b>BNBWEB</b> 权限系统</span></div>
                    <div class="layui-logo"><span><b>ANT</b> 权限系统</span></div>
                </div>
                <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
                    <div class="layui-form" lay-filter="login-form">
src/main/resources/templates/index.html
@@ -3,7 +3,7 @@
      xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <meta charset="utf-8">
    <title>BNBWEB 权限系统</title>
    <title>ANT 权限系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -20,6 +20,12 @@
</head>
<body>
<div id="febs"></div>
<style type="text/css">
    ::-webkit-scrollbar {
        height: 20px !important;
        background-color: #f4f4f4;
    }
</style>
<script th:src="@{layui/layui.js}"></script>
<script th:inline="javascript">
    var ctx = [[@{/}]];