From cb371230fa4f1d483dfe58e0b005e61cdb08a6d6 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 03 Mar 2021 18:07:15 +0800
Subject: [PATCH] 20210321 后台数据修改
---
src/main/java/com/xcong/excoin/modules/documentary/controller/ViewController.java | 21 ++
src/main/resources/mapper/modules/FollowFollowerProfitMapper.xml | 6
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java | 2
src/main/resources/mapper/modules/FollowTraderInfoMapper.xml | 8
src/main/resources/mapper/modules/FollowTraderProfitInfoMapper.xml | 13 +
src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html | 8
src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java | 8
src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowFollowerProfitMapper.java | 9 +
src/main/resources/mapper/modules/MemberMapper.xml | 7
src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java | 40 ++++
src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderProfitInfoMapper.java | 7
src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml | 2
src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html | 58 ++++++
src/main/resources/templates/febs/views/modules/documentary/modifyProfitRatio.html | 4
src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java | 21 +
src/main/resources/templates/febs/views/modules/documentary/traderProfit.html | 204 ++++++++++++++++++++++
src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 111 +++++++++++
src/main/resources/templates/febs/views/modules/documentary/traderDetail.html | 4
src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderInfoMapper.java | 4
19 files changed, 516 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java b/src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java
index 764cf0e..73ed183 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java
@@ -149,12 +149,25 @@
}
/**
- * 交易员数据---列表
+ * 交易员数据---列表---交易员利润分成
*/
- @GetMapping("traderDataInfo")
- public FebsResponse traderDataInfo(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) {
- Map<String, Object> data = getDataTable(documentaryService.findTraderDataInfoInfoInPage(followTraderProfitInfoEntity, request));
+ @GetMapping("traderProfitInfo")
+ public FebsResponse traderProfitInfo(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) {
+ Map<String, Object> data = getDataTable(documentaryService.findTraderProfitInfoInfoInPage(followTraderProfitInfoEntity, request));
return new FebsResponse().success().data(data);
}
+ /**
+ * 交易员数据---列表---跟单数据详情
+ */
+ @GetMapping("/seeFollowerInfo")
+ public FebsResponse seeFollowerInfo(QueryRequest request, FollowTraderProfitInfoEntity followTraderProfitInfoEntity,Integer parentId) {
+ if(parentId==null){
+ ViewController.idFromMember=0;
+ }
+ followTraderProfitInfoEntity.setId(ViewController.idFromMember);
+ Map<String, Object> dataTable = getDataTable(documentaryService.findlistSeeFollowerInfo(request, followTraderProfitInfoEntity));
+ return new FebsResponse().success().data(dataTable);
+ }
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/documentary/controller/ViewController.java
index 3a37e51..158e6c8 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/controller/ViewController.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/controller/ViewController.java
@@ -26,6 +26,17 @@
private final DocumentaryService documentaryService;
private final FollowTraderLabelMapper followTraderLabelMapper;
+
+ public static long idFromMember;
+
+ /**
+ *交易员利润分成---详情
+ */
+ @GetMapping("seeFollowerInfo/{id}")
+ public String seeFollowerInfo(@PathVariable long id, Model model) {
+ idFromMember = id;
+ return FebsUtil.view("modules/documentary/seeFollowerInfo");
+ }
/**
* 标签设置
@@ -90,5 +101,15 @@
model.addAttribute("member", data);
return FebsUtil.view("modules/documentary/modifyProfitRatio");
}
+
+ /**
+ * 交易员利润分成
+ * @return
+ */
+ @GetMapping("traderProfit")
+ @RequiresPermissions("traderProfit:view")
+ public String traderProfit() {
+ return FebsUtil.view("modules/documentary/traderProfit");
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java
index 52c6d27..37ea370 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java
@@ -1,6 +1,8 @@
package com.xcong.excoin.modules.documentary.entity;
import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.entity.BaseEntity;
@@ -46,6 +48,44 @@
* 交易笔数
*/
private BigDecimal totalOrderCnt;
+
+ @TableField(exist = false)
+ private String account;
+
+ @TableField(exist = false)
+ private String realName;
+ /**
+ * 手机号(包含国际手机号)
+ */
+ @TableField(exist = false)
+ private String phone;
+ /**
+ * 邮箱
+ */
+ @TableField(exist = false)
+ private String email;
+ /**
+ * 邀请码
+ */
+ @TableField(exist = false)
+ private String inviteId;
+
+ /**
+ * 账号类型
+ */
+ @TableField(exist = false)
+ private int accountType;
+
+ /**
+ * 利润率
+ */
+ @TableField(exist = false)
+ private BigDecimal profitRatio;
+ /**
+ * 总返利
+ */
+ @TableField(exist = false)
+ private BigDecimal profitRatioTotal;
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowFollowerProfitMapper.java b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowFollowerProfitMapper.java
index 99e771f..a100de3 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowFollowerProfitMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowFollowerProfitMapper.java
@@ -1,8 +1,17 @@
package com.xcong.excoin.modules.documentary.mapper;
+import org.apache.ibatis.annotations.Param;
+
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
+import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity;
+import com.xcong.excoin.modules.documentary.vo.SeeFollowerInfoVo;
public interface FollowFollowerProfitMapper extends BaseMapper<FollowFollowerProfitEntity> {
+ IPage<SeeFollowerInfoVo> findFollowFollowerProfitInfo(Page<SeeFollowerInfoVo> page,
+ @Param("record") FollowTraderInfoEntity followTraderInfo);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderInfoMapper.java b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderInfoMapper.java
index 9b785c3..71431e5 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderInfoMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderInfoMapper.java
@@ -12,4 +12,8 @@
IPage<FollowTraderInfoEntity> findTraderListInPage(Page<FollowTraderInfoEntity> page, @Param("record") FollowTraderInfoEntity followTraderInfoEntity);
+ String selectProfitRatioTotal(@Param("memberId") Long memberId);
+
+ String selectAllProfitByMemberIdAndTraderMemberId(@Param("memberId")long memberId, @Param("traderMemberId")Long traderMemberId);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderProfitInfoMapper.java b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderProfitInfoMapper.java
index 31eea4f..bdd9ded 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderProfitInfoMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/mapper/FollowTraderProfitInfoMapper.java
@@ -1,8 +1,15 @@
package com.xcong.excoin.modules.documentary.mapper;
+import org.apache.ibatis.annotations.Param;
+
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity;
public interface FollowTraderProfitInfoMapper extends BaseMapper<FollowTraderProfitInfoEntity> {
+ IPage<FollowTraderProfitInfoEntity> findTraderProfitInfoInfoInPage(Page<FollowTraderProfitInfoEntity> page,
+ @Param("record")FollowTraderProfitInfoEntity followTraderProfitInfoEntity);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java b/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
index 0383a7c..17a98b7 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
@@ -12,6 +12,7 @@
import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderLabelEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity;
+import com.xcong.excoin.modules.documentary.vo.SeeFollowerInfoVo;
public interface DocumentaryService extends IService<FollowTraderInfoEntity> {
@@ -33,11 +34,14 @@
void followLabelSetUpdate(@Valid FollowTraderLabelEntity followTraderLabelEntity);
- IPage<FollowTraderProfitInfoEntity> findTraderDataInfoInfoInPage(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request);
-
FebsResponse modifyProfitRatio(@Valid ModifyProfitRatioDto modifyProfitRatioDto);
FebsResponse traderGetOn(@NotNull(message = "{required}") Long id);
FebsResponse traderGetOutFrist(@NotNull(message = "{required}")Long id);
+
+ IPage<FollowTraderProfitInfoEntity> findTraderProfitInfoInfoInPage(FollowTraderProfitInfoEntity followTraderProfitInfoEntity,
+ QueryRequest request);
+
+ IPage<SeeFollowerInfoVo> findlistSeeFollowerInfo(QueryRequest request, FollowTraderProfitInfoEntity followTraderProfitInfoEntity);
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
index e5f476a..8767b38 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
@@ -1,6 +1,7 @@
package com.xcong.excoin.modules.documentary.service.impl;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -11,6 +12,7 @@
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.common.utils.RedisUtils;
+import com.xcong.excoin.modules.documentary.vo.SeeFollowerInfoVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -134,6 +136,9 @@
if(StrUtil.isNotEmpty(profitRatioStr)) {
profitRatio = new BigDecimal(profitRatioStr);
}
+ if(profitRatio.compareTo(BigDecimal.ZERO) < 0 || profitRatio.compareTo(BigDecimal.ONE) >= 0){
+ return new FebsResponse().fail().message("利润率设置规则:只允许0到1之间的小数");
+ }
String isok = followTraderInfoDto.getIsok();
if("1".equals(isok)) {
//更新【会员信息表】数据
@@ -238,11 +243,6 @@
}
@Override
- public IPage<FollowTraderProfitInfoEntity> findTraderDataInfoInfoInPage(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) {
- return null;
- }
-
- @Override
@Transactional
public FebsResponse modifyProfitRatio(@Valid ModifyProfitRatioDto modifyProfitRatioDto) {
Long id = modifyProfitRatioDto.getId();
@@ -254,6 +254,9 @@
String profitRatioStr = modifyProfitRatioDto.getProfitRatio();
if(StrUtil.isNotEmpty(profitRatioStr)) {
profitRatio = new BigDecimal(profitRatioStr);
+ }
+ if(profitRatio.compareTo(BigDecimal.ZERO) < 0 || profitRatio.compareTo(BigDecimal.ONE) >= 0){
+ return new FebsResponse().fail().message("利润率设置规则:只允许0到1之间的小数");
}
//更新【交易员信息表】数据
selectById.setProfitRatio(profitRatio);
@@ -284,4 +287,102 @@
return new FebsResponse().success();
}
+ @Override
+ public IPage<FollowTraderProfitInfoEntity> findTraderProfitInfoInfoInPage(
+ FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) {
+
+ Page<FollowTraderProfitInfoEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<FollowTraderProfitInfoEntity> FollowTraderProfitInfoEntitys = followTraderProfitInfoMapper.findTraderProfitInfoInfoInPage(page, followTraderProfitInfoEntity);
+ List<FollowTraderProfitInfoEntity> records = FollowTraderProfitInfoEntitys.getRecords();
+
+ if(CollUtil.isNotEmpty(records)) {
+ for(FollowTraderProfitInfoEntity followTraderProfitInfo : records) {
+ Long traderId = followTraderProfitInfo.getTraderId();
+ FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(traderId);
+ //利润率
+ BigDecimal profitRatio = BigDecimal.ZERO;
+ //总返利
+ BigDecimal profitRatioTotal = BigDecimal.ZERO;
+ if(ObjectUtil.isNotEmpty(followTraderInfoEntity)) {
+ profitRatio = followTraderInfoEntity.getProfitRatio();
+ profitRatioTotal = new BigDecimal(followTraderInfoMapper.selectProfitRatioTotal(followTraderInfoEntity.getMemberId())).setScale(2, RoundingMode.HALF_UP);
+ }
+ followTraderProfitInfo.setProfitRatio(profitRatio);
+ followTraderProfitInfo.setProfitRatioTotal(profitRatioTotal);
+
+ Long memberId = followTraderProfitInfo.getMemberId();
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+ if(CollUtil.isNotEmpty(selectByMap)) {
+ MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+ String firstName = memberAuthenticationEntity.getFirstName();
+ String secondName = memberAuthenticationEntity.getSecondName();
+ String realName = firstName + secondName;
+ followTraderProfitInfo.setRealName(realName);
+ }
+ }
+ }
+ return FollowTraderProfitInfoEntitys;
+ }
+
+ @Override
+ public IPage<SeeFollowerInfoVo> findlistSeeFollowerInfo(QueryRequest request, FollowTraderProfitInfoEntity followTraderProfitInfoEntity) {
+
+ Long id = followTraderProfitInfoEntity.getId();
+ if(ObjectUtil.isEmpty(id)) {
+ return null;
+ }
+ //获取交易员信息
+ FollowTraderProfitInfoEntity FollowTraderProfitInfo = followTraderProfitInfoMapper.selectById(id);
+ if(ObjectUtil.isEmpty(FollowTraderProfitInfo)) {
+ return null;
+ }
+ Long traderId = FollowTraderProfitInfo.getTraderId();
+ Long traderMemberId = FollowTraderProfitInfo.getMemberId();
+ FollowTraderInfoEntity FollowTraderInfo = followTraderInfoMapper.selectById(traderId);
+ if(ObjectUtil.isEmpty(FollowTraderInfo)) {
+ return null;
+ }
+ //获取当前的跟随者
+ Page<SeeFollowerInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<SeeFollowerInfoVo> seeFollowerInfoVos = followFollowerProfitMapper.findFollowFollowerProfitInfo(page, FollowTraderInfo);
+ List<SeeFollowerInfoVo> records = seeFollowerInfoVos.getRecords();
+ if(CollUtil.isNotEmpty(records)) {
+ for(SeeFollowerInfoVo seeFollowerInfoVo : records) {
+ long memberId = seeFollowerInfoVo.getMemberId();
+ MemberEntity memberEntity = memberMapper.selectById(memberId);
+ if(ObjectUtil.isNotEmpty(memberEntity)) {
+ String phone = memberEntity.getPhone();
+ String email = memberEntity.getEmail();
+ String inviteId = memberEntity.getInviteId();
+ seeFollowerInfoVo.setPhone(phone);
+ seeFollowerInfoVo.setEmail(email);
+ seeFollowerInfoVo.setInviteId(inviteId);
+ //合约账户总资产
+ String totalString = memberMapper.selectMemberWalletContractByMemberId(memberId);
+ BigDecimal contractTotal = new BigDecimal(totalString);
+ seeFollowerInfoVo.setContractTotal(contractTotal);
+ //总返利
+ String totalProfitStr = followTraderInfoMapper.selectAllProfitByMemberIdAndTraderMemberId(memberId,traderMemberId);
+ BigDecimal totalProfit = new BigDecimal(totalProfitStr);
+ seeFollowerInfoVo.setProfitTotal(totalProfit);
+
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+ if(CollUtil.isNotEmpty(selectByMap)) {
+ MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+ String firstName = memberAuthenticationEntity.getFirstName();
+ String secondName = memberAuthenticationEntity.getSecondName();
+ String realName = firstName + secondName;
+ seeFollowerInfoVo.setRealName(realName);
+ }
+ }
+ }
+ }
+
+ return seeFollowerInfoVos;
+ }
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
index d2528d6..7ec9414 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
@@ -420,5 +420,7 @@
String selectDLZCForAllDataInfo(@Param("record")MemberEntity memberEntity);
String selectSellClosingpriceForForAllDataInfo(@Param("record")MemberEntity memberEntity);
+
+ String selectMemberWalletContractByMemberId(@Param("memberId")long memberId);
}
diff --git a/src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml b/src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml
index 0993c26..c83eb47 100644
--- a/src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml
+++ b/src/main/resources/mapper/modules/ContractHoldOrderEntityMapper.xml
@@ -14,7 +14,7 @@
and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
</if>
<if test="record.contractType!=null and record.contractType!=''">
- and m.contract_type= #{record.contractType}
+ and s.contract_type= #{record.contractType}
</if>
<if test="record.isTest!=null and record.isTest!=''">
and m.account_type= #{record.isTest}
diff --git a/src/main/resources/mapper/modules/FollowFollowerProfitMapper.xml b/src/main/resources/mapper/modules/FollowFollowerProfitMapper.xml
index 305bf93..d4755f5 100644
--- a/src/main/resources/mapper/modules/FollowFollowerProfitMapper.xml
+++ b/src/main/resources/mapper/modules/FollowFollowerProfitMapper.xml
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.documentary.mapper.FollowFollowerProfitMapper">
-
+ <select id="findFollowFollowerProfitInfo" resultType="com.xcong.excoin.modules.documentary.vo.SeeFollowerInfoVo">
+ select * from follow_follower_profit s left join member m on m.id = s.member_id
+ where s.trade_id = #{record.id} and s.trade_member_id = #{record.memberId}
+ order by s.create_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/FollowTraderInfoMapper.xml b/src/main/resources/mapper/modules/FollowTraderInfoMapper.xml
index aaffab4..9d400d2 100644
--- a/src/main/resources/mapper/modules/FollowTraderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/FollowTraderInfoMapper.xml
@@ -16,5 +16,13 @@
</where>
order by s.create_time desc
</select>
+
+ <select id="selectProfitRatioTotal" resultType="java.lang.String">
+ select IFNULL(SUM(f.amount),'0') as amount from follow_trader_profit_detail f where f.member_id = #{memberId}
+ </select>
+
+ <select id="selectAllProfitByMemberIdAndTraderMemberId" resultType="java.lang.String">
+ select IFNULL(SUM(f.amount),'0') as amount from follow_trader_profit_detail f where f.member_id = #{traderMemberId} and f.follow_member_id = #{memberId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/FollowTraderProfitInfoMapper.xml b/src/main/resources/mapper/modules/FollowTraderProfitInfoMapper.xml
index 6047e9b..6c8d7ff 100644
--- a/src/main/resources/mapper/modules/FollowTraderProfitInfoMapper.xml
+++ b/src/main/resources/mapper/modules/FollowTraderProfitInfoMapper.xml
@@ -2,5 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.documentary.mapper.FollowTraderProfitInfoMapper">
+ <select id="findTraderProfitInfoInfoInPage" resultType="com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity">
+ select * from follow_trader_profit_info t
+ left join follow_trader_info s on s.id = t.trader_id
+ left join member m on m.id = t.member_id
+ <where>
+ <if test="record != null" >
+ <if test="record.account!=null and record.account!=''">
+ and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
+ </if>
+ </if>
+ </where>
+ order by s.create_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MemberMapper.xml b/src/main/resources/mapper/modules/MemberMapper.xml
index 744952d..3fb76c5 100644
--- a/src/main/resources/mapper/modules/MemberMapper.xml
+++ b/src/main/resources/mapper/modules/MemberMapper.xml
@@ -2,6 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.member.mapper.MemberMapper">
+ <select id="selectMemberWalletContractByMemberId" resultType="java.lang.String">
+ SELECT
+ total_balance
+ FROM
+ member_wallet_contract where member_id = #{memberId}
+ </select>
+
<select id="selectSellClosingpriceForForAllDataInfo" resultType="java.lang.String">
SELECT
IFNULL(SUM(a.closing_fee_amount),'0')
diff --git a/src/main/resources/templates/febs/views/modules/documentary/modifyProfitRatio.html b/src/main/resources/templates/febs/views/modules/documentary/modifyProfitRatio.html
index edf1067..9011d25 100644
--- a/src/main/resources/templates/febs/views/modules/documentary/modifyProfitRatio.html
+++ b/src/main/resources/templates/febs/views/modules/documentary/modifyProfitRatio.html
@@ -20,8 +20,8 @@
<div class="layui-fluid" id="user-update">
<form class="layui-form" action="" lay-filter="user-update-form">
<div class="layui-form-item">
- <div style="text-align: center">
- 利润率设置规则 --- 1:代表10%。
+ <div style="text-align: center;color:red">
+ 利润率设置规则:只允许0到1之间的小数
</div>
</div>
<div class="layui-form-item febs-hide">
diff --git a/src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html b/src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html
new file mode 100644
index 0000000..28d12ed
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html
@@ -0,0 +1,58 @@
+
+<div class="layui-fluid layui-anim febs-anim" id="febs-user-child" 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">
+ <table lay-filter="userTableChild" lay-data="{id: 'userTableChild'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script data-th-inline="none" type="text/javascript">
+ layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect' ,'eleTree'], function () {
+ var $ = layui.jquery,
+ laydate = layui.laydate,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ treeSelect = layui.treeSelect,
+ dropdown = layui.dropdown,
+ $view = $('#febs-user-child'),
+ $query = $view.find('#queryChild'),
+ $searchForm = $view.find('formChild'),
+ sortObject = {field: 'createTime', type: null},
+ tableIns,
+ createTimeFrom,
+ createTimeTo;
+
+ form.render();
+
+ initTable();
+
+ laydate.render({
+ elem: '#user-createTime',
+ range: true,
+ trigger: 'click'
+ });
+
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'userTable',
+ url: ctx + 'documentary/seeFollowerInfo?parentId=1',
+ cols: [[
+ {field: 'phone', title: '手机号', minWidth: 100,align:'left'},
+ {field: 'email', title: '邮箱', minWidth: 100,align:'left'},
+ {field: 'realName', title: '姓名', minWidth: 100,align:'left'},
+ {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
+ {field: 'contractTotal', title: '合约账户总资产', minWidth: 150,align:'left'},
+ {field: 'profitTotal', title: '总返利金额', minWidth: 150,align:'center'},
+ ]]
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/documentary/traderDetail.html b/src/main/resources/templates/febs/views/modules/documentary/traderDetail.html
index 8118bd3..cd059e7 100644
--- a/src/main/resources/templates/febs/views/modules/documentary/traderDetail.html
+++ b/src/main/resources/templates/febs/views/modules/documentary/traderDetail.html
@@ -20,8 +20,8 @@
<div class="layui-fluid" id="user-update">
<form class="layui-form" action="" lay-filter="user-update-form">
<div class="layui-form-item">
- <div style="text-align: center">
- 利润率设置规则 --- 1:代表10%。
+ <div style="text-align: center;color:red">
+ 利润率设置规则:只允许0到1之间的小数
</div>
</div>
<div class="layui-form-item febs-hide">
diff --git a/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html b/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html
new file mode 100644
index 0000000..7c4b03b
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html
@@ -0,0 +1,204 @@
+<div class="layui-fluid layui-anim febs-anim" id="trader-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" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" 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"></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="userTable" lay-data="{id: 'userTable'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+ <span shiro:lacksPermission="user:view,user:update,user:delete">
+ <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+ </span>
+ <a lay-event="edit" shiro:hasPermission="user:update"><i
+ class="layui-icon febs-edit-area febs-blue"></i></a>
+</script>
+<!-- 表格操作栏 end -->
+<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 = $('#trader-profit'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ sortObject = {field: 'phone', type: null},
+ tableIns;
+
+ form.render();
+
+ // 表格初始化
+ initTable();
+
+ // 初始化表格操作栏各个按钮功能
+ table.on('tool(userTable)', function (obj) {
+ var data = obj.data,
+ layEvent = obj.event;
+
+ if (layEvent === 'edit') {
+ febs.modal.open('交易员审核', 'modules/documentary/traderDetail/' + data.id, {
+ btn: ['确认', '取消'],
+ yes: function (index, layero) {
+ $('#user-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
+
+ if (layEvent === 'seeFollowerInfo') {
+ febs.modal.open('总利润详情', 'modules/documentary/seeFollowerInfo/' + data.id, {
+ area: $(window).width() <= 750 ? '90%' : '80%',
+ offset: '30px',
+ btn: ['取消'],
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ $query.click();
+ }
+ if (layEvent === 'modifyProfitRatio') {
+ febs.modal.open('收益率修改', 'modules/documentary/modifyProfitRatio/' + data.id, {
+ btn: ['确认', '取消'],
+ yes: function (index, layero) {
+ $('#user-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
+ if (layEvent === 'getOut') {
+ febs.modal.confirm('确认', '您是否要踢出该交易员?', function () {
+ confirmUsers(data.id);
+ });
+ }
+ if (layEvent === 'getOn') {
+ febs.modal.confirm('确认', '您是否推荐当前交易员?', function () {
+ confirmUsersGetOn(data.id);
+ });
+ }
+ if (layEvent === 'getOutFrist') {
+ febs.modal.confirm('确认', '您是否取消推荐当前交易员?', function () {
+ confirmUsersGetOutFrist(data.id);
+ });
+ }
+ if (layEvent === 'getFull') {
+ febs.modal.confirm('确认', '您是否要设置成【满员】状态?', function () {
+ cancelUsers(data.id);
+ });
+ }
+ });
+
+ function confirmUsers(id) {
+ febs.get(ctx + 'documentary/traderGetOut/' + id, null, function () {
+ febs.alert.success('踢出成功');
+ $query.click();
+ });
+ }
+ function confirmUsersGetOn(id) {
+ febs.get(ctx + 'documentary/traderGetOn/' + id, null, function () {
+ febs.alert.success('设置成功');
+ $query.click();
+ });
+ }
+ function confirmUsersGetOutFrist(id) {
+ febs.get(ctx + 'documentary/traderGetOutFrist/' + id, null, function () {
+ febs.alert.success('设置成功');
+ $query.click();
+ });
+ }
+ function cancelUsers(id) {
+ febs.get(ctx + 'documentary/traderGetFull/' + id, null, function () {
+ febs.alert.success('设置成功');
+ $query.click();
+ });
+ }
+
+
+ // 查询按钮
+ $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}});
+ });
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'userTable',
+ url: ctx + 'documentary/traderProfitInfo',
+ cols: [[
+ {field: 'phone', title: '手机号', minWidth: 100,align:'left'},
+ {field: 'realName', title: '姓名', minWidth: 100,align:'left'},
+ {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
+ {field: 'profitRatio', title: '利润率', minWidth: 80,align:'center'},
+ {field: 'profitRatioTotal', title: '总返利润', minWidth: 80,align:'center'},
+ {title: '利润详情',
+ templet: function (d) {
+ return '<button lay-event="seeFollowerInfo" shiro:hasPermission="user:update">查看</button>'
+ }, minWidth: 100,align:'center'},
+ {field: 'totalProfitRatio', title: '累计收益率', minWidth: 80,align:'center'},
+ {field: 'totalProfit', title: '带单总收益', minWidth: 80,align:'center'},
+ {field: 'followerTotalProfit', title: '跟随者总收益', minWidth: 80,align:'center'},
+ {field: 'winRate', title: '胜率', minWidth: 80,align:'center'},
+ {field: 'totalFollowerCnt', title: '累计跟随人数', minWidth: 80,align:'center'},
+ {field: 'totalOrderCnt', title: '交易笔数', minWidth: 80,align:'center'},
+ {field: 'accountType', title: '账号类型',
+ templet: function (d) {
+ if (d.accountType === 2) {
+ return '<span style="color:green;">测试账号</span>'
+ } else if (d.accountType === 1) {
+ return '<span style="color:red;">正常账号</span>'
+ }else{
+ return ''
+ }
+ }, minWidth: 80,align:'center'},
+ {field: 'email', title: '邮箱', minWidth: 100,align:'left'},
+ ]]
+ });
+ }
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ account: $searchForm.find('input[name="account"]').val().trim(),
+ };
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html b/src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html
index 9dab622..656c9d2 100644
--- a/src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html
@@ -1,4 +1,4 @@
-<div class="layui-fluid layui-anim febs-anim" id="trader-index" lay-title="交易员列表">
+<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="交易员列表">
<div class="layui-row febs-container">
<div class="layui-col-md12">
<div class="layui-card">
@@ -57,7 +57,7 @@
febs = layui.febs,
form = layui.form,
table = layui.table,
- $view = $('#trader-index'),
+ $view = $('#febs-user'),
$query = $view.find('#query'),
$reset = $view.find('#reset'),
$searchForm = $view.find('form'),
@@ -163,8 +163,8 @@
url: ctx + 'documentary/traderList',
cols: [[
{field: 'phone', title: '手机号', minWidth: 100,align:'left'},
- {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
- {field: 'realName', title: '姓名', minWidth: 200,align:'left'},
+ {field: 'email', title: '邮箱', minWidth: 100,align:'left'},
+ {field: 'realName', title: '姓名', minWidth: 100,align:'left'},
{field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
{field: 'profitRatio', title: '利润率', minWidth: 80,align:'center'},
{field: 'accountType', title: '账号类型',
--
Gitblit v1.9.1