| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.zxyj.service;
- import com.zxyj.service.api.AssessmentPermissionServiceInterface;
- import javax.annotation.Resource;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.zxyj.entity.DanAssessmentResult;
- import com.zxyj.entity.User;
- import com.zxyj.mapper.DanAssessmentResultMapper;
- import com.zxyj.mapper.UserMapper;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 测评报告权限服务
- */
- @Service
- public class AssessmentPermissionService {
- @Resource
- private GuideHierarchyService guideHierarchyService;
- @Resource
- private UserMapper userMapper;
- /**
- * 检查指导师是否有权限查看测评报告
- */
- public boolean canViewAssessment(Long guideId, Long assessmentId) {
- DanAssessmentResult assessment = getAssessmentById(assessmentId);
- if (assessment == null) {
- return false;
- }
- // 检查是否是测评的指导师
- if (assessment.getTeacherId().equals(guideId)) {
- return true;
- }
- // 检查是否是下级指导师
- return guideHierarchyService.isChildGuide(guideId, assessment.getTeacherId());
- }
- /**
- * 获取指导师可以查看的测评报告列表
- */
- public List<DanAssessmentResult> getAccessibleAssessments(Long guideId) {
- // 获取所有下级指导师
- List<User> childGuides = guideHierarchyService.getAllChildGuides(guideId);
-
- if (childGuides.isEmpty()) {
- return new ArrayList<>();
- }
- // 获取下级指导师的测评报告
- List<Long> childGuideIds = childGuides.stream()
- .map(User::getId)
- .collect(Collectors.toList());
- LambdaQueryWrapper<DanAssessmentResult> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(DanAssessmentResult::getTeacherId, childGuideIds)
- .eq(DanAssessmentResult::getStatus, "completed")
- .orderByDesc(DanAssessmentResult::getAssessmentDate);
- return danAssessmentResultMapper.selectList(wrapper);
- }
- /**
- * 获取指导师自己的测评报告
- */
- public List<DanAssessmentResult> getOwnAssessments(Long guideId) {
- LambdaQueryWrapper<DanAssessmentResult> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(DanAssessmentResult::getTeacherId, guideId)
- .eq(DanAssessmentResult::getStatus, "completed")
- .orderByDesc(DanAssessmentResult::getAssessmentDate);
- return danAssessmentResultMapper.selectList(wrapper);
- }
- /**
- * 获取测评报告
- */
- public DanAssessmentResult getAssessmentById(Long assessmentId) {
- return danAssessmentResultMapper.selectById(assessmentId);
- }
- @Resource
- private DanAssessmentResultMapper danAssessmentResultMapper;
- }
|