From 4ccaaf3dccbd8ad40f093dab238f51d350f15a43 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 18 Nov 2022 14:12:31 +0800
Subject: [PATCH] 20221117
---
src/main/resources/templates/febs/views/dapp/member.html | 14 +++
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java | 16 ++++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 37 +++++++++
src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinChargeDao.java | 3
src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java | 29 +++++++
src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java | 3
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java | 2
src/main/resources/mapper/dapp/DappMemberDao.xml | 12 +++
src/main/resources/mapper/dapp/MemberCoinChargeDao.xml | 6 +
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java | 3
src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinWithdrawDao.java | 3
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java | 18 ++++
src/main/resources/mapper/dapp/MemberCoinWithdrawMapper.xml | 10 ++
src/main/resources/templates/febs/views/dapp/teamInfo.html | 45 +++++++++++
14 files changed, 199 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
index 97483c9..88c1e0f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -276,4 +276,22 @@
Map<String, Object> data = getDataTable(dappMemberService.getOutFlowListByDay(memberCoinWithdrawEntity,request));
return new FebsResponse().success().data(data);
}
+
+ /**
+ * 用户列表-团队详情
+ */
+ @GetMapping("teamInfo")
+ public FebsResponse teamInfo(DappMemberEntity dappMemberEntity, QueryRequest request, Integer parentId) {
+ if (parentId == null) {
+ ViewController.idMemberTeamInfo = 0L;
+ }
+ User currentUser = FebsUtil.getCurrentUser();
+ if(ObjectUtil.isNotEmpty(currentUser.getDescription())){
+ dappMemberEntity.setDescription(currentUser.getDescription());
+ }
+ dappMemberEntity.setId(ViewController.idMemberTeamInfo);
+
+ Map<String, Object> data = getDataTable(dappMemberService.getTeamInfo(dappMemberEntity,request));
+ return new FebsResponse().success().data(data);
+ }
}
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 c51b7c4..e3297b6 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -265,4 +265,20 @@
return FebsUtil.view("dapp/money-total-flow-out");
}
+ public static long idMemberTeamInfo;
+ /**
+ * 用户列表-团队详情
+ * @param id
+ * @param model
+ * @return
+ */
+ @GetMapping("/teamInfo/{id}")
+ @RequiresPermissions("teamInfo:update")
+ public String teamInfo(@PathVariable long id, Model model) {
+ idMemberTeamInfo = id;
+ DappMemberEntity data = dappMemberDao.selectById(id);
+ model.addAttribute("teamInfo", data);
+ return FebsUtil.view("dapp/teamInfo");
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
index ad041ac..054db68 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -116,4 +116,7 @@
@TableField(exist = false)
private BigDecimal availableAmount;
+
+ @TableField(exist = false)
+ private String refererName;
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index 40681ef..83e0d1f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -5,6 +5,7 @@
import cc.mrbird.febs.dapp.dto.TeamListDto;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.vo.AdminMemberCoinWithdrawVo;
+import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo;
import cc.mrbird.febs.dapp.vo.ApiMyTeammateInfoListVo;
import cc.mrbird.febs.dapp.vo.TeamListVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -78,4 +79,6 @@
IPage<MemberCoinChargeEntity> getChargeListByDayInPage(Page<MemberCoinChargeEntity> page, @Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
IPage<AdminMemberCoinWithdrawVo> getWithDrawListByDayInPage(Page<AdminMemberCoinWithdrawVo> page, @Param("record")MemberCoinWithdrawEntity memberCoinWithdrawEntity);
+
+ IPage<AdminTeamInfoVo> findTeamInfoListInPage(Page<AdminTeamInfoVo> page, @Param("record")DappMemberEntity dappMemberEntity);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinChargeDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinChargeDao.java
index 2164dd9..ff90c8d 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinChargeDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinChargeDao.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -20,4 +21,6 @@
@Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
AdminMemberChargeVo selectTotalAmountByCreateTimeAndInviteId(@Param("createTime") Date createTime, @Param("description") String description);
+
+ BigDecimal selectTotalAmountByMemberId(@Param("memberId")Long memberId);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinWithdrawDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinWithdrawDao.java
index faee9d5..4e32c39 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinWithdrawDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/MemberCoinWithdrawDao.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.Date;
public interface MemberCoinWithdrawDao extends BaseMapper<MemberCoinWithdrawEntity> {
@@ -17,4 +18,6 @@
Integer selectByMemberIdAndCreateTime(@Param("memberId")Long memberIdOut, @Param("createTime")String createTime, @Param("type")String type);
AdminMemberWithdrawVo selectTotalAmountByCreateTimeAndInviteId(@Param("createTime") Date createTime, @Param("description") String description);
+
+ BigDecimal selectTotalAmountByMemberIdAndType(@Param("memberId") Long memberId, @Param("inside") String n);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
index 7664c7f..26445ac 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -112,4 +112,6 @@
IPage<MemberCoinChargeEntity> getFlowListByDay(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request);
IPage<AdminMemberCoinWithdrawVo> getOutFlowListByDay(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request);
+
+ IPage<AdminTeamInfoVo> getTeamInfo(DappMemberEntity dappMemberEntity, QueryRequest request);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 49c4a91..abf2290 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -31,6 +31,7 @@
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
+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;
@@ -69,6 +70,8 @@
private final IgtOnHookPlanOrderDao igtOnHookPlanOrderDao;
private final AppVersionMapper appVersionMapper;
private final DappMessageDao dappMessageDao;
+ private final MemberCoinChargeDao memberCoinChargeDao;
+ private final MemberCoinWithdrawDao memberCoinWithdrawDao;
private final RedisTemplate<String, Object> redisTemplate;
@@ -1113,6 +1116,40 @@
return adminMemberCoinWithdrawVos;
}
+ @Override
+ public IPage<AdminTeamInfoVo> getTeamInfo(DappMemberEntity dappMemberEntity, QueryRequest request) {
+ Page<AdminTeamInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ dappMemberEntity = this.baseMapper.selectById(dappMemberEntity.getId());
+ IPage<AdminTeamInfoVo> adminTeamInfoVoIPage = this.baseMapper.findTeamInfoListInPage(page, dappMemberEntity);
+ List<AdminTeamInfoVo> records = adminTeamInfoVoIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminTeamInfoVo adminTeamInfoVo : records){
+ Long memberId = adminTeamInfoVo.getId();
+ //获取团队成员的主要信息
+ DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
+ adminTeamInfoVo.setTotalAmount(dappWalletCoinEntity.getTotalAmount());
+ adminTeamInfoVo.setAvaAmount(dappWalletCoinEntity.getAvailableAmount());
+ adminTeamInfoVo.setFrozenAmount(dappWalletCoinEntity.getFrozenAmount());
+
+ BigDecimal chargeAmount = memberCoinChargeDao.selectTotalAmountByMemberId(memberId);
+ adminTeamInfoVo.setChargeAmount(chargeAmount);
+
+ BigDecimal withDrawAmount = memberCoinWithdrawDao.selectTotalAmountByMemberIdAndType(memberId,"N");
+ adminTeamInfoVo.setWithDrawAmount(withDrawAmount);
+ BigDecimal insideAmount = memberCoinWithdrawDao.selectTotalAmountByMemberIdAndType(memberId,"Y");
+ adminTeamInfoVo.setInsideAmount(insideAmount);
+
+ QueryWrapper<IgtOnHookPlanOrder> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("member_id",memberId);
+ Integer onHookTimes = igtOnHookPlanOrderDao.selectCount(objectQueryWrapper);
+ adminTeamInfoVo.setOnHookTimes(onHookTimes);
+ BigDecimal totalProfit = igtOnHookPlanOrderDao.selectSumProfitByMemberId(memberId);
+ adminTeamInfoVo.setTotalProfit(totalProfit);
+ }
+ }
+ return adminTeamInfoVoIPage;
+ }
+
public String generateAsaToken(String token) {
RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java
new file mode 100644
index 0000000..7111e20
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.dapp.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "AdminTeamInfoVo", description = "团队详情信息")
+public class AdminTeamInfoVo {
+ private String username;
+ private Long id;
+ //总金额
+ private BigDecimal totalAmount;
+ //可用
+ private BigDecimal avaAmount;
+ //冻结
+ private BigDecimal FrozenAmount;
+ //充值金额
+ private BigDecimal chargeAmount;
+ //提现金额
+ private BigDecimal withDrawAmount;
+ //内转金额
+ private BigDecimal insideAmount;
+ //挂机次数
+ private Integer onHookTimes;
+ //总收益
+ private BigDecimal totalProfit;
+}
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index 1b64d91..6d5fa2c 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -15,11 +15,13 @@
<select id="selectInPage" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
select a.*,
+ c.username refererName,
b.total_amount totalAmount,
b.frozen_amount frozenAmount,
b.available_amount availableAmount
from dapp_member a
left join dapp_wallet_coin b on a.id = b.member_id
+ left join dapp_member c on a.referer_id = c.invite_id
<where>
<!-- <if test="record.currentUser != null">-->
<!-- and referer_id = (select invite_id from dapp_user_member_relate where user_id=#{record.currentUser})-->
@@ -317,4 +319,14 @@
</where>
order by a.create_time desc
</select>
+
+ <select id="findTeamInfoListInPage" resultType="cc.mrbird.febs.dapp.vo.AdminTeamInfoVo">
+ select
+ a.username username,
+ a.id id
+ from dapp_member a
+ where
+ (a.id in (select id from dapp_member where FIND_IN_SET(#{record.inviteId}, referer_ids)))
+ order by a.create_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/dapp/MemberCoinChargeDao.xml b/src/main/resources/mapper/dapp/MemberCoinChargeDao.xml
index 1c2f0aa..3fbc592 100644
--- a/src/main/resources/mapper/dapp/MemberCoinChargeDao.xml
+++ b/src/main/resources/mapper/dapp/MemberCoinChargeDao.xml
@@ -49,4 +49,10 @@
</if>
</select>
+ <select id="selectTotalAmountByMemberId" resultType="java.math.BigDecimal">
+ SELECT IFNULL(sum(amount),0) FROM member_coin_charge
+ WHERE member_id = #{memberId}
+
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/dapp/MemberCoinWithdrawMapper.xml b/src/main/resources/mapper/dapp/MemberCoinWithdrawMapper.xml
index 85f375e..3b6c401 100644
--- a/src/main/resources/mapper/dapp/MemberCoinWithdrawMapper.xml
+++ b/src/main/resources/mapper/dapp/MemberCoinWithdrawMapper.xml
@@ -61,4 +61,14 @@
</select>
+ <select id="selectTotalAmountByMemberIdAndType" resultType="java.math.BigDecimal">
+ SELECT
+ IFNULL(sum(amount),0)
+ FROM
+ member_coin_withdraw
+ WHERE
+ is_inside = #{inside}
+ and member_id = #{memberId}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/member.html b/src/main/resources/templates/febs/views/dapp/member.html
index 2989d9f..1ebe2bd 100644
--- a/src/main/resources/templates/febs/views/dapp/member.html
+++ b/src/main/resources/templates/febs/views/dapp/member.html
@@ -177,6 +177,12 @@
table.on('tool(memberTable)', function (obj) {
var data = obj.data,
layEvent = obj.event;
+
+ if (layEvent === 'teamInfo') {
+ febs.modal.open( '团队详情', 'dappView/teamInfo/' + data.id, {
+ maxmin: true,
+ });
+ }
if (layEvent === 'resetTransferCode') {
febs.modal.confirm('资金密码', '是否重置资金密码为:123456?', function () {
resetTransferCode(data.id);
@@ -308,7 +314,11 @@
cols: [[
// {type: 'checkbox'},
// {type: 'numbers'},
- {field: 'username', title: '用户名', minWidth: 120},
+ // {field: 'username', title: '用户名', minWidth: 120},
+ {title: '用户名',
+ templet: function (d) {
+ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="teamInfo" shiro:hasPermission="teamInfo:update"><span>'+d.username+'</span></button>'
+ },minWidth: 130,align:'center'},
{field: 'identity', title: '会员',
templet: function (d) {
if (d.identity === 'LEVEL_TM') {
@@ -342,7 +352,7 @@
{field: 'availableAmount', title: '可用余额', minWidth: 100},
{field: 'frozenAmount', title: '冻结金额', minWidth: 100},
{field: 'inviteId', title: '邀请码', minWidth: 100},
- {field: 'refererId', title: '上级邀请码', minWidth: 130},
+ {field: 'refererName', title: '上级', minWidth: 130},
{field: 'createTime', title: '创建时间', minWidth: 180},
,{field: 'accountStatus', title: '账户状态',templet: '#isAccountStatus', minWidth: 180},
// {title: '账户状态', templet: '#user-status', minWidth: 120},
diff --git a/src/main/resources/templates/febs/views/dapp/teamInfo.html b/src/main/resources/templates/febs/views/dapp/teamInfo.html
new file mode 100644
index 0000000..712f765
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/teamInfo.html
@@ -0,0 +1,45 @@
+<div className="layui-fluid layui-anim febs-anim" id="febs-team-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="teamInfoChild" lay-data="{id: 'teamInfoChild'}"></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-team-info'),
+ tableIns;
+
+ form.render();
+
+ initTable();
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'teamInfoChild',
+ url: ctx + 'member/teamInfo?parentId=1',
+ cols: [[
+ {field: 'username', title: '用户名', minWidth: 100},
+ {field: 'totalAmount', title: '总金额', minWidth: 100},
+ {field: 'avaAmount', title: '可用金额', minWidth: 100},
+ {field: 'FrozenAmount', title: '冻结金额', minWidth: 100},
+ {field: 'chargeAmount', title: '充值金额', minWidth: 100},
+ {field: 'withDrawAmount', title: '提现金额', minWidth: 100},
+ {field: 'insideAmount', title: '内转金额', minWidth: 100},
+ {field: 'onHookTimes', title: '挂机次数', minWidth: 100},
+ {field: 'totalProfit', title: '总收益', minWidth: 100},
+ ]]
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
--
Gitblit v1.9.1