zouxuan 2 лет назад
Родитель
Сommit
5b8d0eeea2

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStatisticsDao.java

@@ -23,4 +23,12 @@ public interface CourseScheduleStatisticsDao extends BaseDAO<Long, CourseSchedul
 
     //更新服务指标
     void updateCourseService(@Param("courseIds") String courseIds, @Param("serviceFlag") int serviceFlag);
+
+    void updateNum(@Param("courseScheduleId") Long courseScheduleId,
+                   @Param("teacherId") Integer teacherId,
+                   @Param("studentIds") List<Integer> studentIds);
+
+    void updateLastSubmitTime(@Param("courseScheduleId") Long courseScheduleId,
+                              @Param("teacherId") Integer teacherId,
+                              @Param("userId") Integer userId);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.LessonExamination;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
+import com.ym.mec.biz.dal.entity.StudentLessonExamination;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
@@ -83,4 +85,24 @@ public interface StudentExtracurricularExercisesSituationService extends BaseSer
      *
      */
     PageInfo<CourseHomeworkWrapper.CourseHomeworkList> queryTeacherExtraHomeworkDetailV2(CourseHomeworkWrapper.CourseHomeworkQuery queryInfo);
+
+    /**
+    * @description: 老师布置测验后更新服务指标相关数据
+     * @param lessonExamination
+     * @param studentIds
+    * @return void
+    * @author zx
+    * @date 2023/4/10 16:18
+    */
+    void updateNum(LessonExamination lessonExamination, List<Integer> studentIds);
+
+    /**
+    * @description: 学员提交作业后更新服务指标
+     * @param lessonExamination
+     * @param studentLessonExamination
+    * @return void
+    * @author zx
+    * @date 2023/4/10 16:38
+    */
+    void updateLastSubmitTime(LessonExamination lessonExamination, StudentLessonExamination studentLessonExamination);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentLessonExaminationService.java

@@ -19,7 +19,7 @@ public interface StudentLessonExaminationService extends IService<StudentLessonE
 
     StudentLessonExaminationDao getDao();
 
-    void save(Long lessonExaminationId,List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos);
+    List<Integer> save(Long lessonExaminationId,List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos);
 
     PageInfo<StudentLessonExaminationDto> queryPage(StudentLessonExaminationQueryInfo queryInfo);
 

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonExaminationServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo;
 import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
 import com.ym.mec.biz.service.LessonExaminationService;
+import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
 import com.ym.mec.biz.service.StudentLessonExaminationService;
 import com.ym.mec.common.exception.BizException;
@@ -44,6 +45,8 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
     @Autowired
     private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
     @Autowired
+    private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
+    @Autowired
     private MusicGroupDao musicGroupDao;
     @Autowired
     private TeacherDao teacherDao;
@@ -100,8 +103,10 @@ public class LessonExaminationServiceImpl extends ServiceImpl<LessonExaminationD
         lessonExamination.setExpireDate(expireDate);
         lessonExamination.setTeacherId(param.getTeacherId());
         baseMapper.insert(lessonExamination);
-        studentLessonExaminationService.save(lessonExamination.getId(),param.getStudentLessonExaminationSaveDtos());
+        List<Integer> studentIds = studentLessonExaminationService.save(lessonExamination.getId(), param.getStudentLessonExaminationSaveDtos());
         studentLessonExaminationDetailService.save(lessonExamination.getId(),param.getStudentLessonExaminationSaveDtos());
+        //更新服务指标相关数量信息
+        studentExtracurricularExercisesSituationService.updateNum(lessonExamination,studentIds);
     }
 
     @Override

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -858,7 +858,20 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
         return pageInfo;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+    public void updateNum(LessonExamination lessonExamination, List<Integer> studentIds) {
+		courseScheduleStatisticsDao.updateNum(lessonExamination.getCourseScheduleId(),lessonExamination.getTeacherId(),studentIds);
+    }
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateLastSubmitTime(LessonExamination lessonExamination, StudentLessonExamination studentLessonExamination) {
+		courseScheduleStatisticsDao.updateLastSubmitTime(lessonExamination.getCourseScheduleId(),lessonExamination.getTeacherId(),
+				studentLessonExamination.getUserId());
+	}
+
+	@Transactional(rollbackFor = Exception.class)
 	public void delSituations(List<StudentExtracurricularExercisesSituation> situations){
 		if (CollectionUtils.isEmpty(situations)){
 			return;

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.LessonExaminationDao;
+import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDao;
 import com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao;
 import com.ym.mec.biz.dal.dto.LessonExaminationSubmitDto;
@@ -13,6 +14,7 @@ import com.ym.mec.biz.dal.entity.StudentLessonExamination;
 import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
 import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryInfo;
 import com.ym.mec.biz.service.LessonExaminationService;
+import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
 import com.ym.mec.biz.service.StudentLessonExaminationService;
 import com.ym.mec.common.exception.BizException;
@@ -42,6 +44,8 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
     private StudentLessonExaminationDetailService studentLessonExaminationDetailService;
     @Autowired
     private LessonExaminationDao lessonExaminationDao;
+    @Autowired
+    private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
 
     @Override
     public StudentLessonExaminationDao getDao() {
@@ -50,20 +54,24 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void save(Long lessonExaminationId, List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos) {
+    public List<Integer> save(Long lessonExaminationId, List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos) {
         List<StudentLessonExamination> studentLessonExaminations = new ArrayList<>();
+        List<Integer> studentIdList = Collections.EMPTY_LIST;
         for (StudentLessonExaminationSaveDto dto : studentLessonExaminationSaveDtos) {
             String[] studentIds = dto.getStudentIds().split(",");
             for (String studentId : studentIds) {
                 StudentLessonExamination studentLessonExamination = new StudentLessonExamination();
                 studentLessonExamination.setLessonExaminationId(lessonExaminationId);
-                studentLessonExamination.setUserId(Integer.parseInt(studentId));
+                int parseInt = Integer.parseInt(studentId);
+                studentIdList.add(parseInt);
+                studentLessonExamination.setUserId(parseInt);
                 studentLessonExamination.setSubjectId(dto.getSubjectId());
                 studentLessonExaminations.add(studentLessonExamination);
             }
         }
 
         baseMapper.insertBatch(studentLessonExaminations);
+        return studentIdList;
     }
 
     @Override
@@ -134,6 +142,8 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
         if(flag){
             baseMapper.updateTrainingScore(lessonExaminationId,userId);
         }
+        //更新服务指标
+        studentExtracurricularExercisesSituationService.updateLastSubmitTime(lessonExamination,studentLessonExamination);
     }
 
     @Override

+ 22 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStatisticsMapper.xml

@@ -121,6 +121,28 @@
 	<update id="updateCourseService">
 		UPDATE course_schedule_statistics SET service_flag_ = #{serviceFlag} WHERE FIND_IN_SET(course_schedule_id_,#{courseIds})
 	</update>
+    <update id="updateNum">
+		update student_extracurricular_exercises_situation_
+		set actual_exercises_num_ = 1,update_time_ = NOW()
+		where teacher_id_ = #{teacherId}
+		and student_id_ IN
+		<foreach collection="studentIds" open="(" close=")" item="userId" separator=",">
+			#{userId}
+		</foreach>
+		<if test="courseScheduleId != null">
+			AND FIND_IN_SET(#{courseScheduleId},course_ids_)
+		</if>
+		AND DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN monday_ AND sunday_ AND actual_exercises_num_ = 0
+	</update>
+	<update id="updateLastSubmitTime">
+		update student_extracurricular_exercises_situation_
+		set exercises_reply_num_ = 1,last_submit_time_ = NOW(),update_time_ = NOW()
+		where teacher_id_ = #{teacherId} and student_id_ = #{userId}
+		<if test="courseScheduleId != null">
+			AND FIND_IN_SET(#{courseScheduleId},course_ids_)
+		</if>
+		AND DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN monday_ AND sunday_
+	</update>
 
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >