KKSU
2024-04-19 0005fc44abfc506716618f3f131b846c089a5906
后台优化
10 files modified
1 files added
238 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/AdminBannerController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewBannerController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/IAdminBannerService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminBannerServiceImpl.java 40 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 12 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappMemberDao.xml 16 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member-zhi-ya.html 9 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member.html 9 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/banner/inviteList.html 118 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/AdminBannerController.java
@@ -8,6 +8,7 @@
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.entity.DappCoinPrice;
import cc.mrbird.febs.dapp.entity.DappHdRecord;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.PlatformBanner;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappSystemService;
@@ -39,6 +40,15 @@
    private final ChainProducer chainProducer;
    /**
     * 邀请---列表
     */
    @GetMapping("inviteList")
    public FebsResponse inviteList(DappMemberEntity dappMemberEntity, QueryRequest request) {
        Map<String, Object> data = getDataTable(iAdminBannerService.inviteList(dappMemberEntity, request));
        return new FebsResponse().success().data(data);
    }
    /**
     * 价格---列表
     */
    @GetMapping("coinPrice")
src/main/java/cc/mrbird/febs/dapp/controller/ViewBannerController.java
@@ -29,6 +29,17 @@
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    /**
     * 邀请---列表
     */
    @GetMapping("inviteList")
    @RequiresPermissions("inviteList:view")
    public String inviteList() {
        return FebsUtil.view("modules/banner/inviteList");
    }
    public static long zhiyaID;
    @GetMapping("zhiYaItem/{id}")
    @RequiresPermissions("zhiYaItem:update")
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -62,9 +62,6 @@
    private String accountType;
    private BigDecimal usdtBalance;
    @TableField(exist = false)
    private BigDecimal zhiYaAmount;
    /**
     * 激活状态 1-已激活 2-未激活
     */
@@ -79,4 +76,9 @@
     * 1-是 2-否
     */
    private Integer makerType;
    @TableField(exist = false)
    private String refererAddress;
    @TableField(exist = false)
    private BigDecimal zhiYaAmount;
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -48,4 +48,6 @@
    void updateUsdtBalanceWithVersion(@Param("record")DappMemberEntity dappMemberEntity);
    void updateBalanceAndUsdtBalanceWithVersion(@Param("record")DappMemberEntity dappMemberEntity);
    IPage<DappMemberEntity> findInviteListInPage(Page<DappMemberEntity> page, @Param("record")DappMemberEntity dappMemberEntity);
}
src/main/java/cc/mrbird/febs/dapp/service/IAdminBannerService.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.dapp.entity.DappCoinPrice;
import cc.mrbird.febs.dapp.entity.DappHdRecord;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.PlatformBanner;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -28,4 +29,6 @@
    FebsResponse coinPriceAdd(String price);
    IPage<DappHdRecord> findHdRecordInPage(DappHdRecord dappHdRecord, QueryRequest request);
    IPage<DappMemberEntity> inviteList(DappMemberEntity dappMemberEntity, QueryRequest request);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminBannerServiceImpl.java
@@ -4,19 +4,16 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.DataDicEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.dapp.entity.DappCoinPrice;
import cc.mrbird.febs.dapp.entity.DappHdRecord;
import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
import cc.mrbird.febs.dapp.entity.PlatformBanner;
import cc.mrbird.febs.dapp.mapper.DappCoinPriceMapper;
import cc.mrbird.febs.dapp.mapper.DappHdRecordMapper;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.mapper.PlatformBannerMapper;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.AsyncCjService;
import cc.mrbird.febs.dapp.service.IAdminBannerService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -28,6 +25,7 @@
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Slf4j
@Service
@@ -40,6 +38,8 @@
    private final DappHdRecordMapper dappHdRecordMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final AsyncCjService asyncCjService;
    private final DappMemberDao dappMemberDao;
    private final DappAchieveMapper dappAchieveMapper;
    @Override
    public IPage<PlatformBanner> findPlatformBannerInPage(PlatformBanner platformBannerEntity,
@@ -126,4 +126,28 @@
        IPage<DappHdRecord> dappHdRecordIPage = dappHdRecordMapper.findHdRecordInPage(page, dappHdRecord);
        return dappHdRecordIPage;
    }
    @Override
    public IPage<DappMemberEntity> inviteList(DappMemberEntity dappMemberEntity, QueryRequest request) {
        Page<DappMemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<DappMemberEntity> dappMemberEntityIPage = dappMemberDao.findInviteListInPage(page, dappMemberEntity);
        List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
        if(CollUtil.isNotEmpty(records)){
            for(DappMemberEntity memberEntity : records){
                DappMemberEntity refererMember = dappMemberDao.selectMemberInfoByInviteId(memberEntity.getRefererId());
                if(ObjectUtil.isNotEmpty(refererMember)){
                    memberEntity.setRefererAddress(refererMember.getAddress());
                }
                QueryWrapper<DappAchieve> objectQueryWrapper = new QueryWrapper<>();
                objectQueryWrapper.eq("member_id",memberEntity.getId());
                objectQueryWrapper.eq("state",1);
                List<DappAchieve> dappAchieves = dappAchieveMapper.selectList(objectQueryWrapper);
                if(CollUtil.isNotEmpty(dappAchieves)){
                    BigDecimal teamAchieveMemberSum = dappAchieves.stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
                    memberEntity.setZhiYaAmount(teamAchieveMemberSum);
                }
            }
        }
        return dappMemberEntityIPage;
    }
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -381,6 +381,9 @@
            }
            flowType = FlowTypeEnum.DAI_BI_OUT.getValue();
            flowDes = FlowTypeEnum.DAI_BI_OUT.getDescrition();
            dappMemberEntity.setBalance(balance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
            dappMemberDao.updateBalanceWithVersion(dappMemberEntity);
        }else{
            if(new BigDecimal("100").compareTo(amount) > 0){
                throw new FebsException("最小数量为100");
@@ -390,6 +393,9 @@
            }
            flowType = FlowTypeEnum.USDT_OUT.getValue();
            flowDes = FlowTypeEnum.USDT_OUT.getDescrition();
            dappMemberEntity.setUsdtBalance(usdtBalance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
            dappMemberDao.updateUsdtBalanceWithVersion(dappMemberEntity);
        }
        DappFundFlowEntity fundFlowTuiJian = new DappFundFlowEntity(
@@ -402,9 +408,9 @@
                dappMemberEntity.getAddress());
        dappFundFlowDao.insert(fundFlowTuiJian);
        dappMemberEntity.setBalance(balance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
        dappMemberEntity.setUsdtBalance(usdtBalance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
        dappMemberDao.updateBalanceAndUsdtBalanceWithVersion(dappMemberEntity);
//        dappMemberEntity.setBalance(balance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
//        dappMemberEntity.setUsdtBalance(usdtBalance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
//        dappMemberDao.updateBalanceAndUsdtBalanceWithVersion(dappMemberEntity);
        return new FebsResponse().success();
    }
src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -148,4 +148,20 @@
            balance = #{record.balance}
        where id=#{record.id} and version=#{record.version}
    </update>
    <select id="findInviteListInPage" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
        SELECT
        a.*
        FROM
        dapp_member a
        <where>
            <if test="record.inviteId != null and record.inviteId != ''">
                and find_in_set(#{record.inviteId}, a.referer_ids)
            </if>
            <if test="record.address != null and record.address != ''">
                and a.address = #{record.address}
            </if>
        </where>
        order by a.CREATE_TIME desc
    </select>
</mapper>
src/main/resources/templates/febs/views/dapp/member-zhi-ya.html
@@ -113,13 +113,14 @@
                elem: $view.find('table'),
                id: 'zhiYaTable',
                url: ctx + 'flow/dappAchieve',
                totalRow : true,
                cols: [[
                    {field: 'address', title: '用户地址', minWidth: 400,align:'center'},
                    {field: 'address', title: '用户地址', minWidth: 400,align:'center',totalRowText:"合计"},
                    {templet: '#beState', title: '状态', minWidth: 180,align:'center'},
                    {field: 'amount', title: '质押数量', minWidth: 100,align:'center'},
                    {field: 'amount', title: '质押数量', minWidth: 100,align:'center', totalRow:true},
                    // {field: 'amountDone', title: '累计产出', minWidth: 100,align:'center'},
                    {field: 'amountMax', title: '出局数量', minWidth: 100,align:'center'},
                    {field: 'amountDay', title: '每日产出', minWidth: 100,align:'center'},
                    {field: 'amountMax', title: '出局数量', minWidth: 100,align:'center', totalRow:true},
                    {field: 'amountDay', title: '每日产出', minWidth: 100,align:'center', totalRow:true},
                    {field: 'createTime', title: '质押时间', minWidth: 300,align:'center'},
                    {title: '操作', minWidth: 200 ,toolbar: '#zhiya-option',align:'center'}
                ]]
src/main/resources/templates/febs/views/dapp/member.html
@@ -107,15 +107,16 @@
                elem: $view.find('table'),
                id: 'memberTable',
                url: ctx + 'member/list',
                totalRow : true,
                cols: [[
                    {type: 'numbers'},
                    {type: 'numbers',totalRowText:"合计"},
                    // {field: 'address', title: '地址', minWidth: 400},
                    {title: '地址', templet: '#approve-list', minWidth: 400},
                    {field: 'inviteId', title: '邀请码', minWidth: 130},
                    {field: 'usdtBalance', title: '账户收益(USDT)', minWidth: 130},
                    {field: 'balance', title: '账户收益(GFA)', minWidth: 130},
                    {field: 'zhiYaAmount', title: 'dapp质押总额', minWidth: 130},
                    {field: 'usdtBalance', title: '账户收益(USDT)', minWidth: 130, totalRow:true},
                    {field: 'balance', title: '账户收益(GFA)', minWidth: 130, totalRow:true},
                    {field: 'zhiYaAmount', title: 'dapp质押总额', minWidth: 130, totalRow:true},
                    {field: 'createTime', title: '创建时间', minWidth: 180},
                ]]
            });
src/main/resources/templates/febs/views/modules/banner/inviteList.html
New file
@@ -0,0 +1,118 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-invite" lay-title="团队业绩">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <form class="layui-form layui-table-form" lay-filter="invite-table-form">
                            <div class="layui-row">
                                <div class="layui-col-md10">
                                    <div class="layui-form-item">
                                        <div class="layui-inline">
                                            <label class="layui-form-label layui-form-label-sm">地址</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="address" autocomplete="off" placeholder="查询地址"  class="layui-input">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label layui-form-label-sm">邀请码</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="inviteId" autocomplete="off" placeholder="查询邀请码下的团队" class="layui-input">
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
                                    <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
                                        <i class="layui-icon">&#xe848;</i>
                                    </div>
                                    <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                        <i class="layui-icon">&#xe79b;</i>
                                    </div>
                                </div>
                            </div>
                        </form>
                    <table lay-filter="inviteTable" lay-data="{id: 'inviteTable'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- 表格操作栏 start -->
<script type="text/html" id="user-option">
    <a lay-event="edit">编辑
        <i class="layui-icon febs-edit-area febs-blue"></i>
     </a>
    <a lay-event="delete">删除
        <i class="layui-icon febs-edit-area febs-blue"></i>
     </a>
</script>
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
    // 引入组件并初始化
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            dropdown = layui.dropdown,
            $view = $('#febs-invite'),
            $query = $view.find('#query'),
            $reset = $view.find('#reset'),
            $searchForm = $view.find('form'),
            sortObject = {field: 'spread', type: null},
            tableIns
            ;
        form.render();
        // 表格初始化
        initTable();
        // 初始化表格操作栏各个按钮功能
        table.on('tool(inviteTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
        });
        $query.on('click', function () {
            var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
            tableIns.reload({where: params, page: {curr: 1}});
        });
         // 刷新按钮
        $reset.on('click', function () {
            $searchForm[0].reset();
            sortObject.type = 'null';
            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
        });
         // 获取查询参数
        function getQueryParams() {
            return {
                inviteId: $searchForm.find('input[name="inviteId"]').val().trim(),
                address: $searchForm.find('input[name="address"]').val().trim(),
                invalidate_ie_cache: new Date()
            };
        }
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'inviteTable',
                url: ctx + 'admin/banner/inviteList',
                totalRow : true,
                cols: [[
                    {field: 'id', title: '', minWidth: 50,align:'left',totalRowText:"合计"},
                    {field: 'address', title: '地址', minWidth: 400,align:'center'},
                    {field: 'inviteId', title: '邀请码', minWidth: 50,align:'center'},
                    {field: 'refererId', title: '上级邀请码', minWidth: 50,align:'center'},
                    {field: 'refererAddress', title: '上级地址', minWidth: 400,align:'center'},
                    {field: 'zhiYaAmount', title: '个人业绩', minWidth: 50,align:'center', totalRow:true},
                ]]
            });
        }
    })
</script>