From f64693c0da5483d8670220bf3a5bf89a32e94a20 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期五, 07 十一月 2025 10:34:21 +0800
Subject: [PATCH] 解决线上打包问题
---
backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java | 70 ++++++++++++++++++++++++++++-------
1 files changed, 56 insertions(+), 14 deletions(-)
diff --git a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java
index b40491c..c59c7b8 100644
--- a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java
+++ b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java
@@ -19,6 +19,7 @@
import com.rongyichuang.media.service.MediaV2Service;
import com.rongyichuang.media.dto.MediaSaveInput;
import com.rongyichuang.message.service.MessageService;
+import com.rongyichuang.auth.util.JwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -61,6 +62,9 @@
@Autowired
private MessageService messageService;
+
+ @Autowired
+ private JwtUtil jwtUtil;
public ActivityPlayer getMyActivityPlayer(Long activityId) {
@@ -173,16 +177,21 @@
/**
* 鏌ユ壘鎴栧垱寤洪�夋墜璁板綍
+ * 閫昏緫锛�
+ * 1. 鍏堜繚瀛楿ser锛堟牴鎹畃hone鏌ヨ锛屽瓨鍦ㄥ垯鏇存柊锛屽惁鍒欐柊澧烇級
+ * 2. 鍐嶄繚瀛楶layer锛堟牴鎹畊serId鏌ヨ锛屽瓨鍦ㄥ垯鏇存柊锛屽惁鍒欐柊澧烇級
*/
private Player findOrCreatePlayer(ActivityRegistrationInput input) {
try {
- // 鍏堟牴鎹墜鏈哄彿鏌ユ壘鐜版湁閫夋墜
- String phone = input.getPlayerInfo().getPhone();
- Optional<Player> existingPlayerOpt = playerRepository.findByPhone(phone);
+ // 1. 鍏堝垱寤烘垨鏇存柊鐢ㄦ埛璁板綍
+ User user = createOrUpdateUser(input);
+
+ // 2. 鏍规嵁userId鏌ユ壘鐜版湁閫夋墜
+ Optional<Player> existingPlayerOpt = playerRepository.findByUserId(user.getId());
if (existingPlayerOpt.isPresent()) {
+ // 閫夋墜瀛樺湪锛屾洿鏂伴�夋墜淇℃伅
Player existingPlayer = existingPlayerOpt.get();
- // 鏇存柊閫夋墜淇℃伅
existingPlayer.setName(input.getPlayerInfo().getName());
if (input.getPlayerInfo().getGender() != null) {
existingPlayer.setGender(input.getPlayerInfo().getGender());
@@ -197,31 +206,28 @@
existingPlayer.setDescription(input.getPlayerInfo().getDescription());
}
- // 鏇存柊鍏宠仈鐨勭敤鎴蜂俊鎭紙濡傛灉瀛樺湪锛�
- updateUserInfo(existingPlayer, input);
-
// BaseEntity浼氳嚜鍔ㄨ缃畊pdateTime
- return playerRepository.save(existingPlayer);
+ Player savedPlayer = playerRepository.save(existingPlayer);
+ log.info("鏇存柊鐜版湁閫夋墜鎴愬姛锛孖D: {}, 濮撳悕: {}, 鐢ㄦ埛ID: {}", savedPlayer.getId(), savedPlayer.getName(), user.getId());
+ return savedPlayer;
}
- // 鍒涘缓鏂伴�夋墜
+ // 閫夋墜涓嶅瓨鍦紝鍒涘缓鏂伴�夋墜
Player newPlayer = new Player();
newPlayer.setName(input.getPlayerInfo().getName());
- newPlayer.setPhone(input.getPlayerInfo().getPhone());
+ // 涓嶅啀璁剧疆phone瀛楁锛宲hone淇℃伅缁熶竴瀛樺偍鍦║ser瀹炰綋涓�
+ // newPlayer.setPhone(input.getPlayerInfo().getPhone()); // 宸插簾寮�
newPlayer.setGender(input.getPlayerInfo().getGender());
newPlayer.setEducation(input.getPlayerInfo().getEducation());
newPlayer.setIntroduction(input.getPlayerInfo().getIntroduction());
newPlayer.setDescription(input.getPlayerInfo().getDescription());
newPlayer.setRoleId(1L); // 榛樿瑙掕壊ID涓�1锛堝鍛樿鑹诧級
newPlayer.setState(1); // 1琛ㄧず鏈夋晥鐘舵��
-
- // 鍒涘缓鎴栧叧鑱旂敤鎴疯褰�
- User user = createOrUpdateUser(input);
newPlayer.setUserId(user.getId());
// BaseEntity浼氳嚜鍔ㄨ缃甤reateTime鍜寀pdateTime
Player savedPlayer = playerRepository.save(newPlayer);
- log.info("鏂伴�夋墜鍒涘缓鎴愬姛锛孖D: {}, 濮撳悕: {}", savedPlayer.getId(), savedPlayer.getName());
+ log.info("鏂伴�夋墜鍒涘缓鎴愬姛锛孖D: {}, 濮撳悕: {}, 鐢ㄦ埛ID: {}", savedPlayer.getId(), savedPlayer.getName(), user.getId());
return savedPlayer;
} catch (Exception e) {
@@ -238,6 +244,18 @@
String phone = input.getPlayerInfo().getPhone();
String name = input.getPlayerInfo().getName();
+ // 鑾峰彇褰撳墠鐢ㄦ埛鐨剋xopenid锛堜粠JWT token涓級
+ String currentWxOpenid = null;
+ try {
+ String token = userContextUtil.getTokenFromRequest();
+ if (token != null && jwtUtil.validateToken(token)) {
+ currentWxOpenid = jwtUtil.getWxOpenidFromToken(token);
+ log.debug("浠嶫WT token涓幏鍙栧埌wxopenid: {}", currentWxOpenid);
+ }
+ } catch (Exception e) {
+ log.warn("鑾峰彇褰撳墠鐢ㄦ埛wxopenid鏃跺彂鐢熷紓甯�: {}", e.getMessage());
+ }
+
// 鍏堟煡鎵剧幇鏈夌敤鎴�
Optional<User> existingUserOpt = userService.findByPhone(phone);
@@ -249,6 +267,18 @@
// 鏇存柊鐢ㄦ埛鐨勭敓鏃ヤ俊鎭�
if (input.getPlayerInfo().getBirthDate() != null) {
user.setBirthday(input.getPlayerInfo().getBirthDate());
+ }
+
+ // 鏇存柊wxopenid锛堝鏋滃綋鍓峵oken涓寘鍚笖涓嶄负绌猴級
+ if (currentWxOpenid != null && !currentWxOpenid.trim().isEmpty()) {
+ // 妫�鏌ヨ繖涓猳penid鏄惁宸茬粡琚叾浠栫敤鎴蜂娇鐢�
+ Optional<User> existingUserWithOpenid = userService.findByWxOpenid(currentWxOpenid);
+ if (existingUserWithOpenid.isEmpty() || existingUserWithOpenid.get().getId().equals(user.getId())) {
+ user.setWxOpenid(currentWxOpenid);
+ log.info("鏇存柊鐢ㄦ埛wxopenid: {}", currentWxOpenid);
+ } else {
+ log.warn("wxopenid {} 宸茶鍏朵粬鐢ㄦ埛浣跨敤锛岀敤鎴稩D: {}", currentWxOpenid, existingUserWithOpenid.get().getId());
+ }
}
user = userService.save(user);
@@ -268,6 +298,18 @@
newUser.setBirthday(input.getPlayerInfo().getBirthDate());
}
+ // 璁剧疆wxopenid锛堝鏋滃綋鍓峵oken涓寘鍚笖涓嶄负绌猴級
+ if (currentWxOpenid != null && !currentWxOpenid.trim().isEmpty()) {
+ // 妫�鏌ヨ繖涓猳penid鏄惁宸茬粡琚叾浠栫敤鎴蜂娇鐢�
+ Optional<User> existingUserWithOpenid = userService.findByWxOpenid(currentWxOpenid);
+ if (existingUserWithOpenid.isEmpty()) {
+ newUser.setWxOpenid(currentWxOpenid);
+ log.info("涓烘柊鐢ㄦ埛璁剧疆wxopenid: {}", currentWxOpenid);
+ } else {
+ log.warn("wxopenid {} 宸茶鍏朵粬鐢ㄦ埛浣跨敤锛岀敤鎴稩D: {}", currentWxOpenid, existingUserWithOpenid.get().getId());
+ }
+ }
+
newUser = userService.save(newUser);
log.info("涓哄皬绋嬪簭鎶ュ悕鎴愬姛鍒涘缓鏂扮敤鎴凤紝鐢ㄦ埛ID: {}", newUser.getId());
return newUser;
--
Gitblit v1.8.0