瀏覽代碼

老师端评价增加VIP课

周箭河 5 年之前
父節點
當前提交
ebf33e828f

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleReviewDao.java

@@ -120,6 +120,7 @@ public interface CourseScheduleReviewDao extends BaseDAO<Integer, CourseSchedule
 
     /**
      * 线上课评价列表
+     *
      * @param params
      * @return
      */
@@ -127,8 +128,23 @@ public interface CourseScheduleReviewDao extends BaseDAO<Integer, CourseSchedule
 
     /**
      * 线上课评价统计
+     *
      * @param params
      * @return
      */
     Integer countOnlineCourseReviews(Map<String, Object> params);
+
+    /**
+     * vip课评价列表
+     * @param params
+     * @return
+     */
+    List<CourseReviewDto> getVipCourseReviewList(Map<String, Object> params);
+
+    /**
+     * vip课评价统计
+     * @param params
+     * @return
+     */
+    Integer countVipCourseReviews(Map<String, Object> params);
 }

+ 3 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -283,7 +283,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         reviewInfoDto.setCourseScheduleReview(courseScheduleReview);
         reviewInfoDto.setTeacherClassHeadInfo(teacherClassGroupInfo);
         Long studentId = null;
-        if(courseScheduleReview.getStudentId() != null){
+        if (courseScheduleReview.getStudentId() != null) {
             studentId = courseScheduleReview.getStudentId().longValue();
         }
         //学生评价
@@ -615,19 +615,15 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         MapUtil.populateMap(params, queryInfo);
 
         List<CourseReviewDto> dataList = null;
-        int count = courseScheduleReviewDao.countPracticeGroupReviews(params);
+        int count = courseScheduleReviewDao.countVipCourseReviews(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
-            dataList = courseScheduleReviewDao.getPracticeGroupReviewList(params);
+            dataList = courseScheduleReviewDao.getVipCourseReviewList(params);
             if (dataList != null && dataList.size() > 0) {
-                List<Integer> subjectIds = dataList.stream().map(CourseReviewDto::getSubjectId).distinct().collect(Collectors.toList());
                 Set<Integer> organIds = dataList.stream().map(CourseReviewDto::getOrganId).collect(Collectors.toSet());
-                //声部名称列表
-                Map<Long, String> subjectNames = MapUtil.convertMybatisMap(subjectDao.findBySubjecIds(StringUtils.join(subjectIds, ",")));
                 Map<Integer, String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
                 dataList.forEach(e -> {
-                    e.setSubjectName(subjectNames.get(e.getSubjectId().intValue()));
                     e.setOrganName(organNames.get(e.getOrganId()));
                 });
             }

+ 55 - 15
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -132,6 +132,7 @@
     <resultMap id="CourseReviewDto" type="com.ym.mec.biz.dal.dto.CourseReviewDto">
         <id column="id_" jdbcType="INTEGER" property="id"/>
         <result column="subject_id_" jdbcType="INTEGER" property="subjectId"/>
+        <result column="subject_name_" jdbcType="INTEGER" property="subjectName"/>
         <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
         <result column="class_date_" jdbcType="DATE" property="classDate"/>
         <result column="course_name_" jdbcType="VARCHAR" property="courseName"/>
@@ -476,33 +477,72 @@
     </sql>
 
     <select id="getVipCourseReviewList" resultMap="CourseReviewDto">
-        SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, pg.subject_id_,vg.organ_id_,cs.name_
+        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_, csc.score_ student_review_,
-        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_,
+        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_
         FROM course_schedule cs
         LEFT JOIN vip_group vg ON cs.music_group_id_ = vg.id_ AND cs.group_type_='VIP'
+        LEFT JOIN class_group cg ON cg.music_group_id_=vg.id_ AND cg.group_type_ = 'VIP'
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         LEFT JOIN sys_user edsu ON vg.educational_teacher_id_ = edsu.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_
-        <include refid="practiceGroupReviewsQueryCondition"/>
+        <include refid="vipGroupReviewsQueryCondition"/>
         ORDER BY cs.class_date_ DESC
         <include refid="global.limit"/>
     </select>
 
     <select id="countVipCourseReviews" resultType="java.lang.Integer">
         SELECT count(*) FROM course_schedule cs
-        LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_ AND cs.group_type_='PRACTICE'
+        LEFT JOIN vip_group vg ON cs.music_group_id_ = vg.id_ AND cs.group_type_='VIP'
+        LEFT JOIN class_group cg ON cg.music_group_id_=vg.id_ AND cg.group_type_ = 'VIP'
         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_
-        <include refid="practiceGroupReviewsQueryCondition"/>
+        <include refid="vipGroupReviewsQueryCondition"/>
     </select>
+
+    <sql id="vipGroupReviewsQueryCondition">
+        <where>
+            AND vg.id_ > 0 AND cs.group_type_='VIP' 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>
+            <if test="organId != null">
+                AND FIND_IN_SET(vg.organ_id_,#{organId})
+            </if>
+            <if test="teacherId != null">
+                AND cs.actual_teacher_id_=#{teacherId}
+            </if>
+            <if test="eduTeacherId != null">
+                AND vg.educational_teacher_id_=#{eduTeacherId}
+            </if>
+            <if test='hasReview !=null and hasReview=="1"'>
+                AND csr.id_ > 0
+            </if>
+            <if test='hasReview !=null and hasReview=="0"'>
+                AND csr.id_ IS NULL
+            </if>
+            <if test='hasHandHomework !=null and hasHandHomework=="1"'>
+                AND csr.hand_homework_ = 1
+            </if>
+            <if test='hasHandHomework !=null and hasHandHomework=="0"'>
+                AND csr.hand_homework_ IS NULL
+            </if>
+            <if test='hasLiaison !=null and hasLiaison=="1"'>
+                AND csr.has_liaison_ = 1
+            </if>
+            <if test='hasLiaison !=null and hasLiaison=="0"'>
+                AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL)
+            </if>
+            <if test="courseReview != null">
+                AND csr.course_review_=#{courseReview}
+            </if>
+            <if test="startTime !=null">
+                <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
+            </if>
+            <if test="endTime !=null">
+                <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
+            </if>
+        </where>
+    </sql>
 </mapper>