Переглянути джерело

Merge branch 'master' of http://git.dayaedu.com/yonge/mec into zouxuan

zouxuan 5 роки тому
батько
коміт
48216f0b74

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassHeadInfo.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import io.swagger.annotations.ApiModelProperty;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 
 import java.util.Date;
 
@@ -49,6 +51,9 @@ public class TeacherClassHeadInfo {
     @ApiModelProperty(value = "班级名称",required = false)
     private String classGroupName;
 
+    @ApiModelProperty(value = "课程类型",required = false)
+    private CourseScheduleType CourseScheduleType;
+
 
     public Integer getTotalClassTimes() {
         return totalClassTimes;
@@ -153,4 +158,12 @@ public class TeacherClassHeadInfo {
     public void setClassGroupName(String classGroupName) {
         this.classGroupName = classGroupName;
     }
+
+    public CourseSchedule.CourseScheduleType getCourseScheduleType() {
+        return CourseScheduleType;
+    }
+
+    public void setCourseScheduleType(CourseSchedule.CourseScheduleType courseScheduleType) {
+        CourseScheduleType = courseScheduleType;
+    }
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentExercisesSituationQueryInfo.java

@@ -42,6 +42,28 @@ public class StudentExercisesSituationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否存在网管课")
     private Integer existPracticeCourse;
 
+    @ApiModelProperty(value = "作业提交起始时间")
+    private String submitStartDate;
+
+    @ApiModelProperty(value = "作业提交截至时间")
+    private String submitEndDate;
+
+    public String getSubmitStartDate() {
+        return submitStartDate;
+    }
+
+    public void setSubmitStartDate(String submitStartDate) {
+        this.submitStartDate = submitStartDate;
+    }
+
+    public String getSubmitEndDate() {
+        return submitEndDate;
+    }
+
+    public void setSubmitEndDate(String submitEndDate) {
+        this.submitEndDate = submitEndDate;
+    }
+
     public Integer getExistPracticeCourse() {
         return existPracticeCourse;
     }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -429,4 +429,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param groupName
      */
     void updateGroupName(Integer groupId, String groupName);
+
+    /**
+     * @params @param courseId:课程编号
+     * @return com.ym.mec.biz.dal.dto.TeacherClassHeadInfo
+     * @describe 获取班级信息
+     */
+    TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -189,6 +189,9 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String PRACTICE_FREE_APPLY_EXPIRE_DATE = "practice_free_apply_expire_date";
 
+    //零星支付收到深圳大雅的分部
+    public static final String SZ_DA_YA_ORGAN_IDS = "sz_da_ya_organ_ids";
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2932,6 +2932,50 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupDao.updateGroupName(groupId, groupName);
     }
 
+    @Override
+    public TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId) {
+        CourseSchedule courseSchedule = courseScheduleDao.get(courseId.longValue());
+        Integer classGroupId = courseSchedule.getClassGroupId();
+
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+
+        if (Objects.isNull(classGroup)) {
+            throw new BizException("未找到该班级");
+        }
+
+        String subjectNames = subjectDao.findNames(classGroup.getSubjectIdList());
+
+        TeacherClassHeadInfo teacherClassHeadInfo = new TeacherClassHeadInfo();
+        teacherClassHeadInfo.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
+        teacherClassHeadInfo.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(classGroup.getId(), new Date()));
+        teacherClassHeadInfo.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
+        if (subjectNames != null && !subjectNames.isEmpty()) {
+            teacherClassHeadInfo.setSubjectNames(subjectNames);
+        }
+        ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(classGroupId, TeachTypeEnum.BISHOP);
+        if (Objects.nonNull(bishopTeacher)) {
+            teacherClassHeadInfo.setBishopTeacherId(bishopTeacher.getId());
+            teacherClassHeadInfo.setBishopTeacher(bishopTeacher.getUserName());
+        }
+
+        String name = classGroupTeacherMapperDao.queryTeachingNames(classGroupId);
+        teacherClassHeadInfo.setTeachingTeacher(name);
+
+        if (classGroup.getType() == ClassGroupTypeEnum.VIP) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        if (classGroup.getType() == ClassGroupTypeEnum.PRACTICE) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        if (classGroup.getType() == ClassGroupTypeEnum.COMM) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        return teacherClassHeadInfo;
+    }
+
 
     @Override
     public ClassGroup findGroupById(Integer groupId) {

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -303,11 +303,12 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     public TeacherClassHeadInfo getCourseInfoHead(Integer id) {
         CourseSchedule courseSchedule = courseScheduleDao.get(id.longValue());
         ClassGroup classGroup = classGroupService.get(courseSchedule.getClassGroupId());
-        TeacherClassHeadInfo teacherClassGroupInfo = classGroupService.findTeacherClassGroupInfo(courseSchedule.getClassGroupId());
+        TeacherClassHeadInfo teacherClassGroupInfo = classGroupService.findTeacherClassGroupInfoByCourseId(id);
         teacherClassGroupInfo.setClassDate(DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"));
         teacherClassGroupInfo.setStartClassTime(DateUtil.dateToString(courseSchedule.getStartClassTime(), "HH:mm"));
         teacherClassGroupInfo.setEndClassTime(DateUtil.dateToString(courseSchedule.getEndClassTime(), "HH:mm"));
         teacherClassGroupInfo.setClassGroupName(classGroup.getName());
+        teacherClassGroupInfo.setCourseScheduleType(courseSchedule.getType());
         return teacherClassGroupInfo;
     }
 

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -287,7 +287,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         OrderTypeEnum type = OrderTypeEnum.SPORADIC;
-        String receiver = "sdaya";
 
         Integer userId = sporadicPayDto.getUserId();
         String orderNo = idGeneratorService.generatorId("payment") + "";
@@ -349,6 +348,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         classFee.put("accessories", BigDecimal.ZERO);
         classFee.put("other", amount);
 
+        String receiver = "daya";
+        //深圳的零星缴费是在深圳
+        String sDaYaOrganIds = sysConfigDao.findConfigValue(SysConfigService.SZ_DA_YA_ORGAN_IDS);
+        if(StringUtils.isNotBlank(sDaYaOrganIds)){
+            List<String> sDaYaOrganIdList = Arrays.asList(sDaYaOrganIds.split(","));
+            if(sDaYaOrganIdList.contains(chargeInfo.getOrganId().toString())){
+                receiver = "sdaya";
+            }
+        }
+
         Map payMap = payService.getPayMap(
                 amount,
                 orderNo,

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -134,6 +134,8 @@ public class PayServiceImpl implements PayService {
         if (companies.contains(receiver)) {
             company = receiver;
             receiver = null;
+        }else {
+            receiver = null;
         }
 
         //支付通道决策

+ 13 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -34,6 +34,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 
 @Service
 public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, StudentCourseHomework> implements StudentCourseHomeworkService {
@@ -124,14 +125,19 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
             }
         }
 
-        CourseHomework temp = courseHomeworkService.get(courseHomework.getId());
-        if (temp.getExpectNum().equals(courseHomework.getCompletedNum())) {
-            CourseScheduleReview review = courseScheduleReviewDao.findByCourseScheduleAndStudent(bean.getCourseScheduleId(), bean.getUserId());
-            if (Objects.nonNull(review)) {
-                review.setHandHomework(YesOrNoEnum.YES.getCode());
-                courseScheduleReviewDao.update(review);
-            }
+//        CourseHomework temp = courseHomeworkService.get(courseHomework.getId());
+//        if (temp.getExpectNum().equals(courseHomework.getCompletedNum())) {
+        Integer userId = bean.getUserId();
+        if(courseSchedule.getType().equals(CourseScheduleType.VIP)){
+            userId = null;
+        }
+
+        CourseScheduleReview review = courseScheduleReviewDao.findByCourseScheduleAndStudent(bean.getCourseScheduleId(), userId);
+        if (Objects.nonNull(review)) {
+            review.setHandHomework(YesOrNoEnum.YES.getCode());
+            courseScheduleReviewDao.update(review);
         }
+//        }
 
         if(push){
             Map<Integer, String> userMap = new HashMap<>();

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -19,6 +19,7 @@ import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
@@ -45,6 +46,7 @@ public class StudentServeServiceImpl implements StudentServeService {
     private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void exercisesSituationStatistics(String monday) {
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
 

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1748,6 +1748,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				if(newCourseSchedules.get(i).getStartClassTime().before(now)){
 					throw new BizException("排课起始时间不得小于当前时间");
 				}
+				newCourseSchedules.get(i).setName(vipGroup.getName());
 				newCourseSchedules.get(i).setGroupType(GroupType.VIP);
 				newCourseSchedules.get(i).setMusicGroupId(vipGroup.getId().toString());
 				newCourseSchedules.get(i).setClassGroupId(classGroup.getId());

+ 20 - 21
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -40,7 +40,9 @@
         where id_ = #{id,jdbcType=INTEGER}
     </delete>
     <delete id="delByCourseScheduleId">
-        DELETE FROM course_schedule_review WHERE course_schedule_id_ = #{courseScheduleId}
+        DELETE
+        FROM course_schedule_review
+        WHERE course_schedule_id_ = #{courseScheduleId}
     </delete>
     <delete id="delByCourseScheduleIds">
         DELETE FROM course_schedule_review WHERE course_schedule_id_ IN
@@ -318,6 +320,7 @@
         LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="practiceGroupReviews4EduQueryCondition"/>
+        ORDER BY cs.class_date_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -333,7 +336,7 @@
         FROM course_schedule_review
         WHERE course_schedule_id_ = #{courseScheduleId}
         <if test="studentId != null">
-          AND student_id_ = #{studentId}
+            AND student_id_ = #{studentId}
         </if>
     </select>
 
@@ -388,17 +391,16 @@
     </select>
 
     <select id="getOnlineCourseReviewList" resultMap="CourseReviewDto">
-        SELECT cs.id_,cs.class_date_,cs.name_ course_name_,csr.id_ review_id_, csc.score_ student_review_,
+        SELECT cs.id_,cs.class_date_,cs.name_ course_name_,csr.id_ review_id_,
         csr.hand_homework_,csr.course_review_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
-        csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,sa.id_
-        attendance_id_,sch.is_replied_ home_work_replied_,
-        CASE WHEN sch.id_ IS NULL THEN 0 ELSE 1 END assign_homework_
+        csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,
+        sa.id_ attendance_id_
         FROM course_schedule cs
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
-        LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
-        LEFT JOIN student_attendance sa on sa.course_schedule_id_ = cs.id_
-        LEFT JOIN student_course_homework sch on cs.id_ = sch.course_schedule_id_
+        LEFT JOIN (
+        SELECT course_schedule_id_,id_ FROM student_attendance LIMIT 1
+        ) sa ON sa.course_schedule_id_ = cs.id_
         <include refid="courseReviewsQueryCondition"/>
         ORDER BY cs.class_date_ DESC
         <include refid="global.limit"/>
@@ -407,15 +409,16 @@
     <select id="countOnlineCourseReviews" resultType="java.lang.Integer">
         SELECT count(*) FROM course_schedule cs
         LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
-        LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
-        LEFT JOIN student_attendance sa on sa.course_schedule_id_ = cs.id_
-        LEFT JOIN student_course_homework sch on cs.id_ = sch.course_schedule_id_
+        LEFT JOIN(
+        SELECT course_schedule_id_,id_ FROM student_attendance LIMIT 1
+        ) sa ON sa.course_schedule_id_ = cs.id_
         <include refid="courseReviewsQueryCondition"/>
     </select>
 
     <sql id="courseReviewsQueryCondition">
         <where>
-            AND cs.type_ IN ('PRACTICE','VIP') AND cs.teach_mode_='ONLINE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
+            AND cs.type_ IN ('PRACTICE','VIP') AND cs.teach_mode_='ONLINE' AND cs.status_='OVER' AND (cs.del_flag_ = 0
+            OR cs.del_flag_ IS NULL)
             <if test="search!=null and search!=''">
                 AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
             </if>
@@ -467,20 +470,16 @@
             <if test='hasArrived !=null and hasArrived=="0"'>
                 AND sa.id_ IS NULL
             </if>
-            <if test='homeWorkReplied !=null and homeWorkReplied =="1"'>
-                AND sch.is_replied_ > 0
-            </if>
-            <if test='homeWorkReplied !=null and homeWorkReplied =="0"'>
-                AND (sch.is_replied_ = 0 OR sch.is_replied_ IS NULL)
-            </if>
         </where>
     </sql>
 
     <select id="getVipCourseReviewList" resultMap="CourseReviewDto">
-        SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, (SELECT group_concat(name_) FROM subject sb WHERE FIND_IN_SET(id_,cg.subject_id_list_)) AS
+        SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, (SELECT group_concat(name_) FROM subject sb
+        WHERE FIND_IN_SET(id_,cg.subject_id_list_)) AS
         subject_name_ ,vg.organ_id_,cs.name_
         course_name_,su.real_name_ teacher_name_,edsu.real_name_
-        edu_teacher_name_,csr.id_ review_id_,csr.hand_homework_,csr.course_review_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
+        edu_teacher_name_,csr.id_
+        review_id_,csr.hand_homework_,csr.course_review_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
         csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,
         CASE WHEN ch.id_ IS NULL THEN 0 ELSE 1 END assign_homework_
         FROM course_schedule cs

+ 161 - 109
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -5,7 +5,7 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao">
-	
+
 	<resultMap type="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" id="StudentExtracurricularExercisesSituation">
 		<result column="id_" property="id" />
 		<result column="student_id_" property="studentId" />
@@ -30,17 +30,17 @@
 		<result column="organ_name_" property="organName"/>
 		<result column="exist_vip_course_" property="existVipCourse"/>
 	</resultMap>
-	
+
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="StudentExtracurricularExercisesSituation" >
 		SELECT * FROM student_extracurricular_exercises_situation_ WHERE id_ = #{id} 
 	</select>
-	
+
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="StudentExtracurricularExercisesSituation">
 		SELECT * FROM student_extracurricular_exercises_situation_ ORDER BY id_
 	</select>
-	
+
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		<!--
@@ -52,7 +52,7 @@
 		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType})
 	</insert>
 
-    <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
 		VALUES
 		<foreach collection="situations" item="situation" separator=",">
@@ -60,7 +60,7 @@
 		</foreach>
 	</insert>
 
-    <!-- 根据主键查询一条记录 -->
+	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation">
 		UPDATE student_extracurricular_exercises_situation_
 		<set>
@@ -109,7 +109,7 @@
 			update_time_ = #{updateTime}
 		</set> WHERE id_ = #{id}
 	</update>
-	
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM student_extracurricular_exercises_situation_ WHERE id_ = #{id} 
@@ -117,15 +117,15 @@
 	<delete id="deleteByMonday">
 		DELETE FROM student_extracurricular_exercises_situation_ WHERE monday_ = #{monday}
 	</delete>
-    <delete id="deleteByStudent">
+	<delete id="deleteByStudent">
 		DELETE FROM student_extracurricular_exercises_situation_ WHERE student_id_ = #{studentId}
 	</delete>
 
-    <!-- 分页查询 -->
+	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="StudentExtracurricularExercisesSituation" parameterType="map">
 		SELECT * FROM student_extracurricular_exercises_situation_ ORDER BY id_ <include refid="global.limit"/>
 	</select>
-	
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_extracurricular_exercises_situation_
@@ -133,57 +133,66 @@
 
 	<select id="findExercisesSituations" resultMap="StudentExercisesSituationDto">
 		SELECT
-			MAX(sees.id_) id_,
-			student_id_,
-			stu.username_ student_name_,
-			GROUP_CONCAT(DISTINCT tea.real_name_ ORDER BY tea.id_) teacher_name_,
-			o.name_ organ_name_,
-			SUM( expect_exercises_num_ ) expect_exercises_num_,
-			SUM( actual_exercises_num_ ) actual_exercises_num_,
+		MAX(sees.id_) id_,
+		student_id_,
+		stu.username_ student_name_,
+		GROUP_CONCAT(DISTINCT tea.real_name_ ORDER BY tea.id_) teacher_name_,
+		o.name_ organ_name_,
+		SUM( expect_exercises_num_ ) expect_exercises_num_,
+		SUM( actual_exercises_num_ ) actual_exercises_num_,
+		<if test="submitStartDate==null or submitEndDate==null">
 			SUM( exercises_reply_num_ ) exercises_reply_num_,
 			SUM( exercises_message_num_ ) exercises_message_num_,
 			SUM( exercises_message_timely_num_ ) exercises_message_timely_num_,
 			MAX(last_submit_time_) last_submit_time_
+		</if>
+		<if test="submitStartDate!=null and submitEndDate!=null">
+			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) exercises_reply_num_,
+			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) exercises_message_num_,
+			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) exercises_message_timely_num_,
+			MAX(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},last_submit_time_, NULL)) last_submit_time_
+		</if>
 		FROM
-			student_extracurricular_exercises_situation_ sees
-			LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
-			LEFT JOIN teacher t ON t.id_=sees.teacher_id_
-			LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
-			LEFT JOIN organization o ON stu.organ_id_=o.id_
+		student_extracurricular_exercises_situation_ sees
+		LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
+		LEFT JOIN teacher t ON t.id_=sees.teacher_id_
+		LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
+		LEFT JOIN organization o ON stu.organ_id_=o.id_
 		WHERE
-			sees.monday_ &gt;= #{monday}
-			AND sees.sunday_ &lt;= #{sunday}
-			<if test="teacherId!=null">
-				AND sees.teacher_id_ = #{teacherId}
-			</if>
-			<if test="search!=null">
-				AND (stu.id_=#{search} OR stu.username_ LIKE CONCAT('%', #{search}, '%'))
-			</if>
-			<if test="organIdList != null">
-				AND FIND_IN_SET(t.organ_id_,#{organIdList})
-			</if>
-			<if test="existVipCourse!=null and existVipCourse==1">
-				AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
-			</if>
-			<if test="existVipCourse!=null and existVipCourse==0">
-				AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
-			</if>
-			<if test="existPracticeCourse!=null and existPracticeCourse==1">
-				AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		sees.monday_ &gt;= #{monday}
+		AND sees.sunday_ &lt;= #{sunday}
+		<if test="teacherId!=null">
+			AND sees.teacher_id_ = #{teacherId}
+		</if>
+		<if test="search!=null">
+			AND (stu.id_=#{search} OR stu.username_ LIKE CONCAT('%', #{search}, '%'))
+		</if>
+		<if test="organIdList != null">
+			AND FIND_IN_SET(t.organ_id_,#{organIdList})
+		</if>
+		<if test="existVipCourse!=null and existVipCourse==1">
+			AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existVipCourse!=null and existVipCourse==0">
+			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existPracticeCourse!=null and existPracticeCourse==1">
+			AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existPracticeCourse!=null and existPracticeCourse==0">
+			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		GROUP BY
+		student_id_
+		<trim prefix="HAVING" suffixOverrides="and">
+			<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
+			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
+				SUM( actual_exercises_num_ )&lt;SUM( expect_exercises_num_ ) and
 			</if>
-			<if test="existPracticeCourse!=null and existPracticeCourse==0">
-				AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
+				SUM( actual_exercises_num_ )&gt;=SUM( expect_exercises_num_ ) and
 			</if>
-			GROUP BY
-			student_id_
-			<trim prefix="HAVING" suffixOverrides="and">
-				<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
-				<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
-					SUM( actual_exercises_num_ )&lt;SUM( expect_exercises_num_ ) and
-				</if>
-				<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
-					SUM( actual_exercises_num_ )&gt;=SUM( expect_exercises_num_ ) and
-				</if>
+			<if test="submitStartDate==null or submitEndDate==null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 					SUM( exercises_reply_num_ ) &lt; SUM( expect_exercises_num_ ) and
 				</if>
@@ -202,55 +211,77 @@
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 					SUM( exercises_message_timely_num_ ) &gt;= SUM( expect_exercises_num_ ) and
 				</if>
-			</trim>
+			</if>
+			<if test="submitStartDate!=null and submitEndDate!=null">
+				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+			</if>
+		</trim>
 		ORDER BY student_id_
 		<include refid="global.limit"/>
 	</select>
 
 	<select id="countExercisesSituations" resultType="int">
 		SELECT COUNT(1) FROM (
-			SELECT
-				1
-			FROM
-				student_extracurricular_exercises_situation_ sees
-				LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
-				LEFT JOIN teacher t ON t.id_=sees.teacher_id_
-				LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
-				LEFT JOIN organization o ON stu.organ_id_=o.id_
-			WHERE
-			sees.monday_ &gt;= #{monday}
-			AND sees.sunday_ &lt;= #{sunday}
-			<if test="teacherId!=null">
-				AND sees.teacher_id_ = #{teacherId}
-			</if>
-			<if test="search!=null">
-				AND (stu.id_=#{search} OR stu.username_ LIKE CONCAT('%', #{search}, '%'))
-			</if>
-			<if test="organIdList != null">
-				AND FIND_IN_SET(t.organ_id_, #{organIdList})
-			</if>
-			<if test="existVipCourse!=null and existVipCourse==1">
-				AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
-			</if>
-			<if test="existVipCourse!=null and existVipCourse==0">
-				AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
-			</if>
-			<if test="existPracticeCourse!=null and existPracticeCourse==1">
-				AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		SELECT
+		1
+		FROM
+		student_extracurricular_exercises_situation_ sees
+		LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
+		LEFT JOIN teacher t ON t.id_=sees.teacher_id_
+		LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
+		LEFT JOIN organization o ON stu.organ_id_=o.id_
+		WHERE
+		sees.monday_ &gt;= #{monday}
+		AND sees.sunday_ &lt;= #{sunday}
+		<if test="teacherId!=null">
+			AND sees.teacher_id_ = #{teacherId}
+		</if>
+		<if test="search!=null">
+			AND (stu.id_=#{search} OR stu.username_ LIKE CONCAT('%', #{search}, '%'))
+		</if>
+		<if test="organIdList != null">
+			AND FIND_IN_SET(t.organ_id_, #{organIdList})
+		</if>
+		<if test="existVipCourse!=null and existVipCourse==1">
+			AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existVipCourse!=null and existVipCourse==0">
+			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='VIP' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existPracticeCourse!=null and existPracticeCourse==1">
+			AND EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		<if test="existPracticeCourse!=null and existPracticeCourse==0">
+			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+		</if>
+		GROUP BY
+		student_id_
+		<trim prefix="HAVING" suffixOverrides="and">
+			<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
+			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
+				SUM( actual_exercises_num_ )&lt;SUM( expect_exercises_num_ ) and
 			</if>
-			<if test="existPracticeCourse!=null and existPracticeCourse==0">
-				AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
+			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
+				SUM( actual_exercises_num_ )&gt;=SUM( expect_exercises_num_ ) and
 			</if>
-			GROUP BY
-			student_id_
-			<trim prefix="HAVING" suffixOverrides="and">
-				<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
-				<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
-					SUM( actual_exercises_num_ )&lt;SUM( expect_exercises_num_ ) and
-				</if>
-				<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
-					SUM( actual_exercises_num_ )&gt;=SUM( expect_exercises_num_ ) and
-				</if>
+			<if test="submitStartDate==null or submitEndDate==null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 					SUM( exercises_reply_num_ ) &lt; SUM( expect_exercises_num_ ) and
 				</if>
@@ -269,7 +300,28 @@
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 					SUM( exercises_message_timely_num_ ) &gt;= SUM( expect_exercises_num_ ) and
 				</if>
-			</trim>
+			</if>
+			<if test="submitStartDate!=null and submitEndDate!=null">
+				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+				</if>
+				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+				</if>
+			</if>
+		</trim>
 		) tmp
 	</select>
 	<select id="findExercisesSituationsById" resultMap="StudentExtracurricularExercisesSituation">
@@ -278,28 +330,28 @@
 			#{id}
 		</foreach>
 	</select>
-    <select id="findTeacherExercisesServiceSituations" resultType="com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto">
+	<select id="findTeacherExercisesServiceSituations" resultType="com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto">
 		SELECT
-			teacher_id_ teacherId,
-			COUNT( exercises_reply_num_ ) expectExercisesNum,
-			COUNT( CASE WHEN actual_exercises_num_ = 1 THEN 1 ELSE NULL END ) actualExercisesNum
+		teacher_id_ teacherId,
+		COUNT( exercises_reply_num_ ) expectExercisesNum,
+		COUNT( CASE WHEN actual_exercises_num_ = 1 THEN 1 ELSE NULL END ) actualExercisesNum
 		FROM
-			student_extracurricular_exercises_situation_
+		student_extracurricular_exercises_situation_
 		WHERE monday_ = #{monday}
-			AND teacher_id_ IN
-			<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-				#{teacherId}
-			</foreach>
+		AND teacher_id_ IN
+		<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+			#{teacherId}
+		</foreach>
 		GROUP BY
-			teacher_id_;
-    </select>
-    <select id="findLastWeekTodayUpdateNum" resultType="int">
+		teacher_id_;
+	</select>
+	<select id="findLastWeekTodayUpdateNum" resultType="int">
 		SELECT COUNT(id_) FROM student_extracurricular_exercises_situation_ WHERE sunday_=#{sunday} AND DATE_FORMAT(update_time_,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')
     </select>
-    <select id="findStudentExercisesSituationsWithMonDay" resultMap="StudentExtracurricularExercisesSituation">
+	<select id="findStudentExercisesSituationsWithMonDay" resultMap="StudentExtracurricularExercisesSituation">
 		SELECT * FROM student_extracurricular_exercises_situation_ WHERE monday_=#{monday} AND student_id_=#{studentId}
 	</select>
-    <select id="getNoFinishedServiceTeacher" resultType="java.util.Map">
+	<select id="getNoFinishedServiceTeacher" resultType="java.util.Map">
 		SELECT
 			teacher_id_ AS 'key',
 			COUNT( student_id_ ) AS 'value'

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduCourseReviewController.java

@@ -58,7 +58,6 @@ public class EduCourseReviewController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-        courseScheduleReview.setEducationalTeacherId(sysUser.getId());
         return succeed(courseReviewService.updateReview(courseScheduleReview));
     }