diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/StudentLessonPlansController.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/StudentLessonPlansController.java index 280e933..0579f85 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/StudentLessonPlansController.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/StudentLessonPlansController.java @@ -3,10 +3,7 @@ package com.yinlihupo.enlish.service.controller; import com.yinlihupo.enlish.service.domain.dataobject.LessonPlansDO; import com.yinlihupo.enlish.service.domain.dataobject.StudentLessonPlansDO; import com.yinlihupo.enlish.service.model.bo.StudentDetail; -import com.yinlihupo.enlish.service.model.vo.plan.FindStudentPlansReqVO; -import com.yinlihupo.enlish.service.model.vo.plan.FindStudentPlansRspVO; -import com.yinlihupo.enlish.service.model.vo.plan.FinishStudentPlanReqVO; -import com.yinlihupo.enlish.service.model.vo.plan.LessonPlanItem; +import com.yinlihupo.enlish.service.model.vo.plan.*; import com.yinlihupo.enlish.service.service.LessonPlansService; import com.yinlihupo.enlish.service.service.StudentLessonPlansService; import com.yinlihupo.enlish.service.service.StudentService; @@ -77,7 +74,7 @@ public class StudentLessonPlansController { return PageResponse.success(findStudentPlansRspVOList, page, studentLessonPlanTotal, size); } - @PostMapping("/finish") + @PostMapping("finish") @ApiOperationLog(description = "完成学案") public Response finishStudentPlan(@RequestBody FinishStudentPlanReqVO finishStudentPlanReqVO) { Integer studentId = finishStudentPlanReqVO.getStudentId(); @@ -89,4 +86,22 @@ public class StudentLessonPlansController { } return Response.fail("完成学案失败"); } + + @PostMapping("history") + @ApiOperationLog(description = "查询学案历史") + public Response> findStudentPlanHistory(@RequestBody FindStudentPlanHistoryReqVO findStudentPlanHistoryReqVO) { + Integer studentId = findStudentPlanHistoryReqVO.getStudentId(); + List list = studentLessonPlansService.findStudentLessonPlansByStudentId(studentId) + .stream().map(studentLessonPlansDO -> FindStudentPlanHistoryListRspVO.builder() + .id(studentLessonPlansDO.getId()) + .studentId(studentLessonPlansDO.getStudentId()) + .planId(studentLessonPlansDO.getPlanId()) + .startTime(studentLessonPlansDO.getStartTime()) + .masteryRat(studentLessonPlansDO.getMasteryRat()) + .totalCount(studentLessonPlansDO.getTotalCount()) + .build() + ).toList(); + + return Response.success(list); + } } diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/LessonPlansDO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/LessonPlansDO.java index 18cbbac..0e92462 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/LessonPlansDO.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/LessonPlansDO.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDateTime; import java.util.Date; @AllArgsConstructor @@ -20,7 +21,7 @@ public class LessonPlansDO { private Integer unitId; - private Date createdAt; + private LocalDateTime createdAt; private String contentDetails; diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/StudentLessonPlansDO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/StudentLessonPlansDO.java index f04d40b..2f69d68 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/StudentLessonPlansDO.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/dataobject/StudentLessonPlansDO.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; @AllArgsConstructor @@ -19,7 +20,7 @@ public class StudentLessonPlansDO { private Integer planId; - private Date startTime; + private LocalDateTime startTime; private BigDecimal masteryRat; diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentLessonPlansDOMapper.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentLessonPlansDOMapper.java index 3ca8299..d010def 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentLessonPlansDOMapper.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentLessonPlansDOMapper.java @@ -14,4 +14,6 @@ public interface StudentLessonPlansDOMapper { Integer selectStudentPlanTotal(); Integer finfishStudentPlan(@Param("studentId") Integer studentId, @Param("planId") Integer planId, @Param("count") Integer count, @Param("mastery") double mastery); + + List selectStudentLessonPlanListByStudentId(@Param("studentId") Integer studentId); } \ No newline at end of file diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryListRspVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryListRspVO.java new file mode 100644 index 0000000..8b43829 --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryListRspVO.java @@ -0,0 +1,29 @@ +package com.yinlihupo.enlish.service.model.vo.plan; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class FindStudentPlanHistoryListRspVO { + + private Integer id; + + private Integer studentId; + + private Integer planId; + + private LocalDateTime startTime; + + private BigDecimal masteryRat; + + private Integer totalCount; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryReqVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryReqVO.java new file mode 100644 index 0000000..d7dd69d --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/plan/FindStudentPlanHistoryReqVO.java @@ -0,0 +1,15 @@ +package com.yinlihupo.enlish.service.model.vo.plan; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class FindStudentPlanHistoryReqVO { + + private Integer studentId; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/StudentLessonPlansService.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/StudentLessonPlansService.java index b36fd69..5277e43 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/StudentLessonPlansService.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/StudentLessonPlansService.java @@ -11,4 +11,6 @@ public interface StudentLessonPlansService { Integer findStudentLessonPlanTotal(); int finishStudentLessonPlan(Integer studentId, Integer planId); + + List findStudentLessonPlansByStudentId(Integer studentId); } diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/LessonPlansServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/LessonPlansServiceImpl.java index baa3c22..b3c80a7 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/LessonPlansServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/LessonPlansServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; +import java.time.LocalDateTime; import java.util.*; @Service @@ -104,7 +105,7 @@ public class LessonPlansServiceImpl implements LessonPlansService { .title(lessonPlanMap.get("title").toString()) .gradeId(gradeDO.getId().toString()) .unitId(unitDO.getId()) - .createdAt(new Date()) + .createdAt(LocalDateTime.now()) .contentDetails(JsonUtils.toJsonString(lessonPlanMap)) .build(); lessonPlansDOMapper.insert(lessonPlansDO); @@ -132,7 +133,7 @@ public class LessonPlansServiceImpl implements LessonPlansService { .title(map.get("title").toString()) .gradeId(gradeDO.getId().toString()) .unitId(unitDO.getId()) - .createdAt(new Date()) + .createdAt(LocalDateTime.now()) .contentDetails(JsonUtils.toJsonString(map)) .build(); lessonPlansDOMapper.insert(lessonPlansDO); diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/StudentLessonPlansServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/StudentLessonPlansServiceImpl.java index b069fb9..d6c6b0b 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/StudentLessonPlansServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/plan/StudentLessonPlansServiceImpl.java @@ -44,4 +44,9 @@ public class StudentLessonPlansServiceImpl implements StudentLessonPlansService return studentLessonPlansDOMapper.finfishStudentPlan(studentId, planId, wordStrengthCount, (double) wordStrengthCount / wordTotal); } + + @Override + public List findStudentLessonPlansByStudentId(Integer studentId) { + return studentLessonPlansDOMapper.selectStudentLessonPlanListByStudentId(studentId); + } } diff --git a/enlish-service/src/main/resources/mapper/StudentLessonPlansDOMapper.xml b/enlish-service/src/main/resources/mapper/StudentLessonPlansDOMapper.xml index d80d9bd..1994d60 100644 --- a/enlish-service/src/main/resources/mapper/StudentLessonPlansDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/StudentLessonPlansDOMapper.xml @@ -45,6 +45,12 @@ SELECT count(DISTINCT student_id) AS total FROM student_lesson_plans; + update student_lesson_plans diff --git a/enlish-vue/src/api/studentLessonPlans.js b/enlish-vue/src/api/studentLessonPlans.js index b85368e..2e8afb1 100644 --- a/enlish-vue/src/api/studentLessonPlans.js +++ b/enlish-vue/src/api/studentLessonPlans.js @@ -14,3 +14,9 @@ export function finishLessonPlan(studentId, planId) { planId: planId }) } + +export function findStudentPlanHistory(studentId) { + return axios.post('/studentLessonPlans/history', { + studentId: studentId + }) +} diff --git a/enlish-vue/src/layouts/components/student/PlanHistoryChart.vue b/enlish-vue/src/layouts/components/student/PlanHistoryChart.vue new file mode 100644 index 0000000..995dec4 --- /dev/null +++ b/enlish-vue/src/layouts/components/student/PlanHistoryChart.vue @@ -0,0 +1,131 @@ + + + + diff --git a/enlish-vue/src/pages/student.vue b/enlish-vue/src/pages/student.vue index 27d5be8..d453d03 100644 --- a/enlish-vue/src/pages/student.vue +++ b/enlish-vue/src/pages/student.vue @@ -27,6 +27,10 @@
学生考试记录
+
+
学生学案记录
+ +
@@ -41,6 +45,7 @@ import { useRoute } from 'vue-router' import { getStudentDetail } from '@/api/student' import { getStudentExamHistory } from '@/api/exam' import ExamHistoryChart from '@/layouts/components/student/ExamHistoryChart.vue' +import PlanHistoryChart from '@/layouts/components/student/PlanHistoryChart.vue' const loading = ref(false) const detail = ref(null)