From 69b5fdc593fa73424448df0c911c5177f7497e7c Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Mon, 01 Sep 2025 18:44:11 +0800
Subject: [PATCH] 停牌判断 新增申购记录
---
trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java | 16 ++++++++
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java | 19 +++++++++
trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java | 5 ++
trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java | 20 ++++++++++
trading-order-service/src/main/java/com/yami/trading/dao/ico/UserSubscriptionMapper.java | 7 +++
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java | 5 ++
trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java | 3 +
trading-order-service/src/main/java/com/yami/trading/service/ico/UserSubscriptionService.java | 17 ++++++++
trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml | 7 +++
9 files changed, 99 insertions(+), 0 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
index 1d3f217..95667f5 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
@@ -4,6 +4,7 @@
import com.yami.trading.bean.data.domain.Realtime;
import com.yami.trading.bean.data.domain.Trade;
import com.yami.trading.bean.item.domain.Item;
+import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.Arith;
import com.yami.trading.huobi.data.AdjustmentValueCache;
import com.yami.trading.huobi.data.DataCache;
@@ -91,6 +92,10 @@
Item item = itemService.findBySymbol(symbol);
symbol = item.getSymbol();
item = this.itemService.findBySymbol(symbol);
+ //停牌时不更新
+ if (itemService.isSuspended(item)) {
+ return;
+ }
Double currentValue = AdjustmentValueCache.getCurrentValue().get(symbol).doubleValue();
double close = event.getTicker().getClose().doubleValue();
double vol = event.getTicker().getVol().doubleValue();
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
index 7781ed8..f30648e 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiFuturesOrderController.java
@@ -137,6 +137,11 @@
if (!itemService.isContractTrading(bySymbol)) {
throw new YamiShopBindException("未开放合约交易");
}
+ if (itemService.isSuspended(bySymbol)) {
+ throw new YamiShopBindException("停牌禁止交易");
+ }
+
+
boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(bySymbol.getOpenCloseType());
if(!isOpen){
throw new YamiShopBindException("当前已经休市");
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
index d22ec9b..3ed4081 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
@@ -4,12 +4,15 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.bean.ico.domain.Ico;
import com.yami.trading.bean.ico.domain.UserSubscription;
+import com.yami.trading.bean.ico.dto.UserSubscriptionDTO;
+import com.yami.trading.bean.ico.query.IcoQuery;
import com.yami.trading.bean.item.query.ItemQuery;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.query.QueryWrapperGenerator;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.ico.IcoService;
+import com.yami.trading.service.ico.UserSubscriptionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -30,6 +33,9 @@
@Autowired
IcoService icoService;
+
+ @Autowired
+ UserSubscriptionService userSubscriptionService;
@Autowired
private RedissonClient redissonClient;
@@ -75,4 +81,17 @@
}
}
+ @ApiOperation(value = "新币申购记录列表")
+ @GetMapping("recordList")
+ public Result<Page<UserSubscriptionDTO>> recordList(IcoQuery icoQuery, Page<UserSubscriptionDTO> page) throws Exception {
+ QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (icoQuery, IcoQuery.class);
+ String partyId = SecurityUtils.getUser().getUserId();
+ if (StringUtils.isEmpty(partyId)) {
+ throw new YamiShopBindException("请重新登录");
+ }
+ queryWrapper.eq("u.user_id", partyId);
+ Page<UserSubscriptionDTO> result = userSubscriptionService.findPage(page, queryWrapper);
+ return Result.ok(result);
+ }
+
}
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java b/trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java
new file mode 100644
index 0000000..733ed84
--- /dev/null
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java
@@ -0,0 +1,20 @@
+package com.yami.trading.bean.ico.dto;
+
+import com.yami.trading.bean.ico.domain.UserSubscription;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UserSubscriptionDTO extends UserSubscription {
+
+ @ApiModelProperty("交易对名称")
+ private String name;
+
+
+ @ApiModelProperty("代码/交易对")
+ private String symbol;
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/dao/ico/UserSubscriptionMapper.java b/trading-order-service/src/main/java/com/yami/trading/dao/ico/UserSubscriptionMapper.java
index f3c7be5..c448673 100644
--- a/trading-order-service/src/main/java/com/yami/trading/dao/ico/UserSubscriptionMapper.java
+++ b/trading-order-service/src/main/java/com/yami/trading/dao/ico/UserSubscriptionMapper.java
@@ -1,8 +1,13 @@
package com.yami.trading.dao.ico;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.bean.ico.domain.UserSubscription;
+import com.yami.trading.bean.ico.dto.UserSubscriptionDTO;
+import org.apache.ibatis.annotations.Param;
/**
* 新币记录MAPPER接口
@@ -10,5 +15,7 @@
*/
public interface UserSubscriptionMapper extends BaseMapper<UserSubscription> {
+ Page<UserSubscriptionDTO> findList(Page<UserSubscriptionDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
index 9458213..4fca452 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
@@ -205,6 +205,9 @@
if (!itemService.isContractTrading(item)) {
throw new YamiShopBindException("未开放合约交易");
}
+ if (itemService.isSuspended(item)) {
+ throw new YamiShopBindException("停牌禁止交易");
+ }
List<ItemLeverageDTO> levers = itemLeverageService.findByItemId(item.getUuid());
log.info("{} --- order --- {} --- {}", order.getSymbol(), item.getUuid(), levers.size());
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/ico/UserSubscriptionService.java b/trading-order-service/src/main/java/com/yami/trading/service/ico/UserSubscriptionService.java
index c67c66a..f1ff21d 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/ico/UserSubscriptionService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/ico/UserSubscriptionService.java
@@ -1,11 +1,17 @@
package com.yami.trading.service.ico;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.yami.trading.bean.ico.domain.UserSubscription;
+import com.yami.trading.bean.ico.dto.UserSubscriptionDTO;
+import com.yami.trading.bean.item.dto.ItemSummaryDTO;
import com.yami.trading.dao.ico.UserSubscriptionMapper;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -18,6 +24,17 @@
@Slf4j
public class UserSubscriptionService extends ServiceImpl<UserSubscriptionMapper, UserSubscription> {
+ @Autowired
+ UserSubscriptionMapper userSubscriptionMapper;
+ /**
+ * 自定义分页检索
+ * @param page
+ * @param queryWrapper
+ * @return
+ */
+ public Page<UserSubscriptionDTO> findPage(Page<UserSubscriptionDTO> page, QueryWrapper queryWrapper) {
+ return userSubscriptionMapper.findList(page, queryWrapper);
+ }
}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java b/trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
index 7196128..cdb02e8 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
@@ -245,4 +245,20 @@
}
return true;
}
+
+ /**
+ * 是否停牌状态
+ * @param item
+ * @return
+ */
+ public boolean isSuspended(Item item) {
+ //虚拟币新币才判断
+ if (item.getType().equals(Item.cryptos) && (item.getCurrencyType() != null && item.getCurrencyType() == 1)) {
+ if (item.getStatus() != null && item.getStatus() == 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
diff --git a/trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml b/trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml
index 0049c3b..6e404a8 100644
--- a/trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml
+++ b/trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml
@@ -3,5 +3,12 @@
<mapper namespace="com.yami.trading.dao.ico.UserSubscriptionMapper">
+ <select id="findList" resultType="com.yami.trading.bean.ico.dto.UserSubscriptionDTO">
+ SELECT u.*,t.name,t.symbol
+ FROM user_subscription_record u
+ LEFT JOIN t_ico_project t ON t.id = u.ico_project_id
+ WHERE u.user_id='1'
+ ${ew.customSqlSegment}
+ </select>
</mapper>
--
Gitblit v1.9.3