|
|
@@ -0,0 +1,87 @@
|
|
|
+package com.zxyj.controller.guide;
|
|
|
+
|
|
|
+import com.zxyj.common.Result;
|
|
|
+import com.zxyj.entity.AssessmentResult;
|
|
|
+import com.zxyj.entity.DanAssessmentResult;
|
|
|
+import com.zxyj.service.AssessmentPermissionService;
|
|
|
+import com.zxyj.service.AssessmentService;
|
|
|
+import io.swagger.v3.oas.annotations.Operation;
|
|
|
+import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Tag(name = "成长规划师记录", description = "成长规划师录入测评结果(含孩子快照)")
|
|
|
+@RestController
|
|
|
+@RequestMapping("/api/guide/record")
|
|
|
+public class GuideRecordController {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AssessmentService assessmentService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AssessmentPermissionService assessmentPermissionService;
|
|
|
+
|
|
|
+ @Operation(summary = "录入测评结果(含孩子快照)")
|
|
|
+ @PostMapping("/create")
|
|
|
+ public Result<AssessmentResult> createRecord(
|
|
|
+ @RequestAttribute("userId") Long userId,
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @RequestBody AssessmentResult result) {
|
|
|
+ if (!"teacher".equals(role)) {
|
|
|
+ return Result.error("只有成长规划师可以录入测评结果");
|
|
|
+ }
|
|
|
+ result.setTeacherId(userId);
|
|
|
+ result.setStatus("completed");
|
|
|
+ result.setCreatedAt(new Date());
|
|
|
+ result.setUpdatedAt(new Date());
|
|
|
+ if (result.getAssessmentDate() == null) {
|
|
|
+ result.setAssessmentDate(new Date());
|
|
|
+ }
|
|
|
+ AssessmentResult saved = assessmentService.recordResult(result);
|
|
|
+ return Result.success(saved);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Operation(summary = "查询我的测评记录列表")
|
|
|
+ @PostMapping("/my-records")
|
|
|
+ public Result<List<AssessmentResult>> getMyRecords(@RequestAttribute("userId") Long userId) {
|
|
|
+ List<AssessmentResult> results = assessmentService.getResultsByGuide(userId);
|
|
|
+ return Result.success(results);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Operation(summary = "获取测评记录详情")
|
|
|
+ @PostMapping("/detail/{id}")
|
|
|
+ public Result<AssessmentResult> getRecordDetail(
|
|
|
+ @RequestAttribute("userId") Long userId,
|
|
|
+ @RequestAttribute("role") String role,
|
|
|
+ @PathVariable Long id) {
|
|
|
+ if (!assessmentPermissionService.canViewAssessment(userId, id)) {
|
|
|
+ return Result.error("无权查看该记录");
|
|
|
+ }
|
|
|
+ DanAssessmentResult danResult = assessmentPermissionService.getAssessmentById(id);
|
|
|
+ if (danResult == null) {
|
|
|
+ return Result.error("记录不存在");
|
|
|
+ }
|
|
|
+ AssessmentResult result = new AssessmentResult();
|
|
|
+ result.setId(danResult.getId());
|
|
|
+ result.setChildId(danResult.getChildId());
|
|
|
+ result.setTeacherId(danResult.getTeacherId());
|
|
|
+ result.setAppointmentId(danResult.getAppointmentId());
|
|
|
+ result.setDanLevel(danResult.getDanLevel());
|
|
|
+ result.setAttentionScore(danResult.getAttentionScore());
|
|
|
+ result.setFocusScore(danResult.getFocusScore());
|
|
|
+ result.setMemoryScore(danResult.getMemoryScore());
|
|
|
+ result.setLogicScore(danResult.getLogicScore());
|
|
|
+ result.setOverallScore(danResult.getOverallScore());
|
|
|
+ result.setAssessmentDate(danResult.getAssessmentDate());
|
|
|
+ result.setDurationMinutes(danResult.getDurationMinutes());
|
|
|
+ result.setAnalysisReport(danResult.getAnalysisReport());
|
|
|
+ result.setGrowthSuggestions(danResult.getGrowthSuggestions());
|
|
|
+ result.setNextReviewDate(danResult.getNextReviewDate());
|
|
|
+ result.setStatus(danResult.getStatus());
|
|
|
+ result.setCreatedAt(danResult.getCreatedAt());
|
|
|
+ return Result.success(result);
|
|
|
+ }
|
|
|
+}
|