From 95da7870f87ec42dbd572aba040492c881fe0b9c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 05 Jun 2020 15:35:21 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git
---
src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java | 57 +++++++
src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java | 62 +++++++
src/main/resources/mapper/contract/ContractOrderDao.xml | 10 +
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 87 ++++++++--
src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java | 4
src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java | 7
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | 4
src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java | 35 +++-
src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java | 7
src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java | 27 +++
src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java | 15 -
src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java | 28 +++
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 8
src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ChangeLeverRateDto.java | 24 +++
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 2
src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java | 72 ++++++++
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java | 13 +
17 files changed, 404 insertions(+), 58 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
index 7be7f09..633305d 100644
--- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
+++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -46,10 +46,10 @@
public static final String QUEUE_COINOUT = "QUEUE_COINOUT_NEW";
//价格操作
- public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE";
+ public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE_NEW";
// 平仓队列
- public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE";
+ public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
// 开多止盈路由键
diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
index 3a8a0a6..0be9cc1 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
@@ -1,12 +1,10 @@
package com.xcong.excoin.modules.contract.controller;
import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.modules.contract.parameter.dto.ChangeBondDto;
-import com.xcong.excoin.modules.contract.parameter.dto.ProfitOrLessDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SubmitOrderDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SymbolDto;
+import com.xcong.excoin.modules.contract.parameter.dto.*;
import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo;
import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo;
+import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
import com.xcong.excoin.modules.contract.service.ContractHoldOrderService;
import com.xcong.excoin.modules.contract.service.ContractOrderService;
import com.xcong.excoin.rabbit.producer.OrderProducer;
@@ -48,10 +46,10 @@
return contractHoldOrderService.findHoldOrderList(symbol);
}
- @ApiOperation(value = "未完成--根据Id查询订单详情")
+ @ApiOperation(value = "根据Id查询持仓订单详情")
@GetMapping(value = "/findHoldOrderDetail")
public Result findHoldOrderDetail(@ApiParam(name = "id", value = "持仓ID", required = true, example = "1") @RequestParam(value = "id") Long id) {
- return null;
+ return contractHoldOrderService.findHoldOrderDetailById(id);
}
@ApiOperation(value = "根据Id平仓")
@@ -74,14 +72,17 @@
@ApiOperation(value = "调整保证金")
@PostMapping(value = "/changeBond")
- public Result changeBond(ChangeBondDto changeBondDto) {
+ public Result changeBond(@RequestBody @Validated ChangeBondDto changeBondDto) {
return contractHoldOrderService.changeBond(changeBondDto);
}
- @ApiOperation(value = "未完成--分页查询历史订单列表")
- @GetMapping(value = "/findHistoryOrderList")
- public Result findHistoryOrderList() {
- return null;
+ @ApiOperation(value = "分页查询历史订单列表")
+ @ApiResponses({
+ @ApiResponse(code = 0, message = "success", response = OrderListVo.class)
+ })
+ @PostMapping(value = "/findHistoryOrderList")
+ public Result findHistoryOrderList(@RequestBody @Validated OrderListDto orderListDto) {
+ return contractHoldOrderService.findOrderList(orderListDto);
}
@ApiOperation(value = "获取合约页面资产信息")
@@ -93,4 +94,16 @@
return contractHoldOrderService.findContractMoneyInfo(symbol);
}
+ @ApiOperation(value = "调整杠杆")
+ @PostMapping(value = "/changeLeverRate")
+ public Result changeLeverRate(@RequestBody @Validated ChangeLeverRateDto changeLeverRateDto) {
+ return contractHoldOrderService.changeLeverRate(changeLeverRateDto);
+ }
+
+ @ApiOperation(value = "查询历史委托订单详情")
+ @GetMapping(value = "/findOrderDetailById")
+ public Result findOrderDetailById(@ApiParam(name = "id", value = "订单id", required = true, example = "1") @RequestParam(value = "id") Long id) {
+ return contractHoldOrderService.findOrderDetailById(id);
+ }
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
index 90694a5..f3ac561 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
@@ -1,10 +1,17 @@
package com.xcong.excoin.modules.contract.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import org.apache.ibatis.annotations.Param;
/**
* @author helius
*/
public interface ContractOrderDao extends BaseMapper<ContractOrderEntity> {
+
+ public IPage<ContractOrderEntity> selectContractOrderInPage(Page<ContractOrderEntity> page, Long memberId);
+
+ public ContractOrderEntity selectOrderDetailByIdAndMemberId(@Param("id") Long id, @Param("memberId") Long memberId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
index 6843d63..2367df6 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
@@ -2,6 +2,7 @@
import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity;
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderDetailVo;
import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -16,7 +17,10 @@
public static final ContractHoldOrderEntityMapper INSTANCE = Mappers.getMapper(ContractHoldOrderEntityMapper.class);
@Mapping(target = "orderType", source = "openingType")
+ @Mapping(target = "openingTime", source = "createTime")
public abstract ContractOrderEntity holdOrderToOrder(ContractHoldOrderEntity holdOrderEntity);
public abstract HoldOrderListVo holdOrderToDto(ContractHoldOrderEntity holdOrderEntity);
+
+ public abstract HoldOrderDetailVo holdOrderToOrderDetailVo(ContractHoldOrderEntity holdOrderEntity);
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java
new file mode 100644
index 0000000..b2e3ee2
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java
@@ -0,0 +1,28 @@
+package com.xcong.excoin.modules.contract.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.contract.parameter.vo.OrderDetailVo;
+import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-06-05
+ **/
+@Mapper
+public abstract class ContractOrderEntityMapper {
+ public static final ContractOrderEntityMapper INSTANCE = Mappers.getMapper(ContractOrderEntityMapper.class);
+
+ public abstract OrderListVo orderEntityToOrderListVo(ContractOrderEntity orderEntity);
+
+ public abstract List<OrderListVo> orderEntitiesToOrderListVo(List<ContractOrderEntity> orderEntities);
+
+ public abstract Page<OrderListVo> pageEntityToPageVo(IPage<ContractOrderEntity> orderEntityIPage);
+
+ public abstract OrderDetailVo entityToDetailVo(ContractOrderEntity orderEntity);
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ChangeLeverRateDto.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ChangeLeverRateDto.java
new file mode 100644
index 0000000..4ba4265
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/ChangeLeverRateDto.java
@@ -0,0 +1,24 @@
+package com.xcong.excoin.modules.contract.parameter.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author wzy
+ * @Date 2020/6/5
+ **/
+@Data
+@ApiModel(value = "ChangeLeverRateDto", description = "调整杠杆接口接收参数类")
+public class ChangeLeverRateDto {
+
+ @NotNull
+ @ApiModelProperty(value = "杠杆", example = "100")
+ private int leverRate;
+
+ @NotNull
+ @ApiModelProperty(value = "币种", example = "BTC/USDT")
+ private String symbol;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java
new file mode 100644
index 0000000..6a35286
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java
@@ -0,0 +1,27 @@
+package com.xcong.excoin.modules.contract.parameter.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author wzy
+ * @Date 2020/6/5
+ **/
+@Data
+@ApiModel(value = "OrderListDto", description = "历史委托订单列表接口参数接受类")
+public class OrderListDto {
+
+ @NotNull
+ @Min(1)
+ @ApiModelProperty(value = "第几页", example = "1")
+ private int pageNum;
+
+ @NotNull
+ @ApiModelProperty(value = "每页数量", example = "10")
+ private int pageSize;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
new file mode 100644
index 0000000..12cc92c
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
@@ -0,0 +1,62 @@
+package com.xcong.excoin.modules.contract.parameter.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2020-06-01
+ **/
+@Data
+@ApiModel(value = "HoldOrderDetailVo", description = "获取持仓订单详情接口返回类")
+public class HoldOrderDetailVo {
+
+ @ApiModelProperty("订单编号")
+ private String orderNo;
+
+ @ApiModelProperty("交易类型 1-市价2-限价")
+ private int tradeType;
+
+ @ApiModelProperty("币种")
+ private String symbol;
+
+ @ApiModelProperty("张数")
+ private int symbolCnt;
+
+ @ApiModelProperty("规格")
+ private BigDecimal symbolSku;
+
+ @ApiModelProperty("开仓价")
+ private BigDecimal openingPrice;
+
+ @ApiModelProperty("开仓类型 1-开多 2-开空")
+ private int openingType;
+
+ @ApiModelProperty("开仓手续费")
+ private BigDecimal openingFeeAmount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("开仓时间")
+ private Date openingTime;
+
+ @ApiModelProperty("保证金")
+ private BigDecimal bondAmount;
+
+ @ApiModelProperty("持仓费")
+ private BigDecimal holdAmount;
+
+ @ApiModelProperty("预估强平价")
+ private BigDecimal forceClosingPrice;
+
+ @ApiModelProperty("止损价")
+ private BigDecimal stopLossPrice;
+
+ @ApiModelProperty("止盈价")
+ private BigDecimal stopProfitPrice;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
index bdaef3e..86a2dbb 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
@@ -54,6 +54,9 @@
@ApiModelProperty(value = "可增加的最大保证金")
private BigDecimal canAddMaxBond;
+ @ApiModelProperty(value = "可减少最大保证金")
+ private BigDecimal canReduceMaxBond;
+
public BigDecimal getOpeningPrice() {
return openingPrice.setScale(4, BigDecimal.ROUND_DOWN);
}
@@ -69,4 +72,8 @@
public BigDecimal getCanAddMaxBond() {
return canAddMaxBond.setScale(4, BigDecimal.ROUND_DOWN);
}
+
+ public BigDecimal getCanReduceMaxBond() {
+ return canReduceMaxBond.setScale(4, BigDecimal.ROUND_DOWN);
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
index f0ca3df..53db2fe 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
@@ -1,11 +1,81 @@
package com.xcong.excoin.modules.contract.parameter.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
/**
* @author wzy
- * @date 2020-06-01
+ * @date 2020-06-05
**/
@Data
+@ApiModel(value = "OrderDetailVo", description = "历史委托订单详情接口返回参数类")
public class OrderDetailVo {
+
+ @ApiModelProperty("交易类型 1-市价2-限价")
+ private int tradeType;
+
+ @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空")
+ private int orderType;
+
+ @ApiModelProperty("订单编号")
+ private String orderNo;
+
+ @ApiModelProperty("委托开仓价")
+ private BigDecimal entrustOpeningPrice;
+
+ @ApiModelProperty("委托时间")
+ private Date entrustTime;
+
+ @ApiModelProperty("币种")
+ private String symbol;
+
+ @ApiModelProperty("张数")
+ private int symbolCnt;
+
+ @ApiModelProperty("平仓价")
+ private BigDecimal closingPrice;
+
+ @ApiModelProperty("平仓手续费")
+ private BigDecimal closingFeeAmount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("平仓时间")
+ private Date closingTime;
+
+ @ApiModelProperty("平仓类型 2平多3平空4爆仓平多5爆仓平空6止盈平多7止盈平空8止损平多9止损平空")
+ private int closingType;
+
+ @ApiModelProperty("止损价")
+ private BigDecimal stopLosePrice;
+
+ @ApiModelProperty("止盈价")
+ private BigDecimal stopProfitPrice;
+
+ @ApiModelProperty("盈亏金额")
+ private BigDecimal rewardAmount;
+
+ @ApiModelProperty("盈亏比例")
+ private BigDecimal rewardRatio;
+
+ @ApiModelProperty("开仓价")
+ private BigDecimal openingPrice;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("开仓时间")
+ private Date openingTime;
+
+ @ApiModelProperty("开仓手续费")
+ private BigDecimal openingFeeAmount;
+
+ @ApiModelProperty("保证金")
+ private BigDecimal bondAmount;
+
+ @ApiModelProperty("持仓费")
+ private BigDecimal holdAmount;
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
new file mode 100644
index 0000000..6ae45fe
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
@@ -0,0 +1,57 @@
+package com.xcong.excoin.modules.contract.parameter.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2020-06-05
+ **/
+@Data
+@ApiModel(value = "OrderListVo", description = "历史委托订单接口返回参数类")
+public class OrderListVo {
+
+ @ApiModelProperty("订单ID")
+ private Long id;
+
+ @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空")
+ private int orderType;
+
+ @ApiModelProperty("开仓均价")
+ private BigDecimal openingPrice;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("开仓价")
+ private Date openingTime;
+
+ @ApiModelProperty("开仓手续费")
+ private BigDecimal openingFeeAmount;
+
+ @ApiModelProperty("保证金")
+ private BigDecimal bondAmount;
+
+ @ApiModelProperty("张数")
+ private int symbolCnt;
+
+ @ApiModelProperty("已实现盈亏")
+ private BigDecimal rewardRatio;
+
+ @ApiModelProperty("平仓类型 2平多3平空4爆仓平多5爆仓平空6止盈平多7止盈平空8止损平多9止损平空")
+ private int closingType;
+
+ @ApiModelProperty("平仓手续费")
+ private BigDecimal closingFeeAmount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("平仓时间")
+ private Date closingTime;
+
+ @ApiModelProperty("强平价")
+ private BigDecimal forceClosingPrice;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
index 78cea15..9294a72 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
@@ -3,10 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity;
-import com.xcong.excoin.modules.contract.parameter.dto.ChangeBondDto;
-import com.xcong.excoin.modules.contract.parameter.dto.ProfitOrLessDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SubmitOrderDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SymbolDto;
+import com.xcong.excoin.modules.contract.parameter.dto.*;
import com.xcong.excoin.rabbit.pricequeue.OrderModel;
import org.apache.ibatis.annotations.Param;
@@ -37,4 +34,12 @@
public Result findContractMoneyInfo(String symbol);
+ public Result changeLeverRate(ChangeLeverRateDto changeLeverRateDto);
+
+ public Result findHoldOrderDetailById(Long id);
+
+ public Result findOrderList(OrderListDto orderListDto);
+
+ public Result findOrderDetailById(Long id);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
index 3e6f326..7bfdde4 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
@@ -121,7 +121,7 @@
int i = contractEntrustOrderDao.insert(entrustOrderEntity);
- memberWalletContractDao.increaseWalletContractBalanceById(entrustTotalAmount.negate(), null, entrustTotalAmount, walletContract.getId());
+ memberWalletContractDao.increaseWalletContractBalanceById(entrustTotalAmount.negate(), null, entrustOrderEntity.getBondAmount(), walletContract.getId());
if (i > 0) {
// 发送委托单队列消息
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index f6c8e47..d1853f2 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -3,6 +3,8 @@
import cn.hutool.core.collection.CollUtil;
import com.alibaba.druid.sql.visitor.functions.If;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.LoginUserUtils;
import com.xcong.excoin.common.enumerates.CoinTypeEnum;
@@ -16,12 +18,9 @@
import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity;
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper;
-import com.xcong.excoin.modules.contract.parameter.dto.ChangeBondDto;
-import com.xcong.excoin.modules.contract.parameter.dto.ProfitOrLessDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SubmitOrderDto;
-import com.xcong.excoin.modules.contract.parameter.dto.SymbolDto;
-import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo;
-import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo;
+import com.xcong.excoin.modules.contract.mapper.ContractOrderEntityMapper;
+import com.xcong.excoin.modules.contract.parameter.dto.*;
+import com.xcong.excoin.modules.contract.parameter.vo.*;
import com.xcong.excoin.modules.contract.service.ContractHoldOrderService;
import com.xcong.excoin.modules.member.dao.MemberLevelRateDao;
import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
@@ -159,14 +158,13 @@
contractOrderEntity.setOpeningTime(new Date());
contractHoldOrderDao.insert(holdOrderEntity);
int i = contractOrderDao.insert(contractOrderEntity);
- memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), null, null, walletContract.getId());
-
- // 计算佣金
- ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
if (i > 0) {
- return Result.ok("success");
+ memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
+ // 计算佣金
+ ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
+ return Result.ok("提交成功");
}
- return Result.fail("fail");
+ return Result.fail("提交失败");
}
@Override
@@ -189,6 +187,7 @@
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
+ MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
if (CollUtil.isNotEmpty(list)) {
BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
List<HoldOrderListVo> resultList = new ArrayList<>();
@@ -228,12 +227,17 @@
.divide(new BigDecimal(holdOrderEntity.getLeverRatio()), 8, BigDecimal.ROUND_DOWN);
// 可增加最大保证金
- BigDecimal canAddMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).subtract(costPrice);
- if (canAddMaxBond.compareTo(BigDecimal.ZERO) < 0) {
- canAddMaxBond = BigDecimal.ZERO;
+// BigDecimal canAddMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).subtract(costPrice);
+// if (canAddMaxBond.compareTo(BigDecimal.ZERO) < 0) {
+// canAddMaxBond = BigDecimal.ZERO;
+// }
+ BigDecimal canReduceMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getPrePaymentAmount());
+ if (canReduceMaxBond.compareTo(BigDecimal.ZERO) < 0) {
+ canReduceMaxBond = BigDecimal.ZERO;
}
- holdOrderListVo.setCanAddMaxBond(canAddMaxBond);
+ holdOrderListVo.setCanReduceMaxBond(canReduceMaxBond);
+ holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
holdOrderListVo.setReturnRate(returnRate);
holdOrderListVo.setProfitOrLoss(rewardRatio);
resultList.add(holdOrderListVo);
@@ -335,11 +339,11 @@
if (stopProfitPrice != null) {
if (newPrice.compareTo(openPrice) > 0) {
if (stopProfitPrice.compareTo(openPrice) > 0) {
- return Result.fail("止损价必须低于开仓价");
+ return Result.fail("止盈价必须低于开仓价");
}
} else {
if (stopProfitPrice.compareTo(newPrice) > 0) {
- return Result.fail("止损价必须低于当前价");
+ return Result.fail("止盈价必须低于当前价");
}
}
}
@@ -384,7 +388,6 @@
producer.sendPriceOperate(JSONObject.toJSONString(model));
return Result.ok("设置成功");
}
-
return Result.fail("设置失败");
}
@@ -509,4 +512,50 @@
contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp());
return Result.ok(contractMoneyInfoVo);
}
+
+ @Override
+ public Result changeLeverRate(ChangeLeverRateDto changeLeverRateDto) {
+ MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+ MemberLevelRateEntity levelRateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), changeLeverRateDto.getSymbol());
+ levelRateEntity.setLevelRateUp(changeLeverRateDto.getLeverRate());
+ levelRateEntity.setLevelRateDown(changeLeverRateDto.getLeverRate());
+ int i = memberLevelRateDao.updateById(levelRateEntity);
+ if (i > 0) {
+ return Result.ok("调整成功");
+ }
+ return Result.fail("调整失败");
+ }
+
+ @Override
+ public Result findHoldOrderDetailById(Long id) {
+ MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+ ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectHoldOrderByMemberIdAndId(memberEntity.getId(), id);
+ if (holdOrderEntity == null) {
+ return Result.fail("订单不存在");
+ }
+
+ HoldOrderDetailVo holdOrderDetailVo = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrderDetailVo(holdOrderEntity);
+ return Result.ok(holdOrderDetailVo);
+ }
+
+ @Override
+ public Result findOrderList(OrderListDto orderListDto) {
+ MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+ Page<ContractOrderEntity> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize());
+ IPage<ContractOrderEntity> list = contractOrderDao.selectContractOrderInPage(page, memberEntity.getId());
+ Page<OrderListVo> result = ContractOrderEntityMapper.INSTANCE.pageEntityToPageVo(list);
+ return Result.ok(result);
+ }
+
+ @Override
+ public Result findOrderDetailById(Long id) {
+ MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+ ContractOrderEntity contractOrderEntity = contractOrderDao.selectOrderDetailByIdAndMemberId(id, memberEntity.getId());
+ if (contractOrderEntity == null) {
+ return Result.fail("订单不存在");
+ }
+
+ OrderDetailVo orderDetailVo = ContractOrderEntityMapper.INSTANCE.entityToDetailVo(contractOrderEntity);
+ return Result.ok(orderDetailVo);
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index c103753..ebba922 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -134,13 +134,9 @@
contractOrderDao.insert(contractOrderEntity);
// 计算盈利或亏损后可用金额和总金额应该增加或减少的
- BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningPrice()).add(profitOrLoss);
- log.info("平仓增加金额:{}", addMoney);
+ BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).add(profitOrLoss);
- walletContract.setFrozenBalance(walletContract.getFrozenBalance().subtract(holdOrderEntity.getBondAmount()));
- walletContract.setAvailableBalance(walletContract.getAvailableBalance().add(addMoney));
- walletContract.setTotalBalance(walletContract.getTotalBalance().add(addMoney));
-
+ memberWalletContractDao.increaseWalletContractBalanceById(addMoney, profitOrLoss.subtract(contractOrderEntity.getOpeningFeeAmount()), null, walletContract.getId());
// 计算佣金
ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_CLOSE);
}
diff --git a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
index 401e7ac..a7e4e10 100644
--- a/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/home/service/impl/MemberQuickBuySaleServiceImpl.java
@@ -70,7 +70,7 @@
MemberQuickBuySaleVo memberQuickBuySaleVo = new MemberQuickBuySaleVo();
memberQuickBuySaleVo.setId(memberQuickBuySaleEntity.getId());
// 返回前台付款方式
- return Result.ok(memberQuickBuySaleVo);
+ return Result.ok("提交成功",memberQuickBuySaleVo);
}
@Override
@@ -183,19 +183,6 @@
MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleDao.selectByIdAndMemberId(member.getId(),id);
memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_USER);
memberQuickBuySaleDao.updateById(memberQuickBuySaleEntity);
-
- // 判断是否存在足够余额
- MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
- boolean flag = true;
- while(flag) {
- walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(memberQuickBuySaleEntity.getAmountUsdt()));
- walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(memberQuickBuySaleEntity.getAmountUsdt()));
- int i = memberWalletCoinDao.updateById(walletCoin);
- if(i>0) {
- flag = false;
- }
- walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(),CoinTypeEnum.USDT.toString());
- }
return Result.ok("成功");
}
}
diff --git a/src/main/resources/mapper/contract/ContractOrderDao.xml b/src/main/resources/mapper/contract/ContractOrderDao.xml
index 9e08e1f..4ad5cbc 100644
--- a/src/main/resources/mapper/contract/ContractOrderDao.xml
+++ b/src/main/resources/mapper/contract/ContractOrderDao.xml
@@ -2,4 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.contract.dao.ContractOrderDao">
+
+ <select id="selectContractOrderInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
+ select * from contract_order where member_id=#{memberId}
+ order by create_time desc
+ </select>
+
+ <select id="selectOrderDetailByIdAndMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
+ select * from contract_order where id=#{id} and member_id=#{memberId}
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1