src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -218,7 +218,7 @@ if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) { followOrderOperationService.closingFollowOrders(holdOrderEntity.getOrderNo()); } else { followFollowerProfitDao.updateFollowerProfitByTradeMemberId(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()), profitOrLoss, traderInfoEntity.getMemberId(), memberEntity.getId()); followFollowerProfitDao.updateFollowerProfitByTradeMemberId(holdOrderEntity.getBondAmount(), profitOrLoss, traderInfoEntity.getMemberId(), memberEntity.getId()); LogRecordUtils.insertFollowerNotice(memberEntity.getId(), NoticeConstant.CLOSE_ORDER_TITLE, StrUtil.format(NoticeConstant.CLOSE_ORDER_CONTENT, contractOrderEntity.getSymbol(), contractOrderEntity.getClosingPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString(), profitOrLoss.setScale(2, BigDecimal.ROUND_HALF_UP).toString(), traderInfoEntity.getNickname())); } } src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerOrderRelationDao.java
@@ -20,4 +20,5 @@ List<FollowFollowerOrderRelationEntity> selectFollowHoldOrderByTradeOrderNo(@Param("orderNo") String orderNo); BigDecimal selectTraderTotalProfit(@Param("memberId") Long memberId); BigDecimal selectTraderTotalProfitSelf(@Param("memberId") Long memberId); } src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java
@@ -42,7 +42,7 @@ private FollowTraderProfitInfoDao followTraderProfitInfoDao; //@Scheduled(cron = "0 0/30 * * * ? ") @Scheduled(cron = "0 0/5 * * * ?") @Scheduled(cron = "0/5 * * * * ? *") public void traderProfitUpdate() { log.info("交易员定时任务执行"); // 查询所有交易员信息 @@ -52,10 +52,11 @@ Long tradeMemberId = trader.getMemberId(); FollowTraderProfitInfoEntity traderInfoProfit = followTraderProfitInfoDao.selectTraderInfoProfitByMemberId(tradeMemberId); // 累计收益率 BigDecimal totalProfitRatio = contractOrderDao.selectFollowOrderTotalProfitByMemberId(tradeMemberId); BigDecimal totalProfitRatio = contractOrderDao.selectFollowOrderTotalProfitByMemberId(tradeMemberId).setScale(2, BigDecimal.ROUND_DOWN); traderInfoProfit.setTotalProfitRatio(totalProfitRatio); // 带单总收益 BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfit(tradeMemberId); // 带单总收益,只查询交易员自己的带单总收益 BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfitSelf(tradeMemberId); //BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfit(tradeMemberId); traderInfoProfit.setTotalProfit(totalProfit); // 交易笔数 List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderByMemberId(tradeMemberId); @@ -69,10 +70,10 @@ traderInfoProfit.setWinRate(winRate); } // 跟随者总收益 // 当前跟随者总收益 BigDecimal followerProfit = followFollowerProfitDao.selectAllFollowerProfit(tradeMemberId); traderInfoProfit.setFollowerTotalProfit(followerProfit); // 累计跟随人数 // 当前跟随人数 int followerCnt = followFollowerProfitDao.selectFollowerCntByTradeMemberId(tradeMemberId); traderInfoProfit.setTotalFollowerCnt(followerCnt); src/main/resources/mapper/documentary/FollowFollowerOrderRelationDao.xml
@@ -38,4 +38,10 @@ from follow_follower_order_relation a, contract_order b where a.order_id=b.id and a.trade_member_id=#{memberId} </select> <select id="selectTraderTotalProfitSelf" resultType="java.math.BigDecimal"> select sum(reward_amount) from contract_order where member_id=#{memberId} and contract_type=2 </select> </mapper> src/main/resources/mapper/documentary/FollowFollowerProfitDao.xml
@@ -108,6 +108,6 @@ <select id="selectAllFollowerProfit" resultType="java.math.BigDecimal"> select sum(total_profit) from follow_follower_profit where trade_member_id=#{tradeMemberId} where trade_member_id=#{tradeMemberId} and is_follow = 1 </select> </mapper>