Procházet zdrojové kódy

fix: 首次消费自动归属改为查 DB 而非依赖 Session

StpUtil.getSession().getString("stationId") 在部分场景下可能
意外有值(Session 复用等),导致空值判断失效,首次消费用户的
自动归属逻辑被跳过。改为直接查 t_user.station_id,以 DB 为准。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline před 2 dny
rodič
revize
9fba68812a

+ 3 - 2
car-wash-service/src/main/java/com/kym/service/impl/WashOrderServiceImpl.java

@@ -117,9 +117,10 @@ public class WashOrderServiceImpl extends MyBaseServiceImpl<WashOrderMapper, Was
                 // 本次开机最大消费金额
                 account.getBalance());
         // 首次消费:无归属站点的用户自动归属到当前设备所在站点
-        var userStationId = StpUtil.getSession().getString("stationId");
+        long userId = StpUtil.getLoginIdAsLong();
+        var user = userService.getById(userId);
+        var userStationId = user != null ? user.getStationId() : null;
         if (CommUtil.isEmptyOrNull(userStationId)) {
-            long userId = StpUtil.getLoginIdAsLong();
             userService.lambdaUpdate()
                     .set(User::getStationId, params.getStationId())
                     .eq(User::getId, userId)