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/utils/stock/sina/SinaStockApi.java | 1 +
src/main/resources/mapper/UserPositionMapper.xml | 2 +-
src/main/java/com/nq/utils/task/stock/StockTask.java | 2 +-
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 30 +++++++++++++++++-------------
4 files changed, 20 insertions(+), 15 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);
}
}
diff --git a/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java b/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
index bbbd3f6..cd89e76 100644
--- a/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
@@ -43,6 +43,7 @@
System.out.println("http://36.138.182.213:7001/crypto/getSinaStock?stockGid=" + stockGid);
sina_result = HttpClientRequest.doGet("http://36.138.182.213:7001/crypto/getSinaStock?stockGid=" + stockGid);
System.out.println("请求返回:"+sina_result);
+// sina_result = "var hq_str_sz300270=\"中威电子,0.000,11.710,0.000,0.000,0.000,0.000,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,2025-12-03,09:10:06,00\";";
} catch (Exception e) {
log.error("获取股票行情出错,错误信息 = {}", e);
}
diff --git a/src/main/java/com/nq/utils/task/stock/StockTask.java b/src/main/java/com/nq/utils/task/stock/StockTask.java
index 84aa6cb..daf1550 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -48,7 +48,7 @@
}
log.info("am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
}
- @Scheduled(cron = "0 0 18 * * ?")
+ @Scheduled(cron = "0 30 16 * * ?")
// @Scheduled(cron = "0 * * * * ?")
public void synchronizePrice(){
this.userPositionService.synchronizePrice();
diff --git a/src/main/resources/mapper/UserPositionMapper.xml b/src/main/resources/mapper/UserPositionMapper.xml
index 4053f52..67df1d3 100644
--- a/src/main/resources/mapper/UserPositionMapper.xml
+++ b/src/main/resources/mapper/UserPositionMapper.xml
@@ -45,7 +45,7 @@
stock_gid, stock_spell, buy_order_id, buy_order_time, buy_order_price, sell_order_id,
sell_order_time, sell_order_price, profit_target_price, stop_target_price, order_direction,
order_num, order_lever, order_total_price, order_fee, order_spread, order_stay_fee,
- order_stay_days, profit_and_lose, all_profit_and_lose,is_lock,lock_msg,stock_plate,spread_rate_price,margin_add
+ order_stay_days, profit_and_lose, all_profit_and_lose,is_lock,lock_msg,stock_plate,spread_rate_price,margin_add,buy_order_id_index
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
--
Gitblit v1.9.3