From 6feca7b6f433cf4558ad8423d6eb0ff109880c78 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 02 Dec 2022 11:44:51 +0800
Subject: [PATCH] 20221130
---
src/main/resources/templates/febs/views/dapp/member.html | 44 ++-
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java | 43 +++
src/main/resources/templates/febs/views/dapp/system-profit.html | 146 +++++++++++++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 41 +++
src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java | 31 ++
src/main/resources/templates/febs/views/dapp/money-change-flow.html | 11 +
src/main/java/cc/mrbird/febs/dapp/entity/DappSystemProfit.java | 4
src/main/java/cc/mrbird/febs/dapp/vo/AdminDappSystemProfitVo.java | 20 +
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java | 11
src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemProfitFlowListVo.java | 23 ++
src/main/resources/mapper/dapp/DappMemberDao.xml | 13 +
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java | 3
src/main/resources/templates/febs/views/dapp/member-teamInfo.html | 45 ++++
src/main/resources/application-dev.yml | 16
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java | 40 +++
src/main/resources/templates/febs/views/dapp/system-profit-flow.html | 70 ++++++
src/main/java/cc/mrbird/febs/dapp/mapper/DappSystemProfitDao.java | 8
src/main/resources/mapper/dapp/DappSystemProfitDao.xml | 35 +++
18 files changed, 574 insertions(+), 30 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 8cf5a19..f4e4071 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -3,12 +3,16 @@
import cc.mrbird.febs.common.controller.BaseController;
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.chain.ChainService;
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.entity.DappSystemProfit;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
+import cc.mrbird.febs.system.entity.User;
+import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
@@ -89,4 +93,40 @@
dappMemberService.setSystemFee(adminSystemFeeVo);
return new FebsResponse().success();
}
+
+ /**
+ * 动能列表
+ * @return
+ */
+ @RequestMapping(value = "/systemProfitList")
+ public FebsResponse systemProfitList(DappSystemProfit dappSystemProfit, QueryRequest request) {
+ return new FebsResponse().success().data(getDataTable(dappMemberService.selectSystemProfitInPage(dappSystemProfit, request)));
+ }
+
+ /**
+ * 动能列表-流水详情
+ * @return
+ */
+ @GetMapping("getSystemProfitFlowList")
+ public FebsResponse getSystemProfitFlowList(DappSystemProfit dappSystemProfit, QueryRequest request, Integer parentId) {
+ if (parentId == null) {
+ ViewController.systemProfitId = 0L;
+ }
+ dappSystemProfit.setId(ViewController.systemProfitId);
+ Map<String, Object> data = getDataTable(dappMemberService.getSystemProfitFlowList(dappSystemProfit, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 用户列表-团队详情
+ */
+ @GetMapping("teamInfo")
+ public FebsResponse teamInfo(DappMemberEntity dappMemberEntity, QueryRequest request, Integer parentId) {
+ if (parentId == null) {
+ ViewController.teamInfoMemberId = 0L;
+ }
+ dappMemberEntity.setId(ViewController.teamInfoMemberId);
+ 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 82a9167..91bc87b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -4,8 +4,11 @@
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+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.DappSystemProfitDao;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
@@ -31,6 +34,7 @@
private final RedisUtils redisUtils;
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final DappSystemProfitDao dappSystemProfitDao;
@GetMapping(value = "admin")
@RequiresPermissions("admin:view")
@@ -151,4 +155,43 @@
model.addAttribute("systemFee", adminSystemFeeVo);
return FebsUtil.view("dapp/system-fee-set");
}
+
+ /**
+ * 动能列表
+ * @return
+ */
+ @GetMapping(value = "systemProfit")
+ @RequiresPermissions("systemProfit:view")
+ public String systemProfit() {
+ return FebsUtil.view("dapp/system-profit");
+ }
+
+
+ public static long systemProfitId;
+ /**
+ * 动能列表-流水详情
+ * @param id
+ * @param model
+ * @return
+ */
+ @GetMapping("/systemProfitFlow/{id}")
+ @RequiresPermissions("systemProfitFlow:view")
+ public String systemProfitFlow(@PathVariable long id, Model model) {
+ systemProfitId = id;
+ return FebsUtil.view("dapp/system-profit-flow");
+ }
+
+ public static long teamInfoMemberId;
+ /**
+ * 用户列表-团队详情
+ * @param id
+ * @param model
+ * @return
+ */
+ @GetMapping("/teamInfo/{id}")
+ @RequiresPermissions("teamInfo:view")
+ public String teamInfo(@PathVariable long id, Model model) {
+ teamInfoMemberId = id;
+ return FebsUtil.view("dapp/member-teamInfo");
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappSystemProfit.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappSystemProfit.java
index 863bca6..264ab68 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappSystemProfit.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappSystemProfit.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;
@@ -26,4 +27,7 @@
this.memberId = memberId;
this.amount = amount;
}
+
+ @TableField(exist = false)
+ private String address;
}
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 292e3f4..d2ba4c1 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.dapp.mapper;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -50,4 +51,6 @@
List<DappMemberEntity> selectMemberInfoByRefererId(@Param("refererId")String inviteId);
Integer selectCountByAccountTypeAndRefererId(@Param("accountType")String code, @Param("refererId")String inviteId);
+
+ IPage<AdminTeamInfoVo> findTeamInfoListInPage(Page<AdminTeamInfoVo> page, @Param("record")DappMemberEntity dappMemberEntity);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappSystemProfitDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappSystemProfitDao.java
index 33677d5..4c04e2d 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappSystemProfitDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappSystemProfitDao.java
@@ -1,7 +1,11 @@
package cc.mrbird.febs.dapp.mapper;
import cc.mrbird.febs.dapp.entity.DappSystemProfit;
+import cc.mrbird.febs.dapp.vo.AdminDappSystemProfitVo;
+import cc.mrbird.febs.dapp.vo.AdminSystemProfitFlowListVo;
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;
public interface DappSystemProfitDao extends BaseMapper<DappSystemProfit> {
@@ -19,4 +23,8 @@
DappSystemProfit selectSystemProfitOutByState(@Param("state")int stateOut);
DappSystemProfit selectSystemProfitInByState(@Param("state")int stateIn);
+
+ IPage<AdminDappSystemProfitVo> selectSystemProfitInPage(@Param("record")DappSystemProfit dappSystemProfit, Page<AdminDappSystemProfitVo> page);
+
+ IPage<AdminSystemProfitFlowListVo> selectSystemProfitFlowListInPage(@Param("record")DappSystemProfit dappSystemProfit, Page<AdminSystemProfitFlowListVo> page);
}
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 390d568..4df012c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -6,10 +6,9 @@
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.dto.TeamListDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.entity.DappSystemProfit;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
-import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
-import cc.mrbird.febs.dapp.vo.ApiRunListInfoVo;
-import cc.mrbird.febs.dapp.vo.TeamListVo;
+import cc.mrbird.febs.dapp.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -49,4 +48,10 @@
void setSystemFee(AdminSystemFeeVo adminSystemFeeVo);
ApiRunListInfoVo findRunListInfo();
+
+ IPage<AdminDappSystemProfitVo> selectSystemProfitInPage(DappSystemProfit dappSystemProfit, QueryRequest request);
+
+ IPage<AdminSystemProfitFlowListVo> getSystemProfitFlowList(DappSystemProfit dappSystemProfit, 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 e9a7b62..42c051f 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
@@ -19,9 +19,7 @@
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.DappMemberService;
-import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
-import cc.mrbird.febs.dapp.vo.ApiRunListInfoVo;
-import cc.mrbird.febs.dapp.vo.TeamListVo;
+import cc.mrbird.febs.dapp.vo.*;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.collection.CollUtil;
@@ -60,6 +58,7 @@
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final DappSystemProfitDao dappSystemProfitDao;
private final ChainProducer chainProducer;
+ private final DappFundFlowDao dappFundFlowDao;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -417,6 +416,42 @@
return apiRunListInfoVo;
}
+ @Override
+ public IPage<AdminDappSystemProfitVo> selectSystemProfitInPage(DappSystemProfit dappSystemProfit, QueryRequest request) {
+ Page<AdminDappSystemProfitVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return dappSystemProfitDao.selectSystemProfitInPage(dappSystemProfit, page);
+ }
+
+ @Override
+ public IPage<AdminSystemProfitFlowListVo> getSystemProfitFlowList(DappSystemProfit dappSystemProfit, QueryRequest request) {
+ Page<AdminSystemProfitFlowListVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return dappSystemProfitDao.selectSystemProfitFlowListInPage(dappSystemProfit, page);
+ }
+
+ @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();
+ List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(adminTeamInfoVo.getInviteId(), 1, 1);
+ adminTeamInfoVo.setDirectCnt(direct.size());
+ DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectByMemberIdAndState(memberId,DappSystemProfit.STATE_IN);
+ adminTeamInfoVo.setSystemProfitId(ObjectUtil.isEmpty(dappSystemProfit) ? 0L : dappSystemProfit.getId());
+ BigDecimal directProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,3,2);
+ adminTeamInfoVo.setDirectProfit(directProfit);
+ BigDecimal levelProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,4,2);
+ adminTeamInfoVo.setLevelProfit(levelProfit);
+ BigDecimal luckyProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,7,2);
+ adminTeamInfoVo.setLuckyProfit(luckyProfit);
+ }
+ }
+ return adminTeamInfoVoIPage;
+ }
+
public TeamListVo buildTeamMatrix(Long memberId) {
DappMemberEntity member = dappMemberDao.selectById(memberId);
TeamListVo teamListVo = new TeamListVo();
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/AdminDappSystemProfitVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/AdminDappSystemProfitVo.java
new file mode 100644
index 0000000..ad155c6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/AdminDappSystemProfitVo.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.dapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "AdminDappSystemProfitVo", description = "动能队列")
+public class AdminDappSystemProfitVo {
+
+ private Long id;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private BigDecimal amount;
+ private Integer state;
+ private String address;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemProfitFlowListVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemProfitFlowListVo.java
new file mode 100644
index 0000000..efb4213
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemProfitFlowListVo.java
@@ -0,0 +1,23 @@
+package cc.mrbird.febs.dapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "AdminSystemProfitFlowListVo", description = "动能队列-流水详情")
+public class AdminSystemProfitFlowListVo {
+ private String address;
+
+ private BigDecimal amount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+
+ private Integer status;
+
+ private Integer type;
+}
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..8e1a682
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/AdminTeamInfoVo.java
@@ -0,0 +1,31 @@
+package cc.mrbird.febs.dapp.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "AdminTeamInfoVo", description = "团队详情信息")
+public class AdminTeamInfoVo {
+ private String address;
+ private String accountType;
+ private String inviteId;
+ private Integer activeStatus;
+ private Long id;
+ @ApiModelProperty(value = "编号")
+ private Long systemProfitId;
+
+ @ApiModelProperty(value = "直推奖金(直推收益)")
+ private BigDecimal directProfit;
+
+ @ApiModelProperty(value = "平级奖金(层级收益)")
+ private BigDecimal levelProfit;
+
+ @ApiModelProperty(value = "幸运奖金(动能收益)")
+ private BigDecimal luckyProfit;
+
+ @ApiModelProperty(value = "直推数量")
+ private Integer directCnt;
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 9dbaa0f..550cb06 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -15,15 +15,15 @@
datasource:
# 数据源-1,名称为 base
base:
-# username: db_sdm
-# password: sdm123!@#
-# driver-class-name: com.mysql.cj.jdbc.Driver
-# url: jdbc:mysql://47.111.90.145:3306/db_sdm?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
-
- username: ct_test
- password: 123456
+ username: db_bnbweb
+ password: bnbweb123!@#
+ # 154.91.195.148
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://120.27.238.55:3306/db_bnbweb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
+ url: jdbc:mysql://154.91.195.148:3306/db_bnbweb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
+# username: ct_test
+# password: 123456
+# driver-class-name: com.mysql.cj.jdbc.Driver
+# url: jdbc:mysql://120.27.238.55:3306/db_bnbweb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
redis:
database: 13
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index f5146cc..0bc33c9 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -176,4 +176,17 @@
</if>
</where>
</select>
+
+ <select id="findTeamInfoListInPage" resultType="cc.mrbird.febs.dapp.vo.AdminTeamInfoVo">
+ select
+ a.address address,
+ a.invite_id inviteId,
+ a.account_type accountType,
+ a.active_status activeStatus,
+ 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/DappSystemProfitDao.xml b/src/main/resources/mapper/dapp/DappSystemProfitDao.xml
index 02c7329..295147f 100644
--- a/src/main/resources/mapper/dapp/DappSystemProfitDao.xml
+++ b/src/main/resources/mapper/dapp/DappSystemProfitDao.xml
@@ -55,4 +55,39 @@
limit 1
</select>
+ <select id="selectSystemProfitInPage" resultType="cc.mrbird.febs.dapp.vo.AdminDappSystemProfitVo">
+ select
+ a.id id,
+ a.create_time createTime,
+ a.amount amount,
+ a.state state,
+ b.address address
+ from
+ dapp_system_profit a
+ inner join dapp_member b on a.member_id = b.id
+ <where>
+ <if test="record.address != '' and record.address != null">
+ and b.address = #{record.address}
+ </if>
+ <if test="record.state != '' and record.state != null">
+ and a.state = #{record.state}
+ </if>
+ </where>
+ order by a.id desc
+ </select>
+
+ <select id="selectSystemProfitFlowListInPage" resultType="cc.mrbird.febs.dapp.vo.AdminSystemProfitFlowListVo">
+ select
+ a.create_time createTime,
+ a.amount amount,
+ a.status status,
+ a.type type,
+ b.address address
+ from
+ dapp_fund_flow a
+ inner join dapp_member b on a.member_id = b.id
+ where a.system_profit_id = #{record.id}
+ order by a.create_time asc
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/member-teamInfo.html b/src/main/resources/templates/febs/views/dapp/member-teamInfo.html
new file mode 100644
index 0000000..0200fd6
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/member-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',
+ totalRow: true,
+ cols: [[
+ {field: 'address', title: '地址', minWidth: 100, totalRowText: '合计'},
+ {field: 'accountType', title: '代理级别', minWidth: 100,},
+ {field: 'activeStatus', title: '是否加入动能', minWidth: 100},
+ {field: 'systemProfitId', title: '编号', minWidth: 100},
+ {field: 'directCnt', title: '直推数量', minWidth: 100, totalRow: true},
+ {field: 'directProfit', title: '直推收益', minWidth: 100, totalRow: true},
+ {field: 'levelProfit', title: '层级收益', minWidth: 100, totalRow: true},
+ {field: 'luckyProfit', title: '动能收益', minWidth: 100, totalRow: true}
+ ]]
+ });
+ }
+
+ })
+</script>
\ 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 9eb0ac7..6237c3e 100644
--- a/src/main/resources/templates/febs/views/dapp/member.html
+++ b/src/main/resources/templates/febs/views/dapp/member.html
@@ -107,15 +107,22 @@
<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">-->
+<!-- {{# if(d.chainType == 'TRX') { }}-->
+<!-- <a href="https://tronscan.io/#/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>-->
+<!-- {{# } else if (d.chainType == 'ETH') { }}-->
+<!-- <a href="https://etherscan.io/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>-->
+<!-- {{# } else if (d.chainType == 'BSC') { }}-->
+<!-- <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>-->
+<!-- {{# } else { }}-->
+<!-- <span>-</span>-->
+<!-- {{# } }}-->
+<!--</script>-->
<script type="text/html" id="approve-list">
- {{# if(d.chainType == 'TRX') { }}
- <a href="https://tronscan.io/#/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
- {{# } else if (d.chainType == 'ETH') { }}
- <a href="https://etherscan.io/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
- {{# } else if (d.chainType == 'BSC') { }}
- <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# if(d.activeStatus == '1') { }}
+ <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.address}}</a>
{{# } else { }}
- <span>-</span>
+ <span>未加入</span>
{{# } }}
</script>
<script type="text/html" id="member-option">
@@ -162,6 +169,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 === 'accountStatus') {
var text = "是否启用该用户?";
if (data.accountStatus === 1) {
@@ -247,20 +260,19 @@
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>'
+ },minWidth: 130,align:'center'},
{field: 'address', title: '地址', minWidth: 400},
- // {title: '余额(USDT)', templet: '#balance', minWidth: 120},
- // {title: '授权列表', templet: '#approve-list', minWidth: 110},
{field: 'chainType', title: '所属链', minWidth: 130},
- {field: 'totalAmount', title: '总金额', minWidth: 80},
- {field: 'availableAmount', title: '可用金额', minWidth: 80},
- {field: 'frozenAmount', title: '冻结金额', minWidth: 80},
+ {title: '是否加入动能', templet: '#approve-list', minWidth: 350},
{field: 'inviteId', title: '邀请码', minWidth: 100},
{field: 'refererId', title: '上级邀请码', minWidth: 100},
- {title: '账户状态', templet: '#user-status', minWidth: 100},
- // {title: '是否可兑换', templet: '#change-able', minWidth: 100},
- {title: '是否可提现', templet: '#withdraw-able', minWidth: 100},
+ // {title: '账户状态', templet: '#user-status', minWidth: 100},
+ // {title: '是否可提现', templet: '#withdraw-able', minWidth: 100},
{field: 'createTime', title: '创建时间', minWidth: 180},
- {title: '操作', toolbar: '#member-option', minWidth: 300}
+ // {title: '操作', toolbar: '#member-option', minWidth: 300}
]]
});
}
diff --git a/src/main/resources/templates/febs/views/dapp/money-change-flow.html b/src/main/resources/templates/febs/views/dapp/money-change-flow.html
index 316e8af..c8db166 100644
--- a/src/main/resources/templates/febs/views/dapp/money-change-flow.html
+++ b/src/main/resources/templates/febs/views/dapp/money-change-flow.html
@@ -95,6 +95,16 @@
}}
<span>{{ type.title }}</span>
</script>
+<script type="text/html" id="status-able">
+ {{#
+ var status = {
+ 1: {title: '进行中', color: 'blue'},
+ 2: {title: '成功', color: 'green'},
+ 3: {title: '失败', color: 'red'}
+ }[d.status];
+ }}
+ <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 () {
var $ = layui.jquery,
@@ -160,6 +170,7 @@
}, 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},
{field: 'toHash', title: 'toHash', minWidth: 150},
]]
diff --git a/src/main/resources/templates/febs/views/dapp/system-profit-flow.html b/src/main/resources/templates/febs/views/dapp/system-profit-flow.html
new file mode 100644
index 0000000..c0bc018
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/system-profit-flow.html
@@ -0,0 +1,70 @@
+<div className="layui-fluid layui-anim febs-anim" id="febs-systemProfit-child" 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="systemProfitTableChild" lay-data="{id: 'systemProfitTableChild'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!--<style>-->
+<!-- .layui-table-cell {-->
+<!-- height: auto !important;-->
+<!-- }-->
+<!--</style>-->
+<script type="text/html" id="status-able">
+ {{#
+ var status = {
+ 1: {title: '进行中', color: 'blue'},
+ 2: {title: '成功', color: 'green'},
+ 3: {title: '失败', color: 'red'}
+ }[d.status];
+ }}
+ <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
+</script>
+<script type="text/html" id="type-able">
+ {{#
+ var type = {
+ 1: {title: '加入动能'},
+ 2: {title: '技术方收益'},
+ 3: {title: '直推收益'},
+ 4: {title: '层级收益'},
+ 5: {title: '剩余层级收益'},
+ 6: {title: '复投动能'},
+ 7: {title: '动能收益'},
+ }[d.type];
+ }}
+ <span>{{ type.title }}</span>
+</script>
+<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-systemProfit-child'),
+ tableIns;
+
+ form.render();
+
+ initTable();
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'systemProfitTableChild',
+ url: ctx + 'member/getSystemProfitFlowList?parentId=1',
+ cols: [[
+ {field: 'address', title: '地址', minWidth: 300},
+ {field: 'amount', title: '金额', minWidth: 80},
+ {title: '状态', templet: '#status-able', minWidth: 80},
+ {title: '类型', templet: '#type-able', minWidth: 80},
+ {field: 'createTime', title: '创建时间', minWidth: 150}
+ ]]
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/system-profit.html b/src/main/resources/templates/febs/views/dapp/system-profit.html
new file mode 100644
index 0000000..b756efd
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/system-profit.html
@@ -0,0 +1,146 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-system-profit" 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="user-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 class="layui-inline">
+ <label class="layui-form-label layui-form-label-sm">状态</label>
+ <div class="layui-input-inline">
+ <select name="state">
+ <option value=""></option>
+ <option value="1">等待出列</option>
+ <option value="2">出列</option>
+ </select>
+ </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"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="systemProfitTable" lay-data="{id: 'systemProfitTable'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<style>
+ .layui-table-cell {
+ height: auto !important;
+ }
+</style>
+<script type="text/html" id="state-able">
+ {{#
+ var status = {
+ 1: {title: '等待出列', color: 'green'},
+ 2: {title: '出列', color: 'volcano'}
+ }[d.state];
+ }}
+ <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
+</script>
+<script type="text/html" id="approve-list">
+ {{# if(d.chainType == 'TRX') { }}
+ <a href="https://tronscan.io/#/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else if (d.chainType == 'ETH') { }}
+ <a href="https://etherscan.io/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else if (d.chainType == 'BSC') { }}
+ <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else { }}
+ <span>-</span>
+ {{# } }}
+</script>
+<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-system-profit'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ sortObject = {field: 'createTime', type: null},
+ tableIns;
+
+ form.render();
+
+ initTable();
+
+ table.on('tool(systemProfitTable)', function (obj) {
+ var data = obj.data,
+ layEvent = obj.event;
+
+ if (layEvent === 'systemProfitFlow') {
+ febs.modal.open( '流水详情', 'dappView/systemProfitFlow/' + data.id, {
+ maxmin: true,
+ });
+ }
+ });
+
+ table.on('sort(systemProfitTable)', 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: 'systemProfitTable',
+ url: ctx + 'member/systemProfitList',
+ cols: [[
+ {field: 'id', title: '序列号', minWidth: 400},
+ {field: 'address', title: '地址', minWidth: 400},
+ {field: 'amount', title: '金额', minWidth: 130},
+ {title: '状态', templet: '#state-able', minWidth: 100},
+ {field: 'createTime', title: '创建时间', minWidth: 180},
+ {title: '操作',
+ templet: function (d) {
+ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="systemProfitFlow" shiro:hasPermission="systemProfitFlow:view">流水记录</button>'
+ },minWidth: 120,align:'center'}
+ ]]
+ });
+ }
+
+ function getQueryParams() {
+ return {
+ address: $searchForm.find('input[name="address"]').val().trim(),
+ state: $searchForm.find("select[name='state']").val()
+ };
+ }
+
+ })
+</script>
--
Gitblit v1.9.1