Helius
2020-09-13 35636f3d0e19f7ec03aa672b9e8eecd6a62063f9
fix conflicts
5 files modified
51 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java 37 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/quartz/job/LoopExecutorJob.java 4 ●●●● patch | view | raw | blame | history
src/main/resources/application.yml 4 ●●●● patch | view | raw | blame | history
src/test/java/com/xcong/excoin/SymbolsTest.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
@@ -46,6 +46,10 @@
    public void calHoldOrderHoldFeeAmount();
<<<<<<< HEAD
    public Result changePositionType();
=======
    public void calHoldFeeAmountForBondAmount();
>>>>>>> master
}
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -478,6 +478,10 @@
                    canReduceMaxBond = BigDecimal.ZERO;
                }
                if (rewardRatio.compareTo(BigDecimal.ZERO) < 0) {
                    canReduceMaxBond = canReduceMaxBond.add(rewardRatio);
                }
                holdOrderListVo.setCanReduceMaxBond(canReduceMaxBond);
                holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
                holdOrderListVo.setReturnRate(returnRate);
@@ -951,4 +955,37 @@
        }
        return Result.fail(MessageSourceUtils.getString("member_service_0041"));
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void calHoldFeeAmountForBondAmount() {
        List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectAllHoldOrder();
        PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
        if (CollUtil.isNotEmpty(list)) {
            for (ContractHoldOrderEntity holdOrderEntity : list) {
                BigDecimal holdAmount = holdOrderEntity.getHoldAmount();
                if (holdAmount == null) {
                    holdAmount = BigDecimal.ZERO;
                }
                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().multiply(tradeSettingEntity.getDoingRatio());
                log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold);
                MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
                BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold);
                BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity);
                holdAmount = holdAmount.add(thisTimeHold);
                holdOrderEntity.setBondAmount(subBond);
                holdOrderEntity.setHoldAmount(holdAmount);
                holdOrderEntity.setForceClosingPrice(newForcePrice);
                holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
                contractHoldOrderDao.updateById(holdOrderEntity);
                // 发送爆仓消息
                sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
            }
        }
    }
}
src/main/java/com/xcong/excoin/quartz/job/LoopExecutorJob.java
@@ -46,11 +46,11 @@
    /**
     * 持仓费计算
     */
    @Scheduled(cron = "0 0 16/8 * * ?")
    @Scheduled(cron = "0 0 0/8 * * ?")
    public void updateDoingPrice() {
        log.info("#持仓费计算#");
        try {
            contractHoldOrderService.calHoldOrderHoldFeeAmount();
            contractHoldOrderService.calHoldFeeAmountForBondAmount();
        } catch (Exception e) {
            log.error("#持仓费计算错误#", e);
        }
src/main/resources/application.yml
@@ -7,10 +7,14 @@
  profiles:
    active: dev
  datasource:
<<<<<<< HEAD
#    url: jdbc:mysql://rm-bp151tw8er79ig9kb5o.mysql.rds.aliyuncs.com:3306/db_biue?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
#    username: ctcoin_data
#    password: ctcoin_123
    url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
=======
    url: jdbc:mysql://120.27.238.55:3306/db_base?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
>>>>>>> master
    username: ct_test
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
src/test/java/com/xcong/excoin/SymbolsTest.java
@@ -134,7 +134,7 @@
    @Test
    public void holdAmountTest() {
        try {
            contractHoldOrderService.calHoldOrderHoldFeeAmount();
            contractHoldOrderService.calHoldFeeAmountForBondAmount();
        } catch (Exception e) {
            log.info("-->", e);
        }