From 9beb428f807920b0dd646edbed822313c47961c6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 23 Apr 2021 14:45:56 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/agent --- src/main/java/com/xcong/excoin/modules/agent/pojo/MemberDataInfoVo.java | 47 ++ src/main/java/com/xcong/excoin/modules/contract/vo/CoinVo.java | 4 src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java | 14 src/main/resources/templates/febs/views/modules/documentary/documentaryContract.html | 205 ++++++++++++ src/main/java/com/xcong/excoin/modules/agent/controller/ViewController.java | 10 src/main/resources/templates/febs/views/modules/contract/total-data.html | 76 ++++ src/main/java/com/xcong/excoin/common/utils/BigDecimalSerialize.java | 28 + src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java | 29 + src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderMapper.java | 6 src/main/java/com/xcong/excoin/modules/agent/controller/MemberController.java | 15 src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderProfitInfoEntity.java | 99 +++++ src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html | 115 ++++++ src/main/java/com/xcong/excoin/modules/contract/entity/FollowFollowerProfitEntity.java | 48 ++ src/main/java/com/xcong/excoin/modules/contract/entity/AgentReturnEntity.java | 8 src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java | 31 + src/main/java/com/xcong/excoin/modules/agent/service/impl/MemberServiceImpl.java | 6 src/main/java/com/xcong/excoin/modules/contract/controller/ViewController.java | 17 + src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderInfoEntity.java | 106 ++++++ src/main/java/com/xcong/excoin/modules/agent/service/IMemberService.java | 3 src/main/resources/mapper/modules/ContractOrderMapper.xml | 74 ++++ src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderLabelEntity.java | 25 + src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java | 25 + src/main/java/com/xcong/excoin/modules/contract/service/IContractOrderService.java | 3 23 files changed, 994 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/utils/BigDecimalSerialize.java b/src/main/java/com/xcong/excoin/common/utils/BigDecimalSerialize.java new file mode 100644 index 0000000..cea6d9e --- /dev/null +++ b/src/main/java/com/xcong/excoin/common/utils/BigDecimalSerialize.java @@ -0,0 +1,28 @@ +package com.xcong.excoin.common.utils; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.math.BigDecimal; + +/** + * BigDecimal保留两位小数 + * + */ +public class BigDecimalSerialize extends JsonSerializer<BigDecimal> { + + @Override + public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (value != null && !"".equals(value)) { + gen.writeString(((BigDecimal) value).setScale(2, BigDecimal.ROUND_HALF_DOWN) + ""); + + } else { + gen.writeString(value + ""); + + } + + } + +} diff --git a/src/main/java/com/xcong/excoin/modules/agent/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/agent/controller/MemberController.java index 8cdabf9..2fb1d11 100644 --- a/src/main/java/com/xcong/excoin/modules/agent/controller/MemberController.java +++ b/src/main/java/com/xcong/excoin/modules/agent/controller/MemberController.java @@ -45,6 +45,21 @@ return new FebsResponse().success().data(data); } + /** + * 数据总览 + * @param memberEntity + * @param request + * @return + */ + + @GetMapping("allMemberData") + public FebsResponse allMemberData(MemberEntity memberEntity, QueryRequest request) { + User user = getCurrentUser(); + memberEntity.setRefererIds(FebsConstant.USER_TYPE_ADMIN.equals(user.getType()) ? FebsConstant.DEFAULT_REFERER_ID : user.getInviteId()); + Map<String, Object> data = getDataTable(memberService.findAllMemberDataList(memberEntity, request)); + return new FebsResponse().success().data(data); + } + @GetMapping("getMemberAssets") public FebsResponse getMemberAssets(MemberEntity memberEntity, QueryRequest request) { User user = getCurrentUser(); diff --git a/src/main/java/com/xcong/excoin/modules/agent/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/agent/controller/ViewController.java index 74b18b8..12b7ea0 100644 --- a/src/main/java/com/xcong/excoin/modules/agent/controller/ViewController.java +++ b/src/main/java/com/xcong/excoin/modules/agent/controller/ViewController.java @@ -23,6 +23,16 @@ private final IUserService userService; + /** + * 数据总览 + * @return + */ + @GetMapping("allMemberData") + @RequiresPermissions("allMemberData:view") + public String allMemberData() { + return FebsUtil.view("modules/contract/total-data"); + } + @GetMapping("member") @RequiresPermissions("amember:view") public String member() { diff --git a/src/main/java/com/xcong/excoin/modules/agent/pojo/MemberDataInfoVo.java b/src/main/java/com/xcong/excoin/modules/agent/pojo/MemberDataInfoVo.java new file mode 100644 index 0000000..6b3c7e6 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/agent/pojo/MemberDataInfoVo.java @@ -0,0 +1,47 @@ +package com.xcong.excoin.modules.agent.pojo; + +import lombok.Data; + +@Data +public class MemberDataInfoVo { + + private int memberCount;//注册人数 + private String notNullNumber;//持仓人数 + + private String walletNumber;//币币账户不为空的人数 + private String walletCoinNumber;//合约账户不为空的人数 + private String platformProfitAndLoss;//平台总盈亏 + + private String walletNum;//币币余额 + private String walletCoinNum;//合约余额 + private String agentNum;//代理账户余额 + + private double avalableCoin;//币币可用 + + private double totalCoin;//总资产 + + private double avalableContract;//合约可用 + + private double totalContract;//合约总 + + private double chargeUsdt;//充值USDT + + private double appealUsdt;//提现USDT + + private double chargeCoin;//充币 + + private double appealCoin;//提币 + + private String fee;//佣金 + + private String closingPrice;//开仓费 + + private String sellClosingPrice;//平仓费 + + private String doingPrice;//持仓费 + + private String yingkui; + + private double allCoin; + +} diff --git a/src/main/java/com/xcong/excoin/modules/agent/service/IMemberService.java b/src/main/java/com/xcong/excoin/modules/agent/service/IMemberService.java index 972a07f..8abc9aa 100644 --- a/src/main/java/com/xcong/excoin/modules/agent/service/IMemberService.java +++ b/src/main/java/com/xcong/excoin/modules/agent/service/IMemberService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.agent.entity.MemberEntity; +import com.xcong.excoin.modules.agent.pojo.MemberDataInfoVo; /** * @author helius @@ -15,4 +16,6 @@ IPage<MemberEntity> findFeeAmountList(MemberEntity memberEntity, QueryRequest request); IPage<MemberEntity> findMemberAssetList(MemberEntity memberEntity, QueryRequest request); + + IPage<MemberDataInfoVo> findAllMemberDataList(MemberEntity memberEntity, QueryRequest request); } diff --git a/src/main/java/com/xcong/excoin/modules/agent/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/agent/service/impl/MemberServiceImpl.java index ceab7ed..2b48ad0 100644 --- a/src/main/java/com/xcong/excoin/modules/agent/service/impl/MemberServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/agent/service/impl/MemberServiceImpl.java @@ -6,6 +6,7 @@ import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.agent.entity.MemberEntity; import com.xcong.excoin.modules.agent.mapper.MemberMapper; +import com.xcong.excoin.modules.agent.pojo.MemberDataInfoVo; import com.xcong.excoin.modules.agent.service.IMemberService; import org.springframework.stereotype.Service; @@ -34,4 +35,9 @@ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.baseMapper.selectMemberAssetsList(page, memberEntity); } + + @Override + public IPage<MemberDataInfoVo> findAllMemberDataList(MemberEntity memberEntity, QueryRequest request) { + return null; + } } diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java index bb5d759..7934a0d 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java +++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java @@ -47,6 +47,35 @@ return new FebsResponse().success().data(data); } + @GetMapping("getHistoryDocumentaryList") + public FebsResponse getHistoryDocumentaryList(ContractOrderEntity contractOrderEntity, QueryRequest request) { + User user = getCurrentUser(); + if (user.getType().equals(FebsConstant.USER_TYPE_ADMIN)) { + contractOrderEntity.setRefererIds(FebsConstant.DEFAULT_REFERER_ID); + } else { + contractOrderEntity.setRefererIds(user.getInviteId()); + } + Map<String, Object> data = getDataTable(contractOrderService.findHistoryDocumentaryListInPage(contractOrderEntity, request)); + return new FebsResponse().success().data(data); + } + + @GetMapping("getHistoryDocumentaryprofitList") + public FebsResponse getHistoryDocumentaryprofitList(ContractOrderEntity contractOrderEntity, QueryRequest request,Integer parentId) { + User user = getCurrentUser(); + if (user.getType().equals(FebsConstant.USER_TYPE_ADMIN)) { + contractOrderEntity.setRefererIds(FebsConstant.DEFAULT_REFERER_ID); + } else { + contractOrderEntity.setRefererIds(user.getInviteId()); + } + if(parentId==null){ + ViewController.idFromMember=0; + } + contractOrderEntity.setId(ViewController.idFromMember); + Map<String, Object> data = getDataTable(contractOrderService.findHistoryDocumentaryprofitListInPage(contractOrderEntity, request)); + return new FebsResponse().success().data(data); + } + + @GetMapping("getHistoryList") public FebsResponse getHistoryList(ContractOrderEntity contractOrderEntity, QueryRequest request) { User user = getCurrentUser(); diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ViewController.java index cec326d..71b29d4 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/controller/ViewController.java +++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ViewController.java @@ -4,7 +4,9 @@ import com.xcong.excoin.common.utils.FebsUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; /** @@ -56,4 +58,19 @@ public String returnMoney() { return FebsUtil.view("modules/contract/return-list"); } + + @GetMapping("getHistoryDocumentaryList") + @RequiresPermissions("getHistoryDocumentaryList:view") + public String getHistoryDocumentaryList() { + return FebsUtil.view("modules/documentary/documentaryContract"); + } + /** + *交易员利润分成---详情 + */ + public static long idFromMember; + @GetMapping("seeFollowerInfo/{id}") + public String seeFollowerInfo(@PathVariable long id, Model model) { + idFromMember = id; + return FebsUtil.view("modules/documentary/seeFollowerInfo"); + } } diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/AgentReturnEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/AgentReturnEntity.java index c57be1a..277206e 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/entity/AgentReturnEntity.java +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/AgentReturnEntity.java @@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; import lombok.Data; import java.math.BigDecimal; @@ -40,20 +42,26 @@ private int orderType; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal closingFeeAmount; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal holdingFeeAmount; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal openingFeeAmount; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal returnAmount; private Long refererId; private String inviteId; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal returnRatio; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal childReturnRatio; /** diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java index 35282e5..434b3a4 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractHoldOrderEntity.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; import lombok.Data; import java.math.BigDecimal; @@ -84,11 +86,13 @@ /** * 币种规格 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal symbolSku; /** * 开仓价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal openingPrice; /** @@ -99,11 +103,13 @@ /** * 开仓手续费 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal openingFeeAmount; /** * 保证金 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal bondAmount; /** @@ -114,26 +120,31 @@ /** * 市场价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal markPrice; /** * 止损价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal stopLossPrice; /** * 止盈价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal stopProfitPrice; /** * 预付款金额 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal prePaymentAmount; /** * 预估强平价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal forceClosingPrice; private int operateNo; @@ -151,12 +162,15 @@ /** * 持仓费 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal holdAmount; private String inviteId; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal loseOrProfit; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal returnRatio; private int isProfit; diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java index 1f94782..382c465 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java @@ -2,11 +2,14 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; import lombok.Data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 合约订单历史表 @@ -92,6 +95,7 @@ /** * 委托开仓价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal entrustOpeningPrice; /** @@ -112,16 +116,19 @@ /** * 币种规格 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal symbolSku; /** * 平仓价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal closingPrice; /** * 平仓手续费 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal closingFeeAmount; /** @@ -142,31 +149,37 @@ /** * 止损价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal stopLossPrice; /** * 止盈价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal stopProfitPrice; /** * 盈亏金额 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal rewardAmount; /** * 盈亏比例 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal rewardRatio; /** * 开仓价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal openingPrice; /** * 开仓手续费 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal openingFeeAmount; private Date openingTime; @@ -174,26 +187,36 @@ /** * 预付款金额 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal prePaymentAmount; /** * 保证金 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal bondAmount; /** * 市场价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal markPrice; /** * 预估强平价 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal forceClosingPrice; + + /** + * 1普通合约2跟单合约 + */ + private int contractType; /** * 持仓费 */ + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal holdAmount; private int operateNo; @@ -211,6 +234,14 @@ @TableField(exist = false) private String timeType; + /** + * 盈亏金额返利 + */ + @TableField(exist = false) + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal rewardAmountProfit; + @TableField(exist = false) + private List<Long> IDs; } diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/FollowFollowerProfitEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowFollowerProfitEntity.java new file mode 100644 index 0000000..d16be8c --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowFollowerProfitEntity.java @@ -0,0 +1,48 @@ +package com.xcong.excoin.modules.contract.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@TableName("follow_follower_profit") +public class FollowFollowerProfitEntity extends BaseEntity{ + + /** + * + */ + private static final long serialVersionUID = 1L; + public static final Integer IS_FOLLOW_Y = 1; + public static final Integer IS_FOLLOW_N = 2; + + /** + * 跟随者ID + */ + private Long memberId; + /** + * 交易员ID + */ + private Long tradeId; + /** + * 交易员会员ID + */ + private Long tradeMemberId; + /** + * 累计跟随本金 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal totalPrincipal; + /** + * 累计收益 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal totalProfit; + /** + * 是否跟随 1-是 2-否 + */ + private Integer isFollow; +} \ No newline at end of file diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderInfoEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderInfoEntity.java new file mode 100644 index 0000000..cb4dee2 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderInfoEntity.java @@ -0,0 +1,106 @@ +package com.xcong.excoin.modules.contract.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 交易员信息表 + */ +@Data +@TableName("follow_trader_info") +public class FollowTraderInfoEntity extends BaseEntity{ + /** + * + */ + private static final long serialVersionUID = 1L; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date entryTime; + /** + * 会员ID + */ + private Long memberId; + /** + * 头像 + */ + private String avatar; + /** + * 名称 + */ + private String nickname; + /** + * 宣言 + */ + private String declaration; + /** + * 是否满员 1-是2-否 + */ + private Integer isAll; + public static final Integer IS_ALL_Y = 1; + public static final Integer IS_ALL_N = 2; + /** + * 设置成首页 + */ + private Integer isSetFrist; + public static final Integer IS_SETFRIST_Y = 1; + public static final Integer IS_SETFRIST_N = 0; + /** + * 利润 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal profitRatio; + /** + * 审核状态 1通过2不通过3待审核 + */ + private Integer verifyStatus; + public static final Integer VERIFYSTATUS_Y = 1; + public static final Integer VERIFYSTATUS_N = 2; + public static final Integer VERIFYSTATUS_ING = 3; + /** + * 是否开启带单 1是2否 + */ + private Integer isOpen; + public static final Integer ISOPEN_Y = 1; + public static final Integer ISOPEN_N = 2; + + /** + * 最大跟随人数 + */ + private Integer followNum; + + @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 double walletNum; + @TableField(exist = false) + private double walletCoinNum; + @TableField(exist = false) + private double agentNum; + @TableField(exist = false) + private String isok; + //当前跟随人数 + @TableField(exist = false) + private String followNumNow; + + +} diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderLabelEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderLabelEntity.java new file mode 100644 index 0000000..29b440d --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderLabelEntity.java @@ -0,0 +1,25 @@ +package com.xcong.excoin.modules.contract.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("follow_trader_label") +public class FollowTraderLabelEntity{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 标签 + */ + private String labels; + +} + diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderProfitInfoEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderProfitInfoEntity.java new file mode 100644 index 0000000..7cae739 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/contract/entity/FollowTraderProfitInfoEntity.java @@ -0,0 +1,99 @@ +package com.xcong.excoin.modules.contract.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.xcong.excoin.common.entity.BaseEntity; +import com.xcong.excoin.common.utils.BigDecimalSerialize; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@TableName("follow_trader_profit_info") +public class FollowTraderProfitInfoEntity extends BaseEntity{ + + /** + * + */ + private static final long serialVersionUID = 1L; + /** + * 交易员ID + */ + private Long traderId; + /** + * 会员ID + */ + private Long memberId; + /** + * 累计收益率 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal totalProfitRatio; + /** + * 带单总收益 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal totalProfit; + /** + * 跟随者总收益 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal followerTotalProfit; + /** + * 胜率 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal winRate; + /** + * 累计跟随人数 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal totalFollowerCnt; + /** + * 交易笔数 + */ + @JsonSerialize(using = BigDecimalSerialize.class) + 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/contract/mapper/ContractOrderMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderMapper.java index 7a74b40..9b2744a 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderMapper.java +++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderMapper.java @@ -6,10 +6,16 @@ import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author helius */ public interface ContractOrderMapper extends BaseMapper<ContractOrderEntity> { IPage<ContractOrderEntity> selectHistoryOrderListInPage(Page<ContractOrderEntity> page, @Param("record") ContractOrderEntity contractOrderEntity); + IPage<ContractOrderEntity> selectHistoryDocumentaryListInPage(Page<ContractOrderEntity> page, @Param("record") ContractOrderEntity contractOrderEntity); + IPage<ContractOrderEntity> selectHistoryDocumentaryprofitListInPage(Page<ContractOrderEntity> page, @Param("record") ContractOrderEntity contractOrderEntity); + + List<Long> selectFollowContractIdList(@Param("orderNoTrade")String orderNoTrade); } diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/IContractOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/IContractOrderService.java index eb6d315..63ead6f 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/IContractOrderService.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/IContractOrderService.java @@ -13,5 +13,8 @@ IPage<ContractOrderEntity> findHistoryOrderListInPage(ContractOrderEntity contractOrderEntity, QueryRequest request); + IPage<ContractOrderEntity> findHistoryDocumentaryListInPage(ContractOrderEntity contractOrderEntity, QueryRequest request); + IPage<ContractOrderEntity> findHistoryDocumentaryprofitListInPage(ContractOrderEntity contractOrderEntity, QueryRequest request); + IPage<AgentReturnEntity> findAgentReturnList(AgentReturnEntity agentReturnEntity, QueryRequest request); } diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java index 055633d..f55834b 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.xcong.excoin.modules.contract.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -12,6 +13,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; + +import java.util.List; /** * @author wzy @@ -31,6 +34,28 @@ } @Override + public IPage<ContractOrderEntity> findHistoryDocumentaryListInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { + Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + return this.baseMapper.selectHistoryDocumentaryListInPage(page, contractOrderEntity); + } + + @Override + public IPage<ContractOrderEntity> findHistoryDocumentaryprofitListInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { + //获取当前订单的全部跟随合约List<Long> IDs + ContractOrderEntity contractOrderEntityTrade = this.baseMapper.selectById(contractOrderEntity.getId()); + String orderNoTrade = contractOrderEntityTrade.getOrderNo(); + List<Long> ids = this.baseMapper.selectFollowContractIdList(orderNoTrade); + if(CollUtil.isEmpty(ids)){ + return null; + } + contractOrderEntity.setIDs(ids); + //查询全部跟单合约和返佣 + Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractOrderEntity> contractOrderEntityIPage = this.baseMapper.selectHistoryDocumentaryprofitListInPage(page, contractOrderEntity); + return this.baseMapper.selectHistoryDocumentaryprofitListInPage(page, contractOrderEntity); + } + + @Override public IPage<AgentReturnEntity> findAgentReturnList(AgentReturnEntity agentReturnEntity, QueryRequest request) { Page<AgentReturnEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); return agentReturnMapper.selectAgentReturnList(page, agentReturnEntity); diff --git a/src/main/java/com/xcong/excoin/modules/contract/vo/CoinVo.java b/src/main/java/com/xcong/excoin/modules/contract/vo/CoinVo.java index ce2bae0..0c3268c 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/vo/CoinVo.java +++ b/src/main/java/com/xcong/excoin/modules/contract/vo/CoinVo.java @@ -1,5 +1,7 @@ package com.xcong.excoin.modules.contract.vo; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.xcong.excoin.common.utils.BigDecimalSerialize; import lombok.Data; import java.math.BigDecimal; @@ -19,8 +21,10 @@ private String email; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal usdtAmount; + @JsonSerialize(using = BigDecimalSerialize.class) private BigDecimal coinAmount; private String orderNo; diff --git a/src/main/resources/mapper/modules/ContractOrderMapper.xml b/src/main/resources/mapper/modules/ContractOrderMapper.xml index 2133347..37962b3 100644 --- a/src/main/resources/mapper/modules/ContractOrderMapper.xml +++ b/src/main/resources/mapper/modules/ContractOrderMapper.xml @@ -43,4 +43,78 @@ order by c.create_time desc </select> + <select id="selectHistoryDocumentaryListInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity"> + select + a.phone, + a.email, + a.referer_id, + concat(b.first_name, b.second_name) name, + c.opening_fee_amount*(select fee_spread_ratio from platform_trade_setting) opening_fee_amount, + c.closing_fee_amount*(select fee_spread_ratio from platform_trade_setting) closing_fee_amount, + c.* + from member a + left join member_authentication b on a.id=b.member_id + inner join contract_order c on a.id=c.member_id + <where> + <if test="record!=null"> + <if test="record.refererIds!=null and record.refererIds!=''"> + and a.invite_id=#{record.refererIds} + </if> + <if test="record.name!=null and record.name!=''"> + and (a.phone=#{record.name} or a.email=#{record.name} or a.invite_id=#{record.name}) + </if> + <if test='record.timeType=="1"'> + and TO_DAYS(c.create_time) = TO_DAYS(NOW()) + </if> + <if test='record.timeType=="2"'> + and TO_DAYS(NOW()) - TO_DAYS(c.create_time) = 1 + </if> + <if test='record.timeType=="3"'> + and YEARWEEK(date_format(c.create_time,'%Y-%m-%d')) = YEARWEEK(now()) + </if> + <if test='record.timeType=="4"'> + and DATE_FORMAT(c.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE() , '%Y%m' ) + </if> + and c.order_status = 1 + and c.contract_type = 2 + and c.closing_time is not null + </if> + </where> + order by c.create_time desc + </select> + + <select id="selectHistoryDocumentaryprofitListInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity"> + select + a.phone, + a.email, + a.referer_id, + concat(b.first_name, b.second_name) name, + c.opening_fee_amount*(select fee_spread_ratio from platform_trade_setting) opening_fee_amount, + c.closing_fee_amount*(select fee_spread_ratio from platform_trade_setting) closing_fee_amount, + c.*, + d.amount rewardAmountProfit + from member a + left join member_authentication b on a.id=b.member_id + inner join contract_order c on a.id=c.member_id + left join follow_trader_profit_detail d on d.order_no = c.order_no + where + c.id in ( + <foreach collection="record.IDs" item="Ids" separator=","> + #{Ids} + </foreach> + ) + order by d.amount desc + </select> + + <select id="selectFollowContractIdList" resultType="long"> + SELECT + order_id + FROM + follow_follower_order_relation + WHERE + order_type = 2 + and trade_order_no = #{orderNoTrade} + and member_id != trade_member_id + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/contract/total-data.html b/src/main/resources/templates/febs/views/modules/contract/total-data.html new file mode 100644 index 0000000..f4c714d --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/contract/total-data.html @@ -0,0 +1,76 @@ +<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"> + <div class="layui-card-body febs-table-full"> + <table id=usersTable></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> +</script> +<!-- 表格操作栏 end --> +<script data-th-inline="none" type="text/javascript"> + // 引入组件并初始化 + layui.use([ 'jquery', 'form', 'table', 'febs'], function () { + var $ = layui.jquery, + laydate = layui.laydate, + febs = layui.febs, + form = layui.form, + table = layui.table, + $view = $('#febs-user'), + tableIns; + + form.render(); + // 表格初始化 + initTable(); + + function initTable() { + + tableInss = febs.table.init({ + elem: $('#usersTable'), + url: ctx + 'member/memberDataInfo', + cols: [[ + {field: 'memberCount', title: '注册用户数', minWidth: 120,align:'center'}, + {field: 'notNullNumber', title: '持仓用户数', minWidth: 120,align:'center'}, + {field: 'walletNumber', title: '币币账户有余额个数', minWidth: 200,align:'center'}, + {field: 'walletNum', title: '币币账户余额', minWidth: 200,align:'center'}, + {field: 'walletCoinNumber', title: '合约账户有余额个数', minWidth: 200,align:'center'}, + {field: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'}, + {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'}, + {field: 'allCoin', title: '平台总资产', minWidth: 200,align:'center'}, + {field: 'platformProfitAndLoss', title: '平台剩余USDT', + templet: function (d) { + if (d.platformProfitAndLoss > '0') { + return '<span style="color:green;">'+d.platformProfitAndLoss+'</span>' + } else { + return '<span style="color:red;">'+d.platformProfitAndLoss+'</span>' + } + }, minWidth: 200,align:'center'}, + {field: 'chargeCoin', title: '充币', minWidth: 200,align:'center'}, + {field: 'appealCoin', title: '提币', minWidth: 200,align:'center'}, + {field: 'fee', title: '佣金', minWidth: 200,align:'center'}, + {field: 'closingPrice', title: '开仓手续费', minWidth: 200,align:'center'}, + {field: 'sellClosingPrice', title: '平仓手续费', minWidth: 200,align:'center'}, + {field: 'doingPrice', title: '持仓手续费', minWidth: 200,align:'center'}, + {field: 'yingkui', title: '订单盈亏', + templet: function (d) { + if (d.yingkui > '0') { + return '<span style="color:green;">'+d.yingkui+'</span>' + } else { + return '<span style="color:red;">'+d.yingkui+'</span>' + } + }, minWidth: 200,align:'center'}, + {field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'}, + {field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'}, + ]] + }); + } + }) +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/documentary/documentaryContract.html b/src/main/resources/templates/febs/views/modules/documentary/documentaryContract.html new file mode 100644 index 0000000..b81357b --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/documentary/documentaryContract.html @@ -0,0 +1,205 @@ +<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"> + <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 class="layui-inline"> + <div class="layui-input-inline"> + <input type="text" placeholder="上级UID" name="refererId" + autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-block"> + <input type="radio" name="timeType" value="1" title="今日"> + <input type="radio" name="timeType" value="2" title="昨日"> + <input type="radio" name="timeType" value="3" title="本周"> + <input type="radio" name="timeType" value="4" title="本月"> + </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="open-type"> + {{# + var openType = { + 1: {title: '开多', color : 'blue'}, + 2: {title: '开空', color : 'red'}, + 3: {title: '平多', color : 'blue'}, + 4: {title: '平空', color : 'red'} + }[d.orderType]; + }} + <span class="layui-badge febs-bg-{{openType.color}}">{{ openType.title }}</span> +</script> +<script type="text/html" id="closing-type"> + {{# + var closingType = { + 0: {title: '-'}, + 2: {title: '平多'}, + 3: {title: '平空'}, + 4: {title: '爆仓平多'}, + 5: {title: '爆仓平空'}, + 6: {title: '止盈平多'}, + 7: {title: '止盈平空'}, + 8: {title: '止损平多'}, + 9: {title: '止损平空'}, + }[d.closingType]; + }} + <span>{{ closingType.title }}</span> +</script> + +<script type="text/html" id="contract-type"> + {{# + var contractType = { + 1: {title: '普通合约'}, + 2: {title: '跟单合约'}, + }[d.contractType]; + }} + <span>{{ contractType.title }}</span> +</script> +<script type="text/html" id="loseOrProfit"> + {{# if(d.orderType == 3 || d.orderType == 4){ }} + {{# if(d.rewardAmount >= 0){ }} + <span style="color: green">{{ d.rewardAmount }}</span> + {{# } else { }} + <span style="color: red">{{ d.rewardAmount }}</span> + {{# } }} + {{# } }} +</script> +<!-- 表格字段状态格式化 start --> + +<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, + $view = $('#febs-user'), + $query = $view.find('#query'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'createTime', type: null}, + tableIns, + timeType; + + form.render(); + + // 表格初始化 + initTable(); + // 初始化表格操作栏各个按钮功能 + table.on('tool(userTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + if (layEvent === 'seeFollowerInfo') { + febs.modal.open('跟单分红', 'contract/seeFollowerInfo/' + data.id, { + area: $(window).width() <= 750 ? '90%' : '80%', + offset: '30px', + btn2: function () { + layer.closeAll(); + }, + cancel: function(){ + var index=parent.layer.getFrameIndex(window.name); //获取当前窗口的name + parent.layer.close(index);//关闭当前窗口 + window.parent.location.reload();//刷新 + } + }); + $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(); + sortObject.type = 'null'; + timeType = null; + tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); + }); + + function initTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'userTable', + url: ctx + 'order/getHistoryDocumentaryList', + cols: [[ + {type: 'checkbox'}, + {field: 'orderNo', title: '订单编号', minWidth: 180, align: 'center'}, + {field: 'symbol', title: '合约名称', minWidth: 100, align: 'center'}, + {title: '跟单分红', + templet: function (d) { + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeFollowerInfo" shiro:hasPermission="user:update">查看</button>' + }, minWidth: 100,align:'center'}, + { title: '合约类型', templet: '#contract-type', minWidth: 100, align: 'center'}, + {field: 'refererId', title: '上级UID', minWidth: 100, align: 'center'}, + {field: 'name', title: '姓名', minWidth: 130, align: 'center'}, + {field: 'phone', title: '联系方式', minWidth: 130, align: 'center'}, + {field: 'email', title: '邮箱', minWidth: 140, align: 'center'}, + {title: '开仓类型', templet: '#open-type', minWidth: 100, align: 'center'}, + {field: 'entrustPrice', title: '委托价', minWidth: 100, align: 'center'}, + {field: 'openingPrice', title: '开仓价', minWidth: 130, align: 'center'}, + {field: 'openingFeeAmount', title: '开仓手续费', minWidth: 130, align: 'center'}, + {field: 'openingTime', title: '开仓时间', minWidth: 180, align: 'center'}, + {field: 'bondAmount', title: '保证金', minWidth: 120, align: 'center'}, + {field: 'symbolCnt', title: '成交量', minWidth: 100, align: 'center'}, + {field: 'stopProfitPrice', title: '止盈', minWidth: 100, align: 'center'}, + {field: 'stopLossPrice', title: '止损', minWidth: 120, align: 'center'}, + {field: 'holdAmount', title: '持仓费', minWidth: 140, align: 'center'}, + {templet: '#loseOrProfit', title: '平仓盈亏', minWidth: 140, align: 'center'}, + {field: 'closingPrice', title: '平仓价', minWidth: 140, align: 'center'}, + {field: 'closingFeeAmount', title: '平仓手续费', minWidth: 140, align: 'center'}, + { title: '平仓类型', templet: '#closing-type', minWidth: 100, align: 'center'}, + {field: 'closingTime', title: '平仓时间', minWidth: 180, align: 'center'}, + ]] + }); + } + + // 获取查询参数 + function getQueryParams() { + var type = $searchForm.find('input[name="timeType"]:checked').val(); + if (type) { + timeType = type; + } + return { + timeType : timeType, + name: $searchForm.find('input[name="account"]').val().trim(), + refererId: $searchForm.find('input[name="refererId"]').val().trim(), + invalidate_ie_cache: new Date() + }; + } + }) +</script> \ No newline at end of file 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..16d1339 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/documentary/seeFollowerInfo.html @@ -0,0 +1,115 @@ + +<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> +<!-- 表格字段状态格式化 start --> +<script type="text/html" id="open-type"> + {{# + var openType = { + 1: {title: '开多', color : 'blue'}, + 2: {title: '开空', color : 'red'}, + 3: {title: '平多', color : 'blue'}, + 4: {title: '平空', color : 'red'} + }[d.orderType]; + }} + <span class="layui-badge febs-bg-{{openType.color}}">{{ openType.title }}</span> +</script> +<script type="text/html" id="closing-type"> + {{# + var closingType = { + 0: {title: '-'}, + 2: {title: '平多'}, + 3: {title: '平空'}, + 4: {title: '爆仓平多'}, + 5: {title: '爆仓平空'}, + 6: {title: '止盈平多'}, + 7: {title: '止盈平空'}, + 8: {title: '止损平多'}, + 9: {title: '止损平空'}, + }[d.closingType]; + }} + <span>{{ closingType.title }}</span> +</script> + +<script type="text/html" id="contract-type"> + {{# + var contractType = { + 1: {title: '普通合约'}, + 2: {title: '跟单合约'}, + }[d.contractType]; + }} + <span>{{ contractType.title }}</span> +</script> +<script type="text/html" id="loseOrProfit"> + {{# if(d.orderType == 3 || d.orderType == 4){ }} + {{# if(d.rewardAmount >= 0){ }} + <span style="color: green">{{ d.rewardAmount }}</span> + {{# } else { }} + <span style="color: red">{{ d.rewardAmount }}</span> + {{# } }} + {{# } }} +</script> +<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 + 'order/getHistoryDocumentaryprofitList?parentId=1', + totalRow: true, + cols: [[ + {field: 'orderNo', title: '订单编号', minWidth: 180, align: 'center'}, + {field: 'symbol', title: '合约名称', minWidth: 100, align: 'center'}, + { title: '合约类型', templet: '#contract-type', minWidth: 100, align: 'center'}, + {field: 'rewardAmountProfit', title: '返利金额', minWidth: 100, align: 'center',totalRow: true}, + {title: '开仓类型', templet: '#open-type', minWidth: 100, align: 'center'}, + {field: 'openingPrice', title: '开仓价', minWidth: 130, align: 'center'}, + {field: 'openingFeeAmount', title: '开仓手续费', minWidth: 130, align: 'center'}, + {field: 'openingTime', title: '开仓时间', minWidth: 180, align: 'center'}, + {field: 'bondAmount', title: '保证金', minWidth: 120, align: 'center'}, + {field: 'symbolCnt', title: '成交量', minWidth: 100, align: 'center'}, + {templet: '#loseOrProfit', title: '平仓盈亏', minWidth: 140, align: 'center'}, + {field: 'closingPrice', title: '平仓价', minWidth: 140, align: 'center'}, + {field: 'closingFeeAmount', title: '平仓手续费', minWidth: 140, align: 'center'}, + { title: '平仓类型', templet: '#closing-type', minWidth: 100, align: 'center'}, + {field: 'closingTime', title: '平仓时间', minWidth: 180, align: 'center'}, + ]] + }); + } + + }) +</script> \ No newline at end of file -- Gitblit v1.9.1