src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -184,9 +184,9 @@ */ //获取当前的合约持仓 //获取实时盈亏 BigDecimal profitAndLoss = new BigDecimal("50.000"); BigDecimal profitAndLoss = new BigDecimal("0"); //获取总付款 BigDecimal totalPayment = new BigDecimal("50.000"); BigDecimal totalPayment = new BigDecimal("0"); BigDecimal lastTotalBalance = new BigDecimal("0"); BigDecimal totalBalance = walletContract.getTotalBalance(); lastTotalBalance = totalBalance.add(profitAndLoss); src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
@@ -1,5 +1,8 @@ package com.xcong.excoin.modules.contract.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.xcong.excoin.common.system.base.BaseEntity; import lombok.Data; @@ -31,6 +34,11 @@ * 订单状态 撤单 */ public static final int ORDER_STATUS_CANCEL = 2; /** * 订单状态 成交 */ public static final int ORDER_STATUS_SUCCESS = 1; /** * 订单类型 开多 @@ -81,7 +89,7 @@ /** * 订单状态 - 1成交 2撤单 */ private int orderStatus; private int orderStatus = 1; /** * 委托开仓价 src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
@@ -22,5 +22,6 @@ public abstract HoldOrderListVo holdOrderToDto(ContractHoldOrderEntity holdOrderEntity); @Mapping(target = "openingTime", source = "createTime") public abstract HoldOrderDetailVo holdOrderToOrderDetailVo(ContractHoldOrderEntity holdOrderEntity); } src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
@@ -59,4 +59,8 @@ @ApiModelProperty("止盈价") private BigDecimal stopProfitPrice; @ApiModelProperty("倍率杠杆") private int leverRatio; } src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
@@ -78,4 +78,7 @@ @ApiModelProperty("持仓费") private BigDecimal holdAmount; @ApiModelProperty("杠杆") private int leverRatio; } src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
@@ -42,7 +42,7 @@ private int symbolCnt; @ApiModelProperty("已实现盈亏") private BigDecimal rewardRatio; private BigDecimal rewardAmount; @ApiModelProperty("平仓类型 2平多3平空4爆仓平多5爆仓平空6止盈平多7止盈平空8止损平多9止损平空") private int closingType; src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -188,6 +188,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(6); contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -277,6 +278,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(7); contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -367,6 +369,7 @@ contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); contractOrderEntity.setClosingType(8); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -458,6 +461,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(9); contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -554,6 +558,7 @@ contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice()); contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime()); contractOrderEntity.setOpeningTime(new Date()); contractOrderEntity.setId(null); contractOrderService.save(contractOrderEntity); // 发送爆仓的队列 @@ -621,7 +626,12 @@ if (isDone) { //删除次仓订单 contractHoldOrderService.removeById(orderId); // 订单状态转换 if (ContractOrderEntity.ORDER_TYPE_OPEN_MORE == contractOrderEntity.getOrderType()) { contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); } else { contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS); } //更新主表订单状态位为“已平仓” contractOrderEntity.setId(null); contractOrderEntity.setClosingPrice(nowPrice); src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -133,14 +133,8 @@ contractOrderEntity.setRewardRatio(rewardRatio); contractOrderDao.insert(contractOrderEntity); log.info("盈亏:{}", profitOrLoss); log.info("手续费:{}", holdOrderEntity.getOpeningFeeAmount()); log.info("保证金:{}", holdOrderEntity.getBondAmount()); // 计算盈利或亏损后可用金额和总金额应该增加或减少的 BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).add(profitOrLoss); log.info("金额:{}", addMoney); log.info("----->:{}", contractOrderEntity.getOpeningFeeAmount()); memberWalletContractDao.increaseWalletContractBalanceById(addMoney, profitOrLoss.subtract(contractOrderEntity.getOpeningFeeAmount()), null, walletContract.getId()); // 计算佣金 ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_CLOSE); src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
@@ -58,9 +58,6 @@ String code = jsonObject.getString("code"); if ("200".equals(code)) { JSONObject jsonData = (JSONObject) jsonObject.get("data"); log.info("{}", jsonData); log.info("{}", jsonData.getDouble("price")); log.info("{}", jsonData.getString("price")); cnyUsdtExchangeDao.updateUsdt(BigDecimal.valueOf(jsonData.getDouble("price"))); } } catch (Exception e) { src/main/resources/application-test.yml
@@ -94,9 +94,9 @@ debug: true redis_expire: 3000 kline-update-job: false newest-price-update-job: false other-job: false rabbit-consumer: false newest-price-update-job: true other-job: true rabbit-consumer: true aliyun: oss: src/main/resources/application.yml
@@ -96,10 +96,10 @@ # k线更新任务控制 kline-update-job: false #最新价任务控制 newest-price-update-job: true newest-price-update-job: false #其他任务控制 other-job: false rabbit-consumer: true rabbit-consumer: false aliyun: oss: src/test/java/com/xcong/excoin/RabbitMqTest.java
@@ -1,5 +1,6 @@ package com.xcong.excoin; import com.xcong.excoin.rabbit.pricequeue.WebsocketPriceService; import com.xcong.excoin.rabbit.producer.TestProducer; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -16,9 +17,17 @@ @Autowired private TestProducer testProducer; @Resource private WebsocketPriceService websocketPriceService; @Test public void sendTestMsg() { testProducer.sendTestMsg("this is test msg"); } @Test public void bombTest() { websocketPriceService.comparePriceDesc("BTC/USDT", "9608"); } }