|
|
@@ -2,7 +2,9 @@ package com.etotem.cfc.controller.tianpan;
|
|
|
|
|
|
import com.etotem.cfc.common.Result;
|
|
|
import com.etotem.cfc.dto.*;
|
|
|
+import com.etotem.cfc.entity.FamilyMember;
|
|
|
import com.etotem.cfc.entity.FamilyMemberAttributes;
|
|
|
+import com.etotem.cfc.mapper.FamilyMemberMapper;
|
|
|
import com.etotem.cfc.service.*;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -11,6 +13,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* 家庭天盘控制器
|
|
|
@@ -33,6 +36,12 @@ public class TianpanController {
|
|
|
@Resource
|
|
|
private FamilyMemberDimensionBaseScoreService familyMemberDimensionBaseScoreService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private FamilyMemberMapper familyMemberMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 获取家庭天盘仪表盘
|
|
|
*
|
|
|
@@ -286,37 +295,15 @@ public class TianpanController {
|
|
|
// ========== 权限检查 ==========
|
|
|
|
|
|
private boolean checkAccess(String role, Long familyId, Long currentUserId, HttpServletRequest request) {
|
|
|
- switch (role) {
|
|
|
- case "admin":
|
|
|
- // 管理员:所有访问
|
|
|
- return true;
|
|
|
- case "parent":
|
|
|
- // 家庭主账号:访问自己家庭
|
|
|
- return isFamilyMember(familyId, currentUserId, "parent");
|
|
|
- case "child":
|
|
|
- // 家庭成员:访问自己家庭
|
|
|
- // 非登录用户(不可登录成员)
|
|
|
- return isFamilyMember(familyId, currentUserId, "child");
|
|
|
- case "teacher":
|
|
|
- // 规划师:检查绑定关系
|
|
|
- return isTeacherBoundToFamily(familyId, currentUserId);
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private boolean isFamilyMember(Long familyId, Long userId, String role) {
|
|
|
- // 简化实现,实际应从数据库查询
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- private boolean isTeacherBoundToFamily(Long familyId, Long teacherId) {
|
|
|
- // 简化实现,实际应从 teacher_family_bindings 表查询
|
|
|
- return true;
|
|
|
+ if ("admin".equals(role)) return true;
|
|
|
+ if (familyId == null) return false;
|
|
|
+ Set<Long> effective = userService.getEffectiveFamilyIds(currentUserId);
|
|
|
+ return effective != null && effective.contains(familyId);
|
|
|
}
|
|
|
|
|
|
private Long getMemberFamilyId(Long memberId) {
|
|
|
- // 简化实现,实际应从数据库查询
|
|
|
- return 1L;
|
|
|
+ if (memberId == null) return null;
|
|
|
+ FamilyMember fm = familyMemberMapper.selectById(memberId);
|
|
|
+ return fm == null ? null : fm.getFamilyId();
|
|
|
}
|
|
|
}
|