Helius
2020-08-11 71bc137f5a10f099230cbc0cfb1687ad5fe467fb
modify
4 files modified
64 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java 8 ●●●● patch | view | raw | blame | history
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 47 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
@@ -115,10 +115,16 @@
        return contractHoldOrderService.findOrderDetailById(id);
    }
    @ApiOperation(value = "全仓模式平仓")
    @ApiOperation(value = "全仓模式 - 平仓")
    @PostMapping(value = "/closingOrder")
    public Result closingOrder(@RequestBody @Validated WholeCloseOrderDto wholeCloseOrderDto) {
        return null;
    }
    @ApiOperation(value = "全仓模式 - 变更仓位类型")
    @GetMapping(value = "/changePositionType")
    public Result changePositionType() {
        return contractHoldOrderService.changePositionType();
    }
}
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
@@ -26,6 +26,8 @@
    public Result cancelHoldOrder(Long id);
    public Result cancelHoldOrder(WholeCloseOrderDto wholeCloseOrderDto);
    public Result cancelHoldOrderBatch(SymbolDto symbolDto);
    public Result setTargetProfitOrLess(ProfitOrLessDto profitOrLessDto);
@@ -44,4 +46,6 @@
    public void calHoldOrderHoldFeeAmount();
    public Result changePositionType();
}
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -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,7 +328,31 @@
        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
@@ -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"));
    }
}
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -173,4 +173,9 @@
     * 强平系数
     */
    private BigDecimal forceParam;
    /**
     * 合约仓位类型
     */
    private Integer contractPositionType;
}