From 85432ec0106fe27c2b2dbad5fdf0ea822e038859 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 03 Mar 2021 11:20:32 +0800
Subject: [PATCH] 20210303 交易员首页推荐
---
src/main/java/com/xcong/excoin/modules/documentary/dto/FollowTraderProfitInfoDto.java | 25 ++++++++
src/main/resources/mapper/documentary/FollowTraderProfitInfoDao.xml | 12 +++
src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java | 3
src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java | 6 ++
src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java | 3
src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 108 +++++++++++++++++++-----------------
src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderProfitInfoEntity.java | 4 +
7 files changed, 106 insertions(+), 55 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 2d734e4..d8c3fe1 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
@@ -16,6 +16,7 @@
import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto;
import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto;
import com.xcong.excoin.modules.documentary.dto.FollowRecordsDto;
+import com.xcong.excoin.modules.documentary.dto.FollowTraderProfitInfoDto;
import com.xcong.excoin.modules.documentary.dto.HistoryOrderRecordsDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowOrderDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowTraderInfoDto;
@@ -76,7 +77,7 @@
@ApiOperation(value="交易员列表", notes="交易员列表")
@ApiResponses({@ApiResponse( code = 200, message = "success", response = FollowTraderProfitInfoVo.class)})
@PostMapping(value = "/getFollowTraderProfitInfo")
- public Result getFollowTraderProfitInfo(@RequestBody @Valid RecordsPageDto recordsPageDto) {
+ public Result getFollowTraderProfitInfo(@RequestBody @Valid FollowTraderProfitInfoDto recordsPageDto) {
return documentaryService.getFollowTraderProfitInfo(recordsPageDto);
}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/dto/FollowTraderProfitInfoDto.java b/src/main/java/com/xcong/excoin/modules/documentary/dto/FollowTraderProfitInfoDto.java
new file mode 100644
index 0000000..4790c50
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/documentary/dto/FollowTraderProfitInfoDto.java
@@ -0,0 +1,25 @@
+package com.xcong.excoin.modules.documentary.dto;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "FollowTraderProfitInfoDto", description = "参数接受类")
+public class FollowTraderProfitInfoDto {
+ @NotNull
+ @Min(1)
+ @ApiModelProperty(value = "第几页", example = "1")
+ private int pageNum;
+
+ @NotNull
+ @ApiModelProperty(value = "每页数量", example = "10")
+ private int pageSize;
+
+ @ApiModelProperty(value = "1:首页", example = "1")
+ private int type;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
index 28f4d6f..92ca020 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
@@ -47,6 +47,12 @@
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;
/**
* 利润
*/
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 d819f7f..cadb89c 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
@@ -2,6 +2,7 @@
import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.system.base.BaseEntity;
@@ -53,5 +54,8 @@
*/
private int totalOrderCnt;
+ @TableField(exist = false)
+ private int type;
+
}
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 f29bdcf..4d15675 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
@@ -9,6 +9,7 @@
import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto;
import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto;
import com.xcong.excoin.modules.documentary.dto.FollowRecordsDto;
+import com.xcong.excoin.modules.documentary.dto.FollowTraderProfitInfoDto;
import com.xcong.excoin.modules.documentary.dto.HistoryOrderRecordsDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowOrderDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowTraderInfoDto;
@@ -23,7 +24,7 @@
public Result getMemberIsTradeInfo();
- public Result getFollowTraderProfitInfo(@Valid RecordsPageDto recordsPageDto);
+ public Result getFollowTraderProfitInfo(@Valid FollowTraderProfitInfoDto recordsPageDto);
public Result getHistoryOrderRecords(@Valid HistoryOrderRecordsDto historyOrderRecordsDto);
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 2609225..c26d763 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
@@ -41,6 +41,7 @@
import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto;
import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto;
import com.xcong.excoin.modules.documentary.dto.FollowRecordsDto;
+import com.xcong.excoin.modules.documentary.dto.FollowTraderProfitInfoDto;
import com.xcong.excoin.modules.documentary.dto.HistoryOrderRecordsDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowOrderDto;
import com.xcong.excoin.modules.documentary.dto.MyFollowTraderInfoDto;
@@ -143,10 +144,14 @@
}
@Override
- public Result getFollowTraderProfitInfo(@Valid RecordsPageDto recordsPageDto) {
-
+ public Result getFollowTraderProfitInfo(@Valid FollowTraderProfitInfoDto recordsPageDto) {
+
+ int type = recordsPageDto.getType();
Page<FollowTraderProfitInfoVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
FollowTraderProfitInfoEntity followTraderProfitInfoEntity = new FollowTraderProfitInfoEntity();
+ if(FollowTraderInfoEntity.IS_SETFRIST_Y.equals(type)) {
+ followTraderProfitInfoEntity.setType(type);
+ }
IPage<FollowTraderProfitInfoVo> followTraderProfitInfoList = followTraderProfitInfoDao.selectFollowTraderProfitInfoEntity(page, followTraderProfitInfoEntity);
List<FollowTraderProfitInfoVo> followTraderProfitInfoVoList = followTraderProfitInfoList.getRecords();
@@ -874,58 +879,59 @@
TradeOrderInfoVo myFollowOrderVo = new TradeOrderInfoVo();
//获取交易员信息
Long orderId = contractHoldOrderEntity.getId();
- myFollowOrderVo.setOrderId(orderId);
FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectTraderInfoByMemberId(memberId);
- String nickname = followTraderInfoEntity.getNickname();
- myFollowOrderVo.setNickname(nickname);
-
- String symbol = contractHoldOrderEntity.getSymbol();
- myFollowOrderVo.setSymbol(symbol);
- int orderType = contractHoldOrderEntity.getOpeningType();
- myFollowOrderVo.setOrderType(orderType);
- int leverRatio = contractHoldOrderEntity.getLeverRatio();
- myFollowOrderVo.setLeverRatio(leverRatio);
- int symbolCnt = contractHoldOrderEntity.getSymbolCnt();
- myFollowOrderVo.setSymbolCnt(symbolCnt);
- BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(2, BigDecimal.ROUND_DOWN);
- myFollowOrderVo.setBondAmount(bondAmount);
- BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(2, BigDecimal.ROUND_DOWN);
- myFollowOrderVo.setOpeningPrice(openingPrice);
- String orderNo = contractHoldOrderEntity.getOrderNo();
- myFollowOrderVo.setOrderNo(orderNo);
- Date openingTime = contractHoldOrderEntity.getCreateTime();
- myFollowOrderVo.setOpeningTime(openingTime);
-
- // 获取最新价
- BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol())));
- myFollowOrderVo.setNewPrice(newPrice);
-
- BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol());
- // 盈亏
- BigDecimal rewardRatio = BigDecimal.ZERO;
- // 开多
- if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) {
- // (最新价-开仓价)*规格*张数
- rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt()));
- // 开空
- } else {
- // (开仓价-最新价)*规格*张数
- rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt()));
- }
-
- if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
- PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
- if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
- rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam()));
+ if(ObjectUtil.isNotEmpty(followTraderInfoEntity)) {
+ myFollowOrderVo.setOrderId(orderId);
+ String nickname = followTraderInfoEntity.getNickname();
+ myFollowOrderVo.setNickname(nickname);
+ String symbol = contractHoldOrderEntity.getSymbol();
+ myFollowOrderVo.setSymbol(symbol);
+ int orderType = contractHoldOrderEntity.getOpeningType();
+ myFollowOrderVo.setOrderType(orderType);
+ int leverRatio = contractHoldOrderEntity.getLeverRatio();
+ myFollowOrderVo.setLeverRatio(leverRatio);
+ int symbolCnt = contractHoldOrderEntity.getSymbolCnt();
+ myFollowOrderVo.setSymbolCnt(symbolCnt);
+ BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(2, BigDecimal.ROUND_DOWN);
+ myFollowOrderVo.setBondAmount(bondAmount);
+ BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(2, BigDecimal.ROUND_DOWN);
+ myFollowOrderVo.setOpeningPrice(openingPrice);
+ String orderNo = contractHoldOrderEntity.getOrderNo();
+ myFollowOrderVo.setOrderNo(orderNo);
+ Date openingTime = contractHoldOrderEntity.getCreateTime();
+ myFollowOrderVo.setOpeningTime(openingTime);
+
+ // 获取最新价
+ BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol())));
+ myFollowOrderVo.setNewPrice(newPrice);
+
+ BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol());
+ // 盈亏
+ BigDecimal rewardRatio = BigDecimal.ZERO;
+ // 开多
+ if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) {
+ // (最新价-开仓价)*规格*张数
+ rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt()));
+ // 开空
+ } else {
+ // (开仓价-最新价)*规格*张数
+ rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt()));
}
+
+ if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
+ PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
+ if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
+ rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam()));
+ }
+ }
+ myFollowOrderVo.setRewardAmount(rewardRatio.setScale(2, BigDecimal.ROUND_DOWN));
+
+ // 回报率
+ BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN);
+ myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN));
+
+ myFollowOrderVos.add(myFollowOrderVo);
}
- myFollowOrderVo.setRewardAmount(rewardRatio.setScale(2, BigDecimal.ROUND_DOWN));
-
- // 回报率
- BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN);
- myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN));
-
- myFollowOrderVos.add(myFollowOrderVo);
}
}
diff --git a/src/main/resources/mapper/documentary/FollowTraderProfitInfoDao.xml b/src/main/resources/mapper/documentary/FollowTraderProfitInfoDao.xml
index eb35811..d66f75b 100644
--- a/src/main/resources/mapper/documentary/FollowTraderProfitInfoDao.xml
+++ b/src/main/resources/mapper/documentary/FollowTraderProfitInfoDao.xml
@@ -3,8 +3,16 @@
<mapper namespace="com.xcong.excoin.modules.documentary.dao.FollowTraderProfitInfoDao">
<select id="selectFollowTraderProfitInfoEntity" resultType="com.xcong.excoin.modules.documentary.vo.FollowTraderProfitInfoVo">
- select * from follow_trader_profit_info f left join member m on f.member_id = m.id
- where m.is_trader = 1
+ select * from follow_trader_profit_info f
+ left join member m on f.member_id = m.id
+ left join follow_trader_info t on t.member_id = f.member_id
+ <where>
+ m.is_trader = 1
+ <if test="record.type != null and record.type != '' ">
+ and t.is_set_frist = #{record.type}
+ </if>
+ </where>
+
order by f.id desc
</select>
--
Gitblit v1.9.1