From 6e85d12eab8accba3dd6731d9273388bd7f8d68c Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 14 Nov 2025 18:26:25 +0800
Subject: [PATCH] 2

---
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java |   16 ++++++++++++++++
 trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java                    |   30 ++++++++++++++++++++++++++++++
 trading-order-service/src/main/resources/mapper/UserMapper.xml                                   |    2 +-
 3 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
index 4750533..e416f4a 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
@@ -15,6 +15,8 @@
 import com.yami.trading.common.constants.Constants;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.YamiShopBindException;
+import com.yami.trading.common.util.DateUtil;
+import com.yami.trading.common.util.DateUtils;
 import com.yami.trading.common.util.IPHelper;
 import com.yami.trading.security.common.manager.PasswordManager;
 import com.yami.trading.security.common.util.SecurityUtils;
@@ -30,7 +32,11 @@
 
 import javax.validation.Valid;
 import java.text.MessageFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @RestController
@@ -80,6 +86,16 @@
             userDataDto.setUserRegip(userDataDto.getUserLastip());
             userDataDto.setUserLevel(userDataDto.getUserLevel() / 10);
 
+            if (userDataDto.getUserLasttime() != null) {
+                String time = DateUtil.convertToZonedDateTime(userDataDto.getUserLasttime());
+                Date toDate = DateUtil.stringToDate(time, "yyyy-MM-dd HH:mm:ss");
+                userDataDto.setUserLasttime(toDate);
+            }
+            if (userDataDto.getCreateTime() != null) {
+                String time = DateUtil.convertToZonedDateTime(userDataDto.getCreateTime());
+                Date toDate = DateUtil.stringToDate(time, "yyyy-MM-dd HH:mm:ss");
+                userDataDto.setCreateTime(toDate);
+            }
         }
         return Result.ok(page);
     }
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java b/trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java
index fbd1832..31b4254 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java
@@ -1,7 +1,13 @@
 package com.yami.trading.common.util;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -894,4 +900,28 @@
     public static long stringToMillSeconds(String dateString){
     	return stringToDate(dateString,java.sql.Timestamp.class).getTime();
     }
+
+    /**
+     * 把美国时区时间转为德国时区时间
+     * @param date
+     * @return
+     */
+    public static String convertToZonedDateTime(Date date){
+        // 1. 将Date转换为UTC瞬时点(Instant)
+        Instant utcInstant = date.toInstant();
+
+        // 2. 绑定原始时区:明确该时间是纽约时区的时间
+        ZoneId newYorkZone = ZoneId.of("America/New_York");
+        ZonedDateTime newYorkZonedTime = ZonedDateTime.ofInstant(utcInstant, newYorkZone);
+
+        // 3. 转换为德国时区(Europe/Berlin,自动处理夏令时)
+        ZoneId berlinZone = ZoneId.of("Europe/Berlin");
+        ZonedDateTime berlinZonedTime = newYorkZonedTime.withZoneSameInstant(berlinZone);
+
+        // 4. 格式化输出(例如:yyyy-MM-dd HH:mm:ss)
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        return berlinZonedTime.format(formatter);
+    }
+
 }
diff --git a/trading-order-service/src/main/resources/mapper/UserMapper.xml b/trading-order-service/src/main/resources/mapper/UserMapper.xml
index 5a125be..e6b6054 100644
--- a/trading-order-service/src/main/resources/mapper/UserMapper.xml
+++ b/trading-order-service/src/main/resources/mapper/UserMapper.xml
@@ -117,7 +117,7 @@
         </if>
 
         <if test="userName!=null and userName!=''">
-            and u.user_name=#{userName} or u.user_code=#{userName}
+            and (u.user_name=#{userName} or u.user_code=#{userName})
         </if>
 
         <if test="userMail!=null and userMail!=''">

--
Gitblit v1.9.3