瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java
Joburgess 5 年之前
父節點
當前提交
b85ccc9d46

+ 20 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleComplaintsDao.java

@@ -10,27 +10,44 @@ import java.util.List;
 public interface CourseScheduleComplaintsDao extends BaseDAO<Long, CourseScheduleComplaints> {
 
     /**
+     * @return com.ym.mec.biz.dal.entity.CourseScheduleComplaints
      * @Author: Joburgess
      * @Date: 2019/10/8
      * @params [userId, courseScheduleId]
-     * @return com.ym.mec.biz.dal.entity.CourseScheduleComplaints
      * @describe 根据用户和课程获取申诉详情
      */
-    CourseScheduleComplaints findByUserAndCourse(@Param("userId") Long userId,@Param("courseScheduleId") Long courseScheduleId);
+    CourseScheduleComplaints findByUserAndCourse(@Param("userId") Long userId, @Param("courseScheduleId") Long courseScheduleId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleComplaints>
      * @Author: Joburgess
      * @Date: 2019/10/15
      * @params [ids]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleComplaints>
      * @describe 根据课程编号批量获取投诉记录
      */
     List<CourseScheduleComplaints> findByCourseScheduleIds(@Param("ids") List<Long> ids);
 
     /**
      * 获取课程的学员评价
+     *
      * @param courseScheduleId
      * @return
      */
     List<CourseScheduleComplaintsDto> findByCourseScheduleId(Long courseScheduleId);
+
+    /**
+     * 获取用户的评价
+     *
+     * @param userId
+     * @param courseScheduleId
+     * @return
+     */
+    CourseScheduleComplaintsDto findByUserIdAndCourseId(@Param("userId") Long userId, @Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * 获取用户多课程的评价
+     *
+     * @return
+     */
+    List<CourseScheduleComplaints> findByCourseIdAndUserId(@Param("courseIds") List<Long> courseIds, @Param("userId") Integer userId);
 }

+ 14 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleReviewDao.java

@@ -41,22 +41,30 @@ public interface CourseScheduleReviewDao extends BaseDAO<Integer, CourseSchedule
     Integer countPracticeGroupReviews4Edu(Map<String, Object> params);
 
     /**
-     * @describe 根据学生和课程获取评论
-     * @author Joburgess
-     * @date 2020/3/13
      * @param courseScheduleId:
      * @param studentId:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleReview>
+     * @describe 根据学生和课程获取评论
+     * @author Joburgess
+     * @date 2020/3/13
      */
     CourseScheduleReview findByCourseScheduleAndStudent(@Param("courseScheduleId") Long courseScheduleId,
-                                                    @Param("studentId") Integer studentId);
+                                                        @Param("studentId") Integer studentId);
 
     /**
+     * @param courseScheduleIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleReview>
      * @describe 获取课程的评价
      * @author Joburgess
      * @date 2020/3/13
-     * @param courseScheduleIds:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleReview>
      */
     List<CourseScheduleReview> findByCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+    /**
+     * 获取学生课程评价
+     * @param courseScheduleIds
+     * @param studentId
+     * @return
+     */
+    List<CourseScheduleReview> findByCourseSchedulesAndStudentId(@Param("courseScheduleIds") List<Long> courseScheduleIds, @Param("studentId") Integer studentId);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -64,6 +64,9 @@ public class CourseScheduleDto extends CourseSchedule {
     @ApiModelProperty(value = "老师评论id")
     private Integer reviewId;
 
+    @ApiModelProperty(value = "学生评论id")
+    private Long StudentReviewId;
+
     public List<StudentNameAndPhoneDto> getStudents() {
         return students;
     }
@@ -217,4 +220,12 @@ public class CourseScheduleDto extends CourseSchedule {
     public void setReviewId(Integer reviewId) {
         this.reviewId = reviewId;
     }
+
+    public Long getStudentReviewId() {
+        return StudentReviewId;
+    }
+
+    public void setStudentReviewId(Long studentReviewId) {
+        StudentReviewId = studentReviewId;
+    }
 }

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

@@ -3,6 +3,8 @@ package com.ym.mec.biz.dal.dto;
 import com.ym.mec.biz.dal.entity.CourseScheduleReview;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 public class ReviewInfoDto {
 
     @ApiModelProperty(value = "课程信息",required = false)
@@ -11,6 +13,9 @@ public class ReviewInfoDto {
     @ApiModelProperty(value = "老师评价信息",required = false)
     private CourseScheduleReview courseScheduleReview;
 
+    @ApiModelProperty(value = "学生评价信息",required = false)
+    private List<CourseScheduleComplaintsDto> CourseScheduleComplaints;
+
     public TeacherClassHeadInfo getTeacherClassHeadInfo() {
         return teacherClassHeadInfo;
     }
@@ -26,4 +31,12 @@ public class ReviewInfoDto {
     public void setCourseScheduleReview(CourseScheduleReview courseScheduleReview) {
         this.courseScheduleReview = courseScheduleReview;
     }
+
+    public List<CourseScheduleComplaintsDto> getCourseScheduleComplaints() {
+        return CourseScheduleComplaints;
+    }
+
+    public void setCourseScheduleComplaints(List<CourseScheduleComplaintsDto> courseScheduleComplaints) {
+        CourseScheduleComplaints = courseScheduleComplaints;
+    }
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -87,6 +87,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     @Autowired
     private TeacherDao teacherDao;
 
+    @Autowired
+    private CourseScheduleComplaintsDao courseScheduleComplaintsDao;
+
 
     @Override
     public BaseDAO<Integer, CourseScheduleReview> getDAO() {
@@ -222,10 +225,16 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         CourseHomework homework = courseHomeworkDao.findByCourseSchedule(courseScheduleReview.getCourseScheduleId().longValue());
         courseScheduleReview.setHomeWork(homework.getContent());
         TeacherClassHeadInfo teacherClassGroupInfo = getCourseInfoHead(courseScheduleReview.getCourseScheduleId());
+        courseScheduleReview.setTeacherName(teacherClassGroupInfo.getBishopTeacher());
+        //学生评价
+        CourseScheduleComplaintsDto courseScheduleComplaint = courseScheduleComplaintsDao.findByUserIdAndCourseId(courseScheduleReview.getStudentId().longValue(), courseScheduleReview.getCourseScheduleId().longValue());
+        ArrayList<CourseScheduleComplaintsDto> courseScheduleComplaints = new ArrayList<>();
+        courseScheduleComplaints.add(courseScheduleComplaint);
 
         ReviewInfoDto reviewInfoDto = new ReviewInfoDto();
         reviewInfoDto.setCourseScheduleReview(courseScheduleReview);
         reviewInfoDto.setTeacherClassHeadInfo(teacherClassGroupInfo);
+        reviewInfoDto.setCourseScheduleComplaints(courseScheduleComplaints);
         return reviewInfoDto;
     }
 

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -753,17 +753,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 //		List<Integer> quitClassGroupIds=classGroupStudentMapperDao.findClassGroupIdByUserAndCourseDateAndStatus(user.getId(),classDate, ClassGroupStudentStatusEnum.QUIT.getCode());
         List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue(), null);
         List<Long> courseScheduleIds = studentCourseSchedulesWithDate.stream()
-                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) || cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) || cs.getType().equals(CourseScheduleType.PRACTICE))
+                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) || cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) || cs.getType().equals(CourseScheduleType.PRACTICE) || cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
         Map<Integer, String> subjectNameCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
+        Map<Integer, Integer> reviewIdMap = new HashMap<>();
+        Map<Long, Long> StudentReviewIdMap = new HashMap<>();
+
         if (!CollectionUtils.isEmpty(courseScheduleIds)) {
             List<Map<Integer, String>> subjectNameCourseMaps = subjectDao.findSubjectNameCourseMaps(courseScheduleIds);
             List<Map<Integer, String>> subjectIdCourseMaps = subjectDao.findClassGroupSubjectId(courseScheduleIds);
             subjectNameCourseMap = MapUtil.convertMybatisMap(subjectNameCourseMaps);
             subjectIdCourseMap = MapUtil.convertMybatisMap(subjectIdCourseMaps);
-        }
+			List<CourseScheduleReview> reviews = courseScheduleReviewDao.findByCourseSchedulesAndStudentId(courseScheduleIds, user.getId());
+			reviewIdMap = reviews.stream().collect(Collectors.toMap(CourseScheduleReview::getCourseScheduleId, CourseScheduleReview::getId));
+			List<CourseScheduleComplaints> studentReviews = courseScheduleComplaintsDao.findByCourseIdAndUserId(courseScheduleIds, user.getId());
+			StudentReviewIdMap = studentReviews.stream().collect(Collectors.toMap(CourseScheduleComplaints::getCourseScheduleId, CourseScheduleComplaints::getId));
+		}
 
         for (CourseScheduleDto courseScheduleDto : studentCourseSchedulesWithDate) {
             if (now.before(courseScheduleDto.getStartClassTime())) {
@@ -773,8 +780,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             } else {
                 courseScheduleDto.setStatus(CourseStatusEnum.UNDERWAY);
             }
-            courseScheduleDto.setSubjectName(subjectNameCourseMap.get(courseScheduleDto.getId()));
-            courseScheduleDto.setSubjectId(subjectIdCourseMap.get(courseScheduleDto.getId()));
+            courseScheduleDto.setSubjectName(subjectNameCourseMap.get(courseScheduleDto.getId().intValue()));
+            courseScheduleDto.setSubjectId(subjectIdCourseMap.get(courseScheduleDto.getId().intValue()));
+			courseScheduleDto.setReviewId(reviewIdMap.get(courseScheduleDto.getId().intValue()));
+			courseScheduleDto.setStudentReviewId(StudentReviewIdMap.get(courseScheduleDto.getId()));
         }
         result.put("list", studentCourseSchedulesWithDate);
         return result;

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml

@@ -118,4 +118,18 @@
 		LEFT JOIN sys_user su ON su.id_ = csc.user_id_
 		WHERE csc.course_schedule_id_ = #{courseScheduleId}
 	</select>
+
+	<select id="findByUserIdAndCourseId" resultMap="CourseScheduleComplaintsDtoMap">
+		SELECT su.username_,csc.reason_,csc.score_,su.avatar_ FROM course_schedule_complaints csc
+		LEFT JOIN sys_user su on csc.user_id_ = su.id_
+		WHERE user_id_=#{userId} AND course_schedule_id_=#{courseScheduleId} LIMIT 1
+	</select>
+
+	<select id="findByCourseIdAndUserId" resultMap="CourseScheduleComplaints">
+		SELECT * FROM course_schedule_complaints WHERE course_schedule_id_ IN
+		<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+			#{courseId}
+		</foreach>
+		AND user_id_ = #{userId}
+	</select>
 </mapper>

+ 25 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -26,7 +26,8 @@
     </resultMap>
 
     <select id="get" parameterType="java.lang.Integer" resultMap="CourseScheduleReview">
-        select * from course_schedule_review
+        select *
+        from course_schedule_review
         where id_ = #{id,jdbcType=INTEGER}
     </select>
 
@@ -126,7 +127,8 @@
 
     <sql id="practiceGroupReviewsQueryCondition">
         <where>
-            AND pg.id_ > 0 AND cs.group_type_='PRACTICE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
+            AND pg.id_ > 0 AND cs.group_type_='PRACTICE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS
+            NULL)
             <if test="organId != null">
                 AND FIND_IN_SET(pg.organ_id_,#{organId})
             </if>
@@ -146,7 +148,7 @@
                 AND pg.buy_months_ IS NULL
             </if>
             <if test="studentReview !=null">
-                AND pg.student_review_ =#{studentReview}
+                AND csc.score_ =#{studentReview}
             </if>
             <if test='hasReview !=null and hasReview=="1"'>
                 AND csr.id_ > 0
@@ -179,14 +181,17 @@
     </sql>
 
     <select id="getPracticeGroupReviewList" resultMap="CourseReviewDto">
-        SELECT cs.id_,cs.class_date_, pg.subject_id_,pg.organ_id_,pg.name_ coursre_name_,su.real_name_ teacher_name_,edsu.real_name_
-        edu_teacher_name_,pg.buy_months_,csr.id_ review_id_, csr.student_review_,csr.hand_homework_,csr.course_review_
+        SELECT cs.id_,cs.class_date_, pg.subject_id_,pg.organ_id_,pg.name_ coursre_name_,su.real_name_
+        teacher_name_,edsu.real_name_
+        edu_teacher_name_,pg.buy_months_,csr.id_ review_id_, csc.score_ student_review_,csr.hand_homework_,csr.course_review_
         FROM course_schedule cs
         LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         LEFT JOIN sys_user edsu ON pg.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_
         <include refid="practiceGroupReviewsQueryCondition"/>
+        ORDER BY cs.class_date_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -194,6 +199,7 @@
         SELECT count(*) FROM course_schedule cs
         LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.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_
         <include refid="practiceGroupReviewsQueryCondition"/>
     </select>
 
@@ -246,13 +252,26 @@
         LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
         <include refid="practiceGroupReviews4EduQueryCondition"/>
     </select>
+
     <select id="findByCourseScheduleAndStudent" resultMap="CourseScheduleReview">
-        SELECT * FROM course_schedule_review WHERE course_schedule_id_=#{courseScheduleId} AND student_id_=#{studentId}
+        SELECT *
+        FROM course_schedule_review
+        WHERE course_schedule_id_ = #{courseScheduleId}
+          AND student_id_ = #{studentId}
     </select>
+
     <select id="findByCourseSchedules" resultMap="CourseScheduleReview">
         SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
             #{courseScheduleId}
         </foreach>
     </select>
+
+    <select id="findByCourseSchedulesAndStudentId" resultMap="CourseScheduleReview">
+        SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
+            #{courseScheduleId}
+        </foreach>
+        AND student_id_ = #{studentId}
+    </select>
 </mapper>