From 46236454fdc29f1786fd8876438bf38e651037e6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 19 Jul 2022 15:14:23 +0800
Subject: [PATCH] add idoAchieve.html

---
 src/main/java/cc/mrbird/febs/dapp/entity/DappIdoAssetsEntity.java         |    7 ++
 src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java          |    7 +-
 src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java          |    7 ++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |    6 ++
 src/main/resources/templates/febs/views/dapp/member-ido-achieve.html      |  104 ++++++++++++++++++++++++++++++++++
 src/main/resources/mapper/dapp/DappIdoAssetsDao.xml                       |   19 ++++++
 src/main/java/cc/mrbird/febs/dapp/controller/MemberWalletController.java  |    6 ++
 src/main/java/cc/mrbird/febs/dapp/mapper/DappIdoAssetsDao.java            |    4 +
 8 files changed, 156 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/MemberWalletController.java b/src/main/java/cc/mrbird/febs/dapp/controller/MemberWalletController.java
index 2aaeb21..1f3558c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberWalletController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberWalletController.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.dapp.entity.DappIdoAssetsEntity;
 import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
 import cc.mrbird.febs.dapp.entity.DappWalletMineEntity;
 import cc.mrbird.febs.dapp.service.DappWalletService;
@@ -44,4 +45,9 @@
         }
         return new FebsResponse().success().data(getDataTable(dappWalletService.walletMineInPage(walletMine, request)));
     }
+
+    @RequestMapping(value = "/idoAchieveList")
+    public FebsResponse idoAchieveList(DappIdoAssetsEntity idoAssets, QueryRequest request) {
+        return new FebsResponse().success().data(getDataTable(dappWalletService.selectIdoAchieveInPage(idoAssets, request)));
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
index c750abf..d923a8f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -122,4 +122,11 @@
     public String fundFlow() {
         return FebsUtil.view("dapp/money-fund-flow");
     }
+
+
+    @GetMapping("idoAchieve")
+    @RequiresPermissions("idoAchieve:view")
+    public String idoAchieve() {
+        return FebsUtil.view("dapp/member-ido-achieve");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappIdoAssetsEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappIdoAssetsEntity.java
index 9adcbfd..16108e6 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappIdoAssetsEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappIdoAssetsEntity.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.dapp.entity;
 
 import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -21,4 +22,10 @@
     private BigDecimal coinAmount;
 
     private BigDecimal usdtAmount;
+
+    @TableField(exist = false)
+    private String address;
+
+    @TableField(exist = false)
+    private String addressCnt;
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappIdoAssetsDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappIdoAssetsDao.java
index 61d3b71..3668e40 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappIdoAssetsDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappIdoAssetsDao.java
@@ -2,6 +2,8 @@
 
 import cc.mrbird.febs.dapp.entity.DappIdoAssetsEntity;
 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;
@@ -11,4 +13,6 @@
     DappIdoAssetsEntity selectByMemberId(@Param("memberId") Long memberId);
 
     List<DappIdoAssetsEntity> selectListHasAssets();
+
+    IPage<DappIdoAssetsEntity> selectAchieveListInPage(@Param("record") DappIdoAssetsEntity dappIdoAssetsEntity, Page<DappIdoAssetsEntity> page);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
index e17101f..3c24bf7 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
@@ -5,10 +5,7 @@
 import cc.mrbird.febs.dapp.dto.RecordInPageDto;
 import cc.mrbird.febs.dapp.dto.TransferDto;
 import cc.mrbird.febs.dapp.dto.WalletOperateDto;
-import cc.mrbird.febs.dapp.entity.DappAccountMoneyChangeEntity;
-import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
-import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
-import cc.mrbird.febs.dapp.entity.DappWalletMineEntity;
+import cc.mrbird.febs.dapp.entity.*;
 import cc.mrbird.febs.dapp.vo.WalletInfoVo;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -41,4 +38,6 @@
     Map<String, BigDecimal> calPrice(PriceDto priceDto);
 
     int boxSurprise();
+
+    IPage<DappIdoAssetsEntity> selectIdoAchieveInPage(DappIdoAssetsEntity dappIdoAssetsEntity, QueryRequest request);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index b9eab29..d43960c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -293,4 +293,10 @@
 
         return box.getIndex();
     }
+
+    @Override
+    public IPage<DappIdoAssetsEntity> selectIdoAchieveInPage(DappIdoAssetsEntity dappIdoAssetsEntity, QueryRequest request) {
+        Page<DappIdoAssetsEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+        return this.dappIdoAssetsDao.selectAchieveListInPage(dappIdoAssetsEntity, page);
+    }
 }
diff --git a/src/main/resources/mapper/dapp/DappIdoAssetsDao.xml b/src/main/resources/mapper/dapp/DappIdoAssetsDao.xml
index f86e08a..1fc6842 100644
--- a/src/main/resources/mapper/dapp/DappIdoAssetsDao.xml
+++ b/src/main/resources/mapper/dapp/DappIdoAssetsDao.xml
@@ -9,4 +9,23 @@
     <select id="selectListHasAssets" resultType="cc.mrbird.febs.dapp.entity.DappIdoAssetsEntity">
         select * from dapp_ido_assets where coin_amount > 0
     </select>
+
+    <select id="selectAchieveListInPage" resultType="cc.mrbird.febs.dapp.entity.DappIdoAssetsEntity">
+        select
+            a.address,
+            a.invite_id,
+            (select count(1) from dapp_member x where a.invite_id=x.referer_id) addressCnt,
+            sum(c.coin_amount) coinAmount,
+            sum(c.usdt_amount) usdtAmount
+        from dapp_member a
+                 inner join dapp_member b on find_in_set(a.invite_id, substring_index(b.referer_ids, ',', 10))
+                 inner join dapp_ido_assets c on c.member_id=b.id
+        <where>
+            <if test="record.address != null and record.address != ''">
+                and (a.address = #{record.address} or a.invite_id=#{record.address})
+            </if>
+        </where>
+        group by a.address
+        order by coinAmount desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/member-ido-achieve.html b/src/main/resources/templates/febs/views/dapp/member-ido-achieve.html
new file mode 100644
index 0000000..e060ba0
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/member-ido-achieve.html
@@ -0,0 +1,104 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-ido-achieve" lay-title="IDO业绩">
+    <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="mine-table-form">
+                        <div class="layui-row">
+                            <div class="layui-col-md10">
+                                <div class="layui-form-item">
+                                    <div class="layui-inline">
+                                        <div class="layui-input-inline">
+                                            <input type="text" name="address" 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="idoAchieveTable" lay-data="{id: 'idoAchieveTable'}"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<style>
+    .layui-table-cell {
+        height: auto !important;
+    }
+</style>
+<script data-th-inline="none" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
+        var $ = layui.jquery,
+            laydate = layui.laydate,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            dropdown = layui.dropdown,
+            $view = $('#febs-ido-achieve'),
+            $query = $view.find('#query'),
+            $reset = $view.find('#reset'),
+            $searchForm = $view.find('form'),
+            sortObject = {},
+            tableIns;
+
+        form.render();
+
+        initTable();
+
+        table.on('tool(idoAchieveTable)', function (obj) {
+            var data = obj.data,
+                layEvent = obj.event;
+        });
+
+        table.on('sort(idoAchieveTable)', 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});
+            tableIns.reload({where: params, page: {curr: 1}});
+        });
+
+        $reset.on('click', function () {
+            $searchForm[0].reset();
+            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+        });
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'idoAchieveTable',
+                url: ctx + 'wallet/idoAchieveList',
+                cols: [[
+                    {field: 'address', title: '地址', minWidth: 200},
+                    {field: 'addressCnt', title: '直属地址数', minWidth: 50},
+                    {field: 'usdtAmount', title: '团队USDT业绩', minWidth: 50},
+                    {field: 'coinAmount', title: '团队SDC', minWidth: 50}
+                ]]
+            });
+        }
+
+        function getQueryParams() {
+            return {
+                address: $searchForm.find('input[name="address"]').val().trim(),
+                invalidate_ie_cache: new Date()
+            };
+        }
+    })
+</script>

--
Gitblit v1.9.1