From 3a6f68a40bb8be25ce19109ea595e8d0d7bfe510 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Fri, 05 Dec 2025 10:25:56 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index fc23fee..db143f7 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -185,9 +185,9 @@
             boolean pm_flag = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
             log.info("是否在上午交易时间 = {} 是否在下午交易时间 = {}", Boolean.valueOf(am_flag), Boolean.valueOf(pm_flag));
 
-//            if (!am_flag && !pm_flag) {
-//                return ServerResponse.createByErrorMsg("下单失败,不在交易时段内");
-//            }
+            if (!am_flag && !pm_flag) {
+                return ServerResponse.createByErrorMsg("下单失败,不在交易时段内");
+            }
             if (siteProduct.getHolidayDisplay()) {
                 return ServerResponse.createByErrorMsg("周末或节假日不能交易!");
             }
@@ -1224,8 +1224,9 @@
                 stockListVO = SinaStockApi.assembleStockListVO(SinaStockApi.getSinaStock(position.getStockGid()));
             }
 
-            if (stockListVO.getNowPrice() == null) {
-                stockListVO.setNowPrice("0");
+            if (stockListVO.getNowPrice() == null || new BigDecimal(stockListVO.getNowPrice()).compareTo(BigDecimal.ZERO) <= 0) {
+//                stockListVO.setNowPrice("0");
+                stockListVO.setNowPrice(String.valueOf(position.getBuyOrderIdIndex()));
             }
 
 
@@ -1877,8 +1878,8 @@
             }
             //    stockListVO = SinaStockApi.assembleStockListVO(SinaStockApi.getSinaStock(position.getStockGid()));
             nowPrice = stockListVO.getNowPrice();
-            if (nowPrice == null) {
-                if(position.getBuyOrderIdIndex().compareTo(BigDecimal.ZERO) > 0){
+            if (nowPrice == null || new BigDecimal(stockListVO.getNowPrice()).compareTo(BigDecimal.ZERO) <= 0) {
+                if(null != position.getBuyOrderIdIndex() && position.getBuyOrderIdIndex().compareTo(BigDecimal.ZERO) > 0){
                     nowPrice = String.valueOf(position.getBuyOrderIdIndex());
                 }else {
                     nowPrice = String.valueOf(position.getBuyOrderPrice());
@@ -2723,25 +2724,28 @@
     public void synchronizePrice(){
         Map<String,BigDecimal> priceMap = new HashMap<>();
         List<UserPosition> userPositions = this.userPositionMapper.synchronizePrice();
+        log.info("-------------------同步收盘价,查询数据总量 {}个--------------",userPositions.size());
+        int count = 0;
         for (UserPosition position : userPositions) {
             if(priceMap.containsKey(position.getStockGid())){
                 BigDecimal newPrice = priceMap.get(position.getStockGid());
                 position.setBuyOrderIdIndex(newPrice);
+                userPositionMapper.updateByPrimaryKey(position);
             }else {
                 StockListVO stockListVO = new StockListVO();
                 stockListVO = SinaStockApi.assembleLideStockListVO(LiDeDataUtils.getStock(position.getStockCode()));
                 if (ObjectUtils.isEmpty(stockListVO)) {
                     stockListVO = SinaStockApi.assembleStockListVO(SinaStockApi.getSinaStock(position.getStockGid()));
                 }
-                if(stockListVO.getNowPrice() == null){
-                    stockListVO.setNowPrice(String.valueOf(position.getBuyOrderPrice()));
+                if(stockListVO.getNowPrice() != null && new BigDecimal(stockListVO.getNowPrice()).compareTo(BigDecimal.ZERO) > 0){
+                    position.setBuyOrderIdIndex(new BigDecimal(stockListVO.getNowPrice()));
+                    priceMap.put(position.getStockGid(),new BigDecimal(stockListVO.getNowPrice()));
+                    userPositionMapper.updateByPrimaryKey(position);
                 }
-                position.setBuyOrderIdIndex(new BigDecimal(stockListVO.getNowPrice()));
-                priceMap.put(position.getStockGid(),new BigDecimal(stockListVO.getNowPrice()));
             }
-            userPositionMapper.updateByPrimaryKey(position);
+            count++;
         }
-        log.info("-------------------同步收盘价 {}个--------------");
+        log.info("-------------------同步收盘价 {}个--------------",count);
     }
 }
 

--
Gitblit v1.9.3