xiaoyong931011
2020-07-23 51301a2cbac8a81476d8b39d9206c05fc649630d
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -307,6 +307,61 @@
      }
        return selectMemberListInPage;
   }
   @Override
   public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneTestInPage(
         ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
      Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTestInPage(page, contractHoldOrderEntity);
      List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
      if (records != null) {
            for (ContractHoldOrderEntity holdOrderEntity : records) {
               Long memberId = holdOrderEntity.getMemberId();
            Map<String, Object> columnMap = new HashMap<>();
            columnMap.put("member_id", memberId);
            List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
            if(selectByMap != null && selectByMap.size() > 0) {
               MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
               String firstName = memberAuthenticationEntity.getFirstName();
               String secondName = memberAuthenticationEntity.getSecondName();
               String realName = firstName + secondName;
               holdOrderEntity.setRealName(realName);
            }
               MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
                // 获取最新价
                BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
                BigDecimal lotNumber = holdOrderEntity.getSymbolSku();
                // 盈亏
                BigDecimal rewardRatio = BigDecimal.ZERO;
                // 开多
                if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
                    // (最新价-开仓价)*规格*张数
                    rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
                    // 开空
                } else {
                    // (开仓价-最新价)*规格*张数
                    rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
                }
                if (selectById.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
                   String selectTradeSetting = memberMapper.selectTradeSetting();
                    BigDecimal profitParam=new BigDecimal(selectTradeSetting);
                    if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
                        rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(profitParam));
                    } else {
                        rewardRatio = rewardRatio.multiply(BigDecimal.ONE.add(profitParam));
                    }
                }
                holdOrderEntity.setRewardRatio(rewardRatio);
            }
        }
      return findMemberAccountInfoListInPage;
   }