From 1004f3d16011f69894196bfd180ea539b76ba4e7 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 03 Jun 2026 15:27:26 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java |  147 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 147 insertions(+), 0 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 850f82d..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
@@ -8,7 +8,9 @@
 import com.yami.trading.bean.contract.domain.ContractOrder;
 import com.yami.trading.bean.data.domain.Realtime;
 import com.yami.trading.bean.exchange.ExchangeApplyOrder;
+import com.yami.trading.bean.finance.FinanceOrder;
 import com.yami.trading.bean.future.domain.FuturesOrder;
+import com.yami.trading.bean.miner.MinerOrder;
 import com.yami.trading.bean.model.User;
 import com.yami.trading.bean.model.UserData;
 import com.yami.trading.bean.model.UserDataSum;
@@ -806,4 +808,149 @@
 //			}
     }
 
+    /**
+     * 理财产品平仓
+     */
+    @Override
+    public void saveSellFinance(FinanceOrder order) {
+        User user = this.userService.findUserByUserCode(order.getFinanceId());
+//		SecUser user = this.userService.findUserByPartyId(order.getPartyId());
+//		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) {
+            return;
+        }
+
+        User party = resolveUser(order.getPartyId());
+        UserData userData = new UserData();
+
+        userData.setRolename(resolveRoleName(party));
+        userData.setCreateTime(new Date());
+        userData.setUserId(order.getPartyId());
+        userData.setFinanceAmount(order.getAmount());
+        userData.setFinanceIncome(order.getProfit());
+        save(userData);
+
+//		UserRecom userRecom = this.userRecomService.findByPartyId(order.getPartyId());
+//		if (userRecom == null) {
+//			return;
+//		}
+//		List<UserRecom> parents = this.userRecomService.getParents(userRecom.getPartyId());
+//
+//		for (int i = 0; i < parents.size(); i++) {
+//			Party party_parent = partyService.cachePartyBy(parents.get(i).getReco_id());
+//
+//			if (Constants.SECURITY_ROLE_AGENT.equals(party_parent.getRolename())) {
+//				UserData userData_reco = new UserData();
+//				userData_reco.setRolename(party_parent.getRolename());
+//				userData_reco.setCreateTime(new Date());
+//				userData_reco.setPartyId(parents.get(i).getReco_id());
+//				userData_reco.setFinance_amount(order.getAmount());
+//				userData_reco.setFinance_income(order.getProfit());
+//				save(userData_reco);
+//			}
+//		}
+    }
+
+    /**
+     * 矿机买入
+     */
+    @Override
+    public void saveMinerBuy(MinerOrder order) {
+        String partyId = order.getPartyId();
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
+            return;
+        }
+
+        UserData userData = new UserData();
+        userData.setRolename(resolveRoleName(user));
+        userData.setCreateTime(new Date());
+        userData.setUserId(partyId);
+        userData.setMinerAmount(order.getAmount());
+        save(userData);
+    }
+
+    /**
+     * 矿机赎回
+     */
+    @Override
+    public void saveMinerClose(MinerOrder order) {
+        String partyId = order.getPartyId();
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
+            return;
+        }
+
+        UserData userData = new UserData();
+        userData.setRolename(resolveRoleName(user));
+        userData.setCreateTime(new Date());
+        userData.setUserId(partyId);
+        userData.setMinerAmount(Arith.sub(0, order.getAmount()));
+        save(userData);
+    }
+
+    /**
+     * 矿机利息
+     *
+     * @param partyId 获利人
+     * @param profit  利息
+     */
+    @Override
+    public void saveMinerProfit(String partyId, double profit) {
+        if (StringUtils.isBlank(partyId)) {
+            return;
+        }
+        User user = resolveUser(partyId);
+        if (isGuestUser(user)) {
+            return;
+        }
+
+        UserData userData = new UserData();
+        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