From 4022317de4b4361ad75a7366a7cf2a9ee70ac395 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 08 Aug 2025 16:14:14 +0800
Subject: [PATCH] 时区修改 购买修复

---
 src/main/java/com/nq/pojo/OrderEchoOut.java                    |    4 ++--
 src/main/java/com/nq/vo/position/UserPositionVO.java           |    2 ++
 src/main/java/com/nq/service/impl/UserAssetsServices.java      |    4 ++--
 src/main/java/com/nq/pojo/UserWithdraw.java                    |    4 ++--
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |   16 ++++++++--------
 src/main/java/com/nq/pojo/MoneyLog.java                        |    2 +-
 src/main/java/com/nq/pojo/UserRecharge.java                    |    4 ++--
 7 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/nq/pojo/MoneyLog.java b/src/main/java/com/nq/pojo/MoneyLog.java
index 7c4ef31..7e99795 100644
--- a/src/main/java/com/nq/pojo/MoneyLog.java
+++ b/src/main/java/com/nq/pojo/MoneyLog.java
@@ -20,7 +20,7 @@
     private String accectType;
     private String userId;
     private String symbol;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     private Date createTime;
 
 
diff --git a/src/main/java/com/nq/pojo/OrderEchoOut.java b/src/main/java/com/nq/pojo/OrderEchoOut.java
index d8ffad0..fc1c003 100644
--- a/src/main/java/com/nq/pojo/OrderEchoOut.java
+++ b/src/main/java/com/nq/pojo/OrderEchoOut.java
@@ -26,10 +26,10 @@
     private String returnOfRate;
 
     //买入时间
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     private Date buyTime;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     private Date endTime;
 
     //用户id
diff --git a/src/main/java/com/nq/pojo/UserRecharge.java b/src/main/java/com/nq/pojo/UserRecharge.java
index 92b7e8c..798bebd 100644
--- a/src/main/java/com/nq/pojo/UserRecharge.java
+++ b/src/main/java/com/nq/pojo/UserRecharge.java
@@ -39,9 +39,9 @@
     private String orderDesc;
 
     @Excel(name = "申请时间", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "Asia/Shanghai")
     private Date addTime;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "Asia/Shanghai")
     @Excel(name = "支付时间", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd HH:mm:ss")
     private Date payTime;
     /*支付通道主键id*/
diff --git a/src/main/java/com/nq/pojo/UserWithdraw.java b/src/main/java/com/nq/pojo/UserWithdraw.java
index 22e5f9d..e0c3a18 100644
--- a/src/main/java/com/nq/pojo/UserWithdraw.java
+++ b/src/main/java/com/nq/pojo/UserWithdraw.java
@@ -22,10 +22,10 @@
     private Integer agentId;
     @Excel(name = "出金金额")
     private BigDecimal withAmt;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     @Excel(name = "申请时间", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd HH:mm:ss")
     private Date applyTime;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Kolkata")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     @Excel(name = "出金时间", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd HH:mm:ss")
     private Date transTime;
 
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 207fe27..024b100 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -182,7 +182,7 @@
         UserPosition userPosition = userPositionMapper.selectOne(new LambdaQueryWrapper<UserPosition>().gt(UserPosition::getAmountToBeCovered, BigDecimal.ZERO).eq(UserPosition::getUserId,userAssets.getUserId()));
         String type = eUserAssets.getDesc();
         String before = userAssets.getAvailableBalance().toString();
-        String accectType = userAssets.getAccectType();
+        accetType = userAssets.getAccectType();
         BigDecimal amountLog = amount;
         if(Objects.equals(eUserAssets.getCode(), EUserAssets.BUY.getCode())){
             userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
@@ -268,7 +268,7 @@
         moneyLog.setBeFore(before);
         moneyLog.setAfter(after);
         moneyLog.setAmount(amountLog.toString());
-        moneyLog.setAccectType(accectType);
+        moneyLog.setAccectType(accetType);
         moneyLog.setType(eUserAssets.getCode());
         moneyLog.setUserId(userId+"");
         moneyLog.setSymbol(EStockType.getEStockTypeByCode(accetType).getSymbol());
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 70a8209..6224d60 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -179,16 +179,16 @@
 
 
                 BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
-                BigDecimal finalBuyAmt = buyAmt;
-                //如果不是墨西哥币需要转换金额
-                if (!stock.getStockType().equals(EStockType.MX.getCode())) {
-                    buyAmt = userAssetsServices.exchangeAmountByRate(stock.getStockType(), buyAmt);
-                }
+                //手续费
                 BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
-
+                BigDecimal needBuyAmt = buyAmt.add(orderFree);
+                //资金校验
+                if (!stock.getStockType().equals(EStockType.MX.getCode())) {
+                    needBuyAmt = userAssetsServices.exchangeAmountByRate(stock.getStockType(), buyAmt);
+                }
                 BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
                 BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
-                if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
+                if (availableBalance.compareTo(needBuyAmt) < 0) {
                     return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
                 }
                 UserPosition userPosition = new UserPosition();
@@ -217,7 +217,7 @@
                 }
                 userPosition.setIsLock(Integer.valueOf(0));
                 userPosition.setOrderLever(lever);
-                userPosition.setOrderTotalPrice(finalBuyAmt);
+                userPosition.setOrderTotalPrice(buyAmt);
                 // 手续费
 
                 userPosition.setOrderFee(orderFree);
diff --git a/src/main/java/com/nq/vo/position/UserPositionVO.java b/src/main/java/com/nq/vo/position/UserPositionVO.java
index e84caac..82910a8 100644
--- a/src/main/java/com/nq/vo/position/UserPositionVO.java
+++ b/src/main/java/com/nq/vo/position/UserPositionVO.java
@@ -1,6 +1,7 @@
 
 package com.nq.vo.position;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -26,6 +27,7 @@
 
     private String buyOrderId;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     private Date buyOrderTime;
 
     private BigDecimal buyOrderPrice;

--
Gitblit v1.9.3