Просмотр исходного кода

chore: auto bump version and changelog [skip ci]

iwt 1 месяц назад
Родитель
Сommit
c2d8c297f1

+ 8 - 0
cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideTeamController.java

@@ -155,6 +155,14 @@ public class GuideTeamController {
             return Result.error("您已经在该团队中");
         }
 
+        // 检查是否已有其他上级:每个规划师只能有一个直接上级
+        GuideHierarchy existingHierarchy = guideHierarchyService.getOne(new LambdaQueryWrapper<GuideHierarchy>()
+                .eq(GuideHierarchy::getChildId, userId)
+                .eq(GuideHierarchy::getStatus, "active"));
+        if (existingHierarchy != null) {
+            return Result.error("您已有上级规划师,不能加入此团队。如需更换团队,请先离开当前团队。");
+        }
+
         // 建立团队关系
         guideHierarchyService.addChildGuide(guideId, userId);
         guideInviteCodeService.useInviteCode(inviteCode, userId);

+ 7 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/InviteCardService.java

@@ -217,10 +217,13 @@ private String generateCode(String type) {
         result.put("familyId", card.getRefId());
         result.put("familyName", family.getName());
         result.put("type", "guide");
-        result.put("needsTeacherRegister", true);
 
-        if (user != null && "teacher".equals(user.getRole())) {
-            // 将规划师绑定到家庭
+        if (user == null || !"teacher".equals(user.getRole())) {
+            // 接受者必须已是规划师才能通过邀请绑定家庭;非规划师需先自行申请成为规划师
+            return Result.error("您不是成长规划师,无法接受此邀请。请先自行申请成为规划师。");
+        }
+
+        // 将规划师绑定到家庭
             family.setTeacherId(user.getId());
             family.setUpdatedAt(new Date());
             familyMapper.updateById(family);
@@ -249,6 +252,7 @@ private String generateCode(String type) {
             result.put("userId", user.getId());
             result.put("role", "teacher");
             result.put("teacherFamilyIds", updatedIds);
+            return Result.success(result);
         }
 
         return Result.success(result);

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-0eb1ea26ffaf41300d63b9fc10735e6437d25d89
+c01ffeddacb48ebae7030e13c4f07d0ef03a1151