Helius
2020-08-11 71bc137f5a10f099230cbc0cfb1687ad5fe467fb
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -239,10 +239,10 @@
    }
    @Override
    public Result findHoldOrderList(String symbol) {
    public Result findHoldOrderList(String symbol, int type) {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
        List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol, type);
        MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
        if (CollUtil.isNotEmpty(list)) {
            BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
@@ -313,11 +313,13 @@
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectHoldOrderByMemberIdAndId(memberEntity.getId(), id);
        if (holdOrderEntity == null) {
            return Result.fail("订单不存在");
            // 订单不存在
            return Result.fail(MessageSourceUtils.getString("order_service_0027"));
        }
        if (ContractHoldOrderEntity.ORDER_CAN_CLOSING_N == holdOrderEntity.getIsCanClosing()) {
            return Result.fail("订单暂不可平仓");
            // 该订单暂不能平仓
            return Result.fail(MessageSourceUtils.getString("order_service_0045"));
        }
        contractHoldOrderDao.updateHoldOrderIsCanClosingById(ContractHoldOrderEntity.ORDER_CAN_CLOSING_N, id);
@@ -326,13 +328,37 @@
        ids.add(id);
        producer.sendCloseTrade(JSONObject.toJSONString(ids));
        return Result.ok("平仓成功");
        // 平仓成功
        return Result.ok(MessageSourceUtils.getString("order_service_0044"));
    }
    @Override
    public Result cancelHoldOrder(WholeCloseOrderDto wholeCloseOrderDto) {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectHoldOrderByMemberIdAndId(memberEntity.getId(), wholeCloseOrderDto.getId());
        if (holdOrderEntity == null) {
            // 订单不存在
            return Result.fail(MessageSourceUtils.getString("order_service_0027"));
        }
        if (ContractHoldOrderEntity.ORDER_CAN_CLOSING_N == holdOrderEntity.getIsCanClosing()) {
            // 该订单暂不能平仓
            return Result.fail(MessageSourceUtils.getString("order_service_0045"));
        }
        if (wholeCloseOrderDto.getCount() > holdOrderEntity.getSymbolCntSale()) {
            return Result.fail("可平张数不足");
        }
        holdOrderEntity.setSymbolCntSale(holdOrderEntity.getSymbolCntSale() - wholeCloseOrderDto.getCount());
        contractHoldOrderDao.updateById(holdOrderEntity);
        return null;
    }
    @Override
    public Result cancelHoldOrderBatch(SymbolDto symbolDto) {
        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol());
        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol(), 1);
        if (CollUtil.isEmpty(holdOrderEntities)) {
            return Result.fail("订单不存在");
        }
@@ -679,4 +705,19 @@
        }
        producer.sendPriceOperate(JSONObject.toJSONString(model));
    }
    @Override
    public Result changePositionType() {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        Integer positionType = member.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ADD ? ContractEntrustOrderEntity.POSITION_TYPE_ALL : ContractEntrustOrderEntity.POSITION_TYPE_ADD;
        MemberEntity updateEntity = new MemberEntity();
        updateEntity.setContractPositionType(positionType);
        updateEntity.setId(member.getId());
        int i = memberDao.updateById(updateEntity);
        if (i > 0) {
            LoginUserUtils.resetAppLoginUser(member);
            return Result.ok(MessageSourceUtils.getString("member_service_0040"));
        }
        return Result.fail(MessageSourceUtils.getString("member_service_0041"));
    }
}