Helius
2020-09-10 ac33ee978b7f0a9e30ab2499c06207b8d6495915
modify
3 files modified
29 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java 20 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/contract/ContractOrderDao.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
@@ -29,4 +29,6 @@
    List<ContractOrderEntity> selectWholeOpenOrderByOrderNo(@Param("orderNo") String orderNo);
    BigDecimal selectWholeFeeAmountByOrderNo(@Param("orderNo") String orderNo);
    int updateOrderProfitOrLessById(@Param("rewardAmount") BigDecimal rewardAmount, @Param("rewardRatio") BigDecimal rewardRatio, @Param("id") Long id);
}
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -483,7 +483,7 @@
            Map<Object, Object> value = redisUtils.hmget(AppContants.WHOLE_BOMB_PREFIX + memberId);
            if (CollUtil.isNotEmpty(holdOrderEntities)) {
                PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
                for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
                    // 删除次仓订单
                    contractHoldOrderDao.deleteById(holdOrderEntity.getId());
@@ -491,23 +491,7 @@
                    String symbolPrice = (String) value.get(holdOrderEntity.getSymbol());
                    log.info("symbolPrice : {}, symbol : {}", symbolPrice, holdOrderEntity.getSymbol());
                    BigDecimal currentPrice = new BigDecimal(symbolPrice);
                    // 单个订单盈利
//                    BigDecimal profitOrLess = BigDecimal.ZERO;
//                    // 开多
//                    if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
//                        profitOrLess = currentPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
//                        // 开空
//                    } else {
//                        profitOrLess = holdOrderEntity.getOpeningPrice().subtract(currentPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
//                    }
//
//                    if (MemberEntity.IS_PROFIT_Y == memberEntity.getIsProfit()) {
//                        if (profitOrLess.compareTo(BigDecimal.ZERO) > 0) {
//                            profitOrLess = profitOrLess.multiply(BigDecimal.ONE.subtract(tradeSetting.getForceParam()));
//                        } else {
//                            profitOrLess = profitOrLess.multiply(BigDecimal.ONE.add(tradeSetting.getForceParam()));
//                        }
//                    }
                    BigDecimal profitOrLess = CalculateUtil.calOrderProfitOrLess(holdOrderEntity.getOpeningType(), currentPrice, holdOrderEntity.getOpeningPrice(), lotNumber, holdOrderEntity.getSymbolCntSale(), memberEntity.getIsProfit());
                    log.info("profitOrLess ---> {}", profitOrLess);
                    ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
src/main/resources/mapper/contract/ContractOrderDao.xml
@@ -90,4 +90,11 @@
        where order_no=#{orderNo}
        and order_type in (1,2) and order_status=1
    </select>
    <update id="updateOrderProfitOrLessById">
        update contract_order
        set reward_amount=#{rewardAmount},
        reward_ratio=#{rewardRatio}
        where id=#{id}
    </update>
</mapper>