Helius
2020-08-03 cbefbc44b0d438a70ddadea887e5b4034cbb2224
src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java
@@ -18,6 +18,7 @@
import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao;
import com.xcong.excoin.modules.documentary.dao.FollowFollowerSettingDao;
import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao;
import com.xcong.excoin.modules.documentary.entity.FollowFollowerOrderRelationEntity;
import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
import com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity;
@@ -71,12 +72,15 @@
    @Resource
    private FollowTraderInfoDao followTraderInfoDao;
    @Override
    public void addFollowerOrder(Long id) {
        log.info("进入跟单处理逻辑");
        // 查询交易员订单
        ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(id);
        List<FollowFollowerSettingEntity> followerSettings = followFollowerSettingDao.selectAllFollowerSettingByTradeMemberId(holdOrderEntity.getMemberId());
        log.info("---->{}, {}", followerSettings.size(), holdOrderEntity.getMemberId());
        // 开仓价
        BigDecimal openPrice = holdOrderEntity.getOpeningPrice();
        PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
@@ -158,16 +162,26 @@
                followHoldOrder.setBondAmount(bondAmount.add(openFeePrice));
                followHoldOrder.setOperateNo(1);
                // 设置合约类型
                holdOrderEntity.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY);
                followHoldOrder.setContractType(ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY);
                ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
                ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(followHoldOrder);
                contractOrderEntity.setOpeningTime(new Date());
                contractHoldOrderDao.insert(holdOrderEntity);
                contractHoldOrderDao.insert(followHoldOrder);
                int i = contractOrderDao.insert(contractOrderEntity);
                log.info("----->{}", i);
                if (i > 0) {
                    memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
                    FollowFollowerOrderRelationEntity relationEntity = new FollowFollowerOrderRelationEntity();
                    relationEntity.setIsShow(FollowFollowerOrderRelationEntity.IS_SHOW_Y);
                    relationEntity.setMemberId(followHoldOrder.getMemberId());
                    relationEntity.setOrderId(followHoldOrder.getId());
                    relationEntity.setOrderType(FollowFollowerOrderRelationEntity.ORDER_TYPE_HOLD);
                    relationEntity.setTradeId(followTraderInfoEntity.getId());
                    relationEntity.setTradeMemberId(followTraderInfoEntity.getMemberId());
                    relationEntity.setTradeOrderId(id);
                    followFollowerOrderRelationDao.insert(relationEntity);
                    // 发送爆仓消息
                    sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo());