From 0f900ede938b2dda75a09451e12f37f9facefc08 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 12 Dec 2025 14:39:01 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java |   55 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
index 9c88e38..3a0cf8f 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/dz/impl/StockDzServiceImpl.java
@@ -246,11 +246,11 @@
     }
 
     @Override
-    public Result getDzCheckList(int pageNum, int pageSize, String state, String stockCode, String stockType, List<String> checkedList) {
+    public Result getDzCheckList(int pageNum, int pageSize, String state, String stockCode, String stockType, String userName, List<String> checkedList) {
         try {
             Page page = new Page(pageNum, pageSize);
 
-            stockDzMapper.getDzCheckList(page ,state, stockCode, stockType, checkedList);
+            stockDzMapper.getDzCheckList(page ,state, stockCode, stockType, userName, checkedList);
             return Result.succeed(page);
         } catch (Exception e) {
             log.error(e.getMessage());
@@ -260,7 +260,7 @@
 
     @Transactional
     @Override
-    public Result buyDz(String dzId, String password, double num, String partyId) {
+    public Result buyDz(String dzId, String password, double num, String partyId, Boolean isAdmin) {
         try {
             if (num <= 0) {
                 throw new YamiShopBindException("请输入");
@@ -307,16 +307,19 @@
                     return Result.failed("请购买最小数量");
                 }
             }
-            boolean isOpen = MarketOpenChecker.isMarketOpenBuyDz(Item.US_STOCKS);
-            if (!isOpen) {
-                return Result.failed("当前股市休市");
-            }
 
+            if (!isAdmin) { //后台买入不判断
+                boolean isOpen = MarketOpenChecker.isMarketOpenBuyDz(Item.US_STOCKS);
+                if (!isOpen) {
+                    return Result.failed("当前股市休市");
+                }
+            }
 
             Wallet wallet = this.walletService.saveWalletByPartyId(partyId);
             BigDecimal buyAmt;
             if (isETF) {
                 buyAmt = new BigDecimal(num);
+                nowPrice = buyAmt;
             } else {
                 buyAmt = nowPrice.multiply(new BigDecimal(num));
             }
@@ -521,7 +524,7 @@
 
     @Transactional
     @Override
-    public Result closeDz(String id, Double num, String partyId) {
+    public Result closeDz(String id, Double num, String partyId, Boolean isAdmin) {
         try {
             ExchangeApplyOrderDz order = exchangeApplyOrderDzMapper.selectById(id);
             if (order == null) {
@@ -535,6 +538,9 @@
             }
             if (num < 0 || num > order.getSymbolValue()) {
                 throw new YamiShopBindException("数量错误");
+            }
+            if (partyId == null) {
+                partyId = order.getPartyId();
             }
 
             StockDz stockDz = this.stockDzMapper.selectOne(new QueryWrapper<StockDz>().eq("uuid", order.getDzId()));
@@ -554,26 +560,25 @@
             }
 
             Date now = new Date();
-            if (stockDz.getPeriod() != null && stockDz.getPeriod() > 0) {
-                Calendar calendar = Calendar.getInstance();
-                calendar.setTime(order.getCreateTime());
-                calendar.add(Calendar.DATE, stockDz.getPeriod());
-                // 锁仓时间
-                Date resultTime = calendar.getTime();
+            if (!isAdmin) {
+                if (stockDz.getPeriod() != null && stockDz.getPeriod() > 0) {
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(order.getCreateTime());
+                    calendar.add(Calendar.DATE, stockDz.getPeriod());
+                    // 锁仓时间
+                    Date resultTime = calendar.getTime();
 
-                if(now.getTime() < resultTime.getTime()){
-                    return Result.failed("未到平仓时间");
+                    if(now.getTime() < resultTime.getTime()){
+                        return Result.failed("未到平仓时间");
+                    }
+                }
+                if (!stockDz.getStockName().contains("测试")) {
+                    boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(Item.US_STOCKS);
+                    if (!isOpen) {
+                        return Result.failed("当前股市休市");
+                    }
                 }
             }
-            if (stockDz.getStockName().contains("测试")) {
-
-            } else {
-                boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(Item.US_STOCKS);
-                if (!isOpen) {
-                    return Result.failed("当前股市休市");
-                }
-            }
-
 
 
             Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());

--
Gitblit v1.9.3