From def723a6fa9cbe05734afe9011a6f90d2fa32196 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 03 Jun 2020 17:07:23 +0800
Subject: [PATCH] interface tiaozheng
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 26 ++++++------
src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java | 4 +-
src/main/resources/mapper/contract/ContractEntrustOrderDao.xml | 8 ++++
src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 6 ++
src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java | 11 +++--
src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java | 1
src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SymbolDto.java | 17 ++++++++
src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java | 2
src/main/resources/mapper/contract/ContractHoldOrderDao.xml | 8 ++++
src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java | 2 +
src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java | 2 +
src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java | 2 +
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 4 +-
src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java | 5 +-
14 files changed, 71 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
index f37d8dd..a71f393 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
@@ -49,8 +49,8 @@
@ApiResponse(code = 0, message = "success", response = ContractEntrustVo.class)
})
@GetMapping(value = "/findCurrentEntrustOrderList")
- public Result findCurrentEntrustOrderList() {
- return contractEntrustOrderService.findEntrustOrderList();
+ public Result findCurrentEntrustOrderList(@ApiParam(name = "symbol", value = "币种", example = "BTC/USDT") @RequestParam(value = "symbol", required = false) String symbol) {
+ return contractEntrustOrderService.findEntrustOrderList(symbol);
}
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 1449ba9..d394aaa 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
@@ -4,6 +4,7 @@
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.service.ContractHoldOrderService;
@@ -43,8 +44,8 @@
@ApiResponse(code = 0, message = "success", response = HoldOrderListVo.class)
})
@GetMapping(value = "/findHoldOrderList")
- public Result findHoldOrderList() {
- return contractHoldOrderService.findHoldOrderList();
+ public Result findHoldOrderList(@ApiParam(name = "symbol", value = "币种", required = true, example = "BTC/USDT") @RequestParam(value = "symbol", required = false) String symbol) {
+ return contractHoldOrderService.findHoldOrderList(symbol);
}
@ApiOperation(value = "未完成--根据Id查询订单详情")
@@ -60,9 +61,9 @@
}
@ApiOperation(value = "一键平仓")
- @GetMapping(value = "/oneKeyClosing")
- public Result oneKeyClosing() {
- return contractHoldOrderService.cancelHoldOrderBatch();
+ @PostMapping(value = "/oneKeyClosing")
+ public Result oneKeyClosing(@RequestBody SymbolDto symbolDto) {
+ return contractHoldOrderService.cancelHoldOrderBatch(symbolDto);
}
@ApiOperation(value = "设置止盈止损")
diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
index f52382e..3f07e27 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
@@ -15,6 +15,8 @@
public List<ContractEntrustOrderEntity> selectEntrustOrderListByMemberId(@Param("memberId") Long memberId);
+ public List<ContractEntrustOrderEntity> selectEntrustOrderListByMemberIdAndSymbol(@Param("memberId") Long memberId, @Param("symbol") String symbol);
+
public List<ContractEntrustOrderEntity> selectEntrustOrderListByIds(@Param("list") List<Long> list);
public List<ContractEntrustOrderEntity> selectAllEntrustOrder();
diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java
index e4e4b23..dd1f6ac 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractHoldOrderDao.java
@@ -36,6 +36,8 @@
public List<ContractHoldOrderEntity> selectHoldOrderListByMemberId(@Param("memberId") Long memberId);
+ public List<ContractHoldOrderEntity> selectHoldOrderListByMemberIdAndSymbol(@Param("memberId") Long memberId, @Param("symbol") String symbol);
+
public ContractHoldOrderEntity selectHoldOrderByMemberIdAndId(@Param("memberId") Long memberId, @Param("id") Long id);
public int updateHoldOrderIsCanClosingById(@Param("isCanClosing") int isCanClosing, @Param("id") Long id);
diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
index b88928d..680ca35 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
@@ -159,6 +159,8 @@
*/
private BigDecimal openingFeeAmount;
+ private Date openingTime;
+
/**
* 预付款金额
*/
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SymbolDto.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SymbolDto.java
new file mode 100644
index 0000000..4319d46
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/SymbolDto.java
@@ -0,0 +1,17 @@
+package com.xcong.excoin.modules.contract.parameter.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2020-06-03
+ **/
+@Data
+@ApiModel(value = "SymbolDto", description = "币种dto")
+public class SymbolDto {
+
+ @ApiModelProperty(value = "币种", example = "BTC/USDT")
+ private String symbol;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
index 436576d..2e27705 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
@@ -14,7 +14,7 @@
public Result addContractEntrustOrder(SubmitEntrustDto submitEntrustDto);
- public Result findEntrustOrderList();
+ public Result findEntrustOrderList(String symbol);
public Result cancelEntrustOrder(Long id);
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 5ac43ea..78cea15 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
@@ -6,6 +6,7 @@
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.rabbit.pricequeue.OrderModel;
import org.apache.ibatis.annotations.Param;
@@ -24,11 +25,11 @@
public void updateOrderIsCanClosingAndBatchNoById(Long id);
- public Result findHoldOrderList();
+ public Result findHoldOrderList(String symbol);
public Result cancelHoldOrder(Long id);
- public Result cancelHoldOrderBatch();
+ public Result cancelHoldOrderBatch(SymbolDto symbolDto);
public Result setTargetProfitOrLess(ProfitOrLessDto profitOrLessDto);
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 0cc3d15..3f91227 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
@@ -149,9 +149,9 @@
}
@Override
- public Result findEntrustOrderList() {
+ public Result findEntrustOrderList(String symbol) {
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
- List<ContractEntrustOrderEntity> list = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
+ List<ContractEntrustOrderEntity> list = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
List<ContractEntrustVo> resultList = ContractEntrustOrderEntityMapper.INSTANCE.entityListToVoList(list);
return Result.ok(resultList);
}
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 3f9b7b2..f30dc92 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
@@ -19,6 +19,7 @@
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.service.ContractHoldOrderService;
@@ -189,19 +190,18 @@
}
@Override
- public Result findHoldOrderList() {
+ public Result findHoldOrderList(String symbol) {
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
- List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
+ List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
if (CollUtil.isNotEmpty(list)) {
BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
List<HoldOrderListVo> resultList = new ArrayList<>();
for (ContractHoldOrderEntity holdOrderEntity : list) {
HoldOrderListVo holdOrderListVo = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToDto(holdOrderEntity);
- String symbol = holdOrderEntity.getSymbol();
// 获取最新价
- BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
- BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(symbol);
+ BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
+ BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
// 盈亏
BigDecimal rewardRatio = BigDecimal.ZERO;
// 开多
@@ -275,9 +275,9 @@
}
@Override
- public Result cancelHoldOrderBatch() {
+ public Result cancelHoldOrderBatch(SymbolDto symbolDto) {
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
- List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
+ List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbolDto.getSymbol());
if (CollUtil.isEmpty(holdOrderEntities)) {
return Result.fail("订单不存在");
}
@@ -287,8 +287,7 @@
contractHoldOrderDao.updateHoldOrderIsCanClosingById(ContractHoldOrderEntity.ORDER_CAN_CLOSING_N, holdOrderEntity.getId());
ids.add(holdOrderEntity.getId());
}
- ;
- producer.sendCloseTrade(JSONObject.toJSONString(ids));
+// producer.sendCloseTrade(JSONObject.toJSONString(ids));
return Result.ok("平仓成功");
}
@@ -447,8 +446,7 @@
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
- // 获取最新价
- BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
+ BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
// 当前合约委托单
List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
@@ -469,8 +467,10 @@
// 总盈利
BigDecimal totalProfitOrLess = BigDecimal.ZERO;
if (CollUtil.isNotEmpty(holdOrderEntities)) {
- BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(symbol);
for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
+ // 获取最新价
+ BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
+ BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
beUsedBondAmount = beUsedBondAmount.add(holdOrderEntity.getBondAmount());
// 单个订单盈利
@@ -509,7 +509,7 @@
contractMoneyInfoVo.setEquity(equity);
contractMoneyInfoVo.setFeeRatio(tradeSetting.getFeeRatio());
contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio());
- contractMoneyInfoVo.setNewPrice(newPrice);
+ contractMoneyInfoVo.setNewPrice(newPriceSymbol);
contractMoneyInfoVo.setSymbolSku(cacheSettingUtils.getSymbolSku(symbol));
contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp());
return Result.ok(contractMoneyInfoVo);
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
index 96ab15b..c6c2f49 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -532,10 +532,14 @@
contractHoldOrderEntity.setForceClosingPrice(forceSetPrice);
contractHoldOrderEntity.setLeverRatio(coinsCoinsOrder.getLeverRatio());
contractHoldOrderEntity.setOpeningPrice(entrustPrice);
+ contractHoldOrderEntity.setTradeType(ContractHoldOrderEntity.TRADE_TYPE_LIMIT);
contractHoldOrderService.save(contractHoldOrderEntity);
// 需要一个历史插入
ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(contractHoldOrderEntity);
+ contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice());
+ contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime());
+ contractOrderEntity.setOpeningTime(new Date());
contractOrderEntity.setId(null);
contractOrderService.save(contractOrderEntity);
// 发送爆仓的队列
@@ -551,7 +555,7 @@
}
// 扣除手续费
BigDecimal totalBalance = wallet.getTotalBalance().subtract(openFeePrice);
-
+ contractEntrustOrderService.removeById(coinsCoinsOrder.getId());
memberWalletContractService.increaseWalletContractBalanceById(null, totalBalance, null, wallet.getId());
// TODO 531 待写
calYj(memId, openFeePrice, contractOrderEntity, 1);
diff --git a/src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java b/src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java
index 2995aff..25638d8 100644
--- a/src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java
+++ b/src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java
@@ -50,7 +50,6 @@
if (CollectionUtils.isNotEmpty(holdOrderEntities)) {
for (ContractHoldOrderEntity order : holdOrderEntities) {
- log.info("---->>>{}", order.getSymbol());
// 开多1,开空 2
int openingType = order.getOpeningType();
// 1:买入委托2:开多3:开空4:平多5:平空6:爆仓平多7:爆仓平空
diff --git a/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml b/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
index 8b31fb1..ebb0698 100644
--- a/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
+++ b/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
@@ -11,6 +11,14 @@
select * from contract_entrust_order
where member_id=#{memberId}
</select>
+
+ <select id="selectEntrustOrderListByMemberIdAndSymbol" resultType="com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity">
+ select * from contract_entrust_order
+ where member_id=#{memberId}
+ <if test="symbol != null and symbol !=''">
+ and symbol=#{symbol}
+ </if>
+ </select>
<select id="selectEntrustOrderListByIds" resultType="com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity">
select * from contract_entrust_order
where id in
diff --git a/src/main/resources/mapper/contract/ContractHoldOrderDao.xml b/src/main/resources/mapper/contract/ContractHoldOrderDao.xml
index 024fe90..25f9dcb 100644
--- a/src/main/resources/mapper/contract/ContractHoldOrderDao.xml
+++ b/src/main/resources/mapper/contract/ContractHoldOrderDao.xml
@@ -24,6 +24,14 @@
select * from contract_hold_order where member_id=#{memberId} and is_can_closing=1 order by create_time desc
</select>
+ <select id="selectHoldOrderListByMemberIdAndSymbol" resultType="com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity">
+ select * from contract_hold_order where member_id=#{memberId}
+ <if test="symbol!=null and symbol!=''">
+ and symbol=#{symbol}
+ </if>
+ and is_can_closing=1
+ </select>
+
<select id="selectHoldOrderByMemberIdAndId" resultType="com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity">
select * from contract_hold_order where member_id=#{memberId} and id=#{id}
</select>
--
Gitblit v1.9.1