From 3d8c9b6f4455b4efd34812c8e66073bebfacfce7 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 05 Jun 2026 11:20:23 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java |   90 ++++++++++++++++++++++++++-------------------
 1 files changed, 52 insertions(+), 38 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java
index cd9d7df..5ee74dc 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java
@@ -827,12 +827,12 @@
             return;
         }
 
-        User party = userService.cacheUserBy(order.getPartyId().toString());
+        User party = resolveUser(order.getPartyId());
         UserData userData = new UserData();
 
-        userData.setRolename(party.getRoleName());
+        userData.setRolename(resolveRoleName(party));
         userData.setCreateTime(new Date());
-        userData.setUserId(order.getPartyId().toString());
+        userData.setUserId(order.getPartyId());
         userData.setFinanceAmount(order.getAmount());
         userData.setFinanceIncome(order.getProfit());
         save(userData);
@@ -863,23 +863,19 @@
      */
     @Override
     public void saveMinerBuy(MinerOrder order) {
-
-        User user = this.userService.cacheUserBy(order.getPartyId().toString());
-//        user.getRoles();
-        boolean guest = false;
-//        for (Role role : user.getRoles()) {
-//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())||Constants.SECURITY_ROLE_TEST.equals(role.getRoleName())) {
-//                guest = true;
-//            }
-//        }
-        if (guest) {
+        String partyId = order.getPartyId();
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
             return;
         }
 
         UserData userData = new UserData();
-        userData.setRolename(user.getRoleName());
+        userData.setRolename(resolveRoleName(user));
         userData.setCreateTime(new Date());
-        userData.setUserId(order.getPartyId().toString());
+        userData.setUserId(partyId);
         userData.setMinerAmount(order.getAmount());
         save(userData);
     }
@@ -889,23 +885,19 @@
      */
     @Override
     public void saveMinerClose(MinerOrder order) {
-        User user = this.userService.cacheUserBy(order.getPartyId().toString());
-//        user.getRoles();
-        boolean guest = false;
-//        for (Role role : user.getRoles()) {
-//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())||Constants.SECURITY_ROLE_TEST.equals(role.getRoleName())) {
-//                guest = true;
-//            }
-//        }
-        if (guest) {
+        String partyId = order.getPartyId();
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
             return;
         }
 
-//        Party party = partyService.cachePartyBy(order.getPartyId(), false);
         UserData userData = new UserData();
-        userData.setRolename(user.getRoleName());
+        userData.setRolename(resolveRoleName(user));
         userData.setCreateTime(new Date());
-        userData.setUserId(order.getPartyId().toString());
+        userData.setUserId(partyId);
         userData.setMinerAmount(Arith.sub(0, order.getAmount()));
         save(userData);
     }
@@ -918,25 +910,47 @@
      */
     @Override
     public void saveMinerProfit(String partyId, double profit) {
-        User user = this.userService.cacheUserBy(partyId);
-//        user.getRoles();
-        boolean guest = false;
-//        for (Role role : user.getRoles()) {
-//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())) {
-//                guest = true;
-//            }
-//        }
-        if (guest) {
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
             return;
         }
 
-//        Party party = partyService.cachePartyBy(partyId, true);
         UserData userData = new UserData();
-        userData.setRolename(user.getRoleName());
+        userData.setRolename(resolveRoleName(user));
         userData.setCreateTime(new Date());
         userData.setUserId(partyId);
         userData.setMinerIncome(profit);
         save(userData);
     }
 
+    private User resolveUser(String partyId) {
+        User user = userService.getById(partyId);
+        if (user == null) {
+            user = userService.cacheUserBy(partyId);
+        }
+        if (user == null) {
+            log.warn("UserData resolveUser not found, partyId={}", partyId);
+        }
+        return user;
+    }
+
+    private boolean isGuestUser(User user) {
+        if (user == null) {
+            return false;
+        }
+        String roleName = user.getRoleName();
+        return Constants.SECURITY_ROLE_GUEST.equals(roleName)
+                || Constants.SECURITY_ROLE_TEST.equals(roleName);
+    }
+
+    private String resolveRoleName(User user) {
+        if (user == null || StringUtils.isBlank(user.getRoleName())) {
+            return Constants.SECURITY_ROLE_MEMBER;
+        }
+        return user.getRoleName();
+    }
+
 }

--
Gitblit v1.9.3