From ba94ceae1315174798ae1967ef62268c6d16cd5b Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期一, 06 十月 2025 22:07:06 +0800
Subject: [PATCH] feat: 评审与活动相关改动 - backend(GraphQL): Activity schema 增加 updateActivityState(id, state);实现 resolver/service 仅更新 state=2 作为逻辑删除 - backend(GraphQL): region.graphqls 新增 Query leafRegions - backend(GraphQL): player.graphqls 的 projectReviewApplications 增加可选参数 regionId - backend(Service): listProjectReviewApplications 绑定 regionId 参数,修复 QueryParameterException - frontend(web): 新增 api/activity.js 的 updateActivityState 并接入 activity-list 删除逻辑 - frontend(web): review-list.vue 权限仅校验登录,移除角色限制;查询参数修正为 name/regionId - frontend(web): 删除未引用的 ActivityList.vue - frontend(web): projectReviewNew.js GraphQL 查询增加 name 参数

---
 backend/src/main/java/com/rongyichuang/player/service/PromotionService.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/backend/src/main/java/com/rongyichuang/player/service/PromotionService.java b/backend/src/main/java/com/rongyichuang/player/service/PromotionService.java
index f34c9ac..4ca32ea 100644
--- a/backend/src/main/java/com/rongyichuang/player/service/PromotionService.java
+++ b/backend/src/main/java/com/rongyichuang/player/service/PromotionService.java
@@ -6,6 +6,7 @@
 import com.rongyichuang.activity.repository.ActivityPlayerRatingRepository;
 import com.rongyichuang.common.entity.Media;
 import com.rongyichuang.common.repository.MediaRepository;
+import com.rongyichuang.message.service.MessageService;
 import com.rongyichuang.player.dto.*;
 import com.rongyichuang.player.entity.ActivityPlayer;
 import com.rongyichuang.player.repository.ActivityPlayerRepository;
@@ -37,6 +38,9 @@
     
     @Autowired
     private MediaRepository mediaRepository;
+    
+    @Autowired
+    private MessageService messageService;
     
     /**
      * 鑾峰彇姣旇禌鏅嬬骇鍒楄〃
@@ -242,8 +246,8 @@
                 return PromotionResult.failure("璇烽�夋嫨瑕佹檵绾х殑鍙傝禌鑰�");
             }
             
-            // 鏌ヨ鐩爣鏅嬬骇闃舵淇℃伅锛堢敤鎴风偣鍑荤殑闃舵灏辨槸瑕佹檵绾у埌鐨勯樁娈碉級
-            Activity targetStage = activityRepository.findById(input.getCompetitionId()).orElse(null);
+            // 鏌ヨ鐩爣鏅嬬骇闃舵淇℃伅
+            Activity targetStage = activityRepository.findById(input.getTargetStageId()).orElse(null);
             if (targetStage == null) {
                 return PromotionResult.failure("鐩爣鏅嬬骇闃舵涓嶅瓨鍦�");
             }
@@ -276,6 +280,13 @@
                     // 澶嶅埗濯掍綋鏂囦欢
                     copyMediaFiles(participant.getId(), savedParticipant.getId());
                     
+                    // 鍒涘缓鏅嬬骇娑堟伅
+                    messageService.createPromotionMessage(
+                        savedParticipant.getId(), 
+                        savedParticipant.getPlayerId(), 
+                        savedParticipant.getProjectName()
+                    );
+                    
                     promotedCount++;
                 }
             }

--
Gitblit v1.8.0