Ver código fonte

老师端评价增加VIP课

周箭河 5 anos atrás
pai
commit
69df758d64

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

@@ -98,6 +98,7 @@ public interface CourseScheduleReviewDao extends BaseDAO<Integer, CourseSchedule
 
     /**
      * 根据班级id获取班级学生
+     *
      * @param classGroupId
      * @return
      */
@@ -105,13 +106,29 @@ public interface CourseScheduleReviewDao extends BaseDAO<Integer, CourseSchedule
 
     /**
      * 删除课程评价
+     *
      * @param courseScheduleId
      */
     void delByCourseScheduleId(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
      * 删除课程评价
+     *
      * @param courseScheduleIds
      */
     void delByCourseScheduleIds(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+    /**
+     * 线上课评价列表
+     * @param params
+     * @return
+     */
+    List<CourseReviewDto> getOnlineCourseReviewList(Map<String, Object> params);
+
+    /**
+     * 线上课评价统计
+     * @param params
+     * @return
+     */
+    Integer countOnlineCourseReviews(Map<String, Object> params);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseReviewQueryInfo.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.biz.dal.enums.PracticeGroupType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 
 /**
  * 课次评论
@@ -59,6 +60,9 @@ public class CourseReviewQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "作业是否回复",required = false)
     private Integer homeWorkReplied;
 
+    @ApiModelProperty(value = "课程类型",required = false)
+    private CourseScheduleType type;
+
     public PracticeGroupType getPracticeGroupType() {
         return practiceGroupType;
     }
@@ -196,4 +200,12 @@ public class CourseReviewQueryInfo extends QueryInfo {
     public void setHomeWorkReplied(Integer homeWorkReplied) {
         this.homeWorkReplied = homeWorkReplied;
     }
+
+    public CourseScheduleType getType() {
+        return type;
+    }
+
+    public void setType(CourseScheduleType type) {
+        this.type = type;
+    }
 }

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

@@ -89,4 +89,11 @@ public interface CourseReviewService extends BaseService<Integer, CourseSchedule
 	 */
 	ReviewInfoDto getStuAndTeaReviewInfo(Long courseId,Integer userId);
 
+	/**
+	 * 获取线上课评价列表
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<CourseReviewDto> findOnlineCourseReviews(CourseReviewQueryInfo queryInfo);
+
 }

+ 36 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.common.entity.ImPrivateMessage;
@@ -24,15 +25,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.CourseScheduleReview;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
-import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.CourseReview4EduQueryInfo;
@@ -104,7 +96,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     private SysConfigDao sysConfigDao;
 
     @Autowired
-    private RedisCache<String, Object> redisCache;
+    private VipGroupDao vipGroupDao;
 
     @Override
     public BaseDAO<Integer, CourseScheduleReview> getDAO() {
@@ -114,7 +106,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
 
     @Override
     public PageInfo<CourseReviewDto> findPracticeGroupReviews(CourseReviewQueryInfo queryInfo) {
-        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        PageInfo<CourseReviewDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
@@ -178,15 +170,24 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
 
         studentDao.lockUser(courseScheduleReview.getTeacherId());
 
-        PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
+        Integer studentId = null;
+        Integer educationalTeacherId = null;
 
-        CourseScheduleReview hasReview = courseScheduleReviewDao.findByCourseScheduleAndStudent(courseScheduleId.longValue(), practiceGroup.getStudentId());
+        if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE)){
+            PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
+            studentId = practiceGroup.getStudentId();
+            educationalTeacherId = practiceGroup.getEducationalTeacherId();
+        }else if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)){
+            VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
+            educationalTeacherId = vipGroup.getEducationalTeacherId();
+        }
+        CourseScheduleReview hasReview = courseScheduleReviewDao.findByCourseScheduleAndStudent(courseScheduleId.longValue(), studentId);
         if (hasReview != null) {
             throw new BizException("评论已提交,请勿重复提交");
         }
         courseScheduleReview.setClassGroupId(courseSchedule.getClassGroupId());
-        courseScheduleReview.setEducationalTeacherId(practiceGroup.getEducationalTeacherId());
-        courseScheduleReview.setStudentId(practiceGroup.getStudentId());
+        courseScheduleReview.setEducationalTeacherId(educationalTeacherId);
+        courseScheduleReview.setStudentId(studentId);
         courseScheduleReview.setCreateTime(date);
         courseScheduleReview.setUpdateTime(date);
         long num = courseScheduleReviewDao.insert(courseScheduleReview);
@@ -508,4 +509,24 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         }
         return reviewInfoDto;
     }
+
+    @Override
+    public PageInfo<CourseReviewDto> findOnlineCourseReviews(CourseReviewQueryInfo queryInfo) {
+        PageInfo<CourseReviewDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<CourseReviewDto> dataList = null;
+        int count = courseScheduleReviewDao.countOnlineCourseReviews(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = courseScheduleReviewDao.getOnlineCourseReviewList(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 91 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -330,7 +330,9 @@
         SELECT *
         FROM course_schedule_review
         WHERE course_schedule_id_ = #{courseScheduleId}
+        <if test="studentId != null">
           AND student_id_ = #{studentId}
+        </if>
     </select>
 
     <select id="findByCourseSchedules" resultMap="CourseScheduleReview">
@@ -382,4 +384,93 @@
                  LEFT JOIN sys_user su on cgsm.user_id_ = su.id_
         WHERE cgsm.class_group_id_ = #{classGroupId}
     </select>
+
+    <select id="getOnlineCourseReviewList" resultMap="CourseReviewDto">
+        SELECT cs.id_,cs.class_date_,cs.name_ course_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_
+        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_
+        <include refid="courseReviewsQueryCondition"/>
+        ORDER BY cs.class_date_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <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_
+        <include refid="courseReviewsQueryCondition"/>
+    </select>
+
+    <sql id="courseReviewsQueryCondition">
+        <where>
+            AND cs.type_ IN ('PRACTICE','VIP','HIGH_ONLINE','MUSIC_NETWORK') 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>
+            <if test="organId != null">
+                AND FIND_IN_SET(cs.organ_id_,#{organId})
+            </if>
+            <if test="type != null">
+                AND cs.type_=#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="teacherId != null">
+                AND cs.actual_teacher_id_=#{teacherId}
+            </if>
+            <if test="assignHomework != null and assignHomework == 1">
+                AND sch.id_>0
+            </if>
+            <if test="assignHomework != null and assignHomework ==0">
+                AND sch.id_ IS NULL
+            </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>
+            <if test='hasArrived !=null and hasArrived=="1"'>
+                AND sa.id_ > 0
+            </if>
+            <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>
 </mapper>

+ 12 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseReviewController.java

@@ -30,7 +30,7 @@ public class CourseReviewController extends BaseController {
 
     @ApiOperation(value = "网管课评论列表")
     @GetMapping("getPracticeGroup")
-    public Object getPracticeGroup(CourseReviewQueryInfo queryInfo) {
+    public HttpResponseResult getPracticeGroup(CourseReviewQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
@@ -91,4 +91,15 @@ public class CourseReviewController extends BaseController {
         return succeed(courseReviewService.batchAdd(sysUser.getId(),courseScheduleReviews));
     }
 
+    @ApiOperation(value = "线上课评论列表")
+    @GetMapping("getOnlineCourse")
+    public HttpResponseResult getOnlineCourse(CourseReviewQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(courseReviewService.findOnlineCourseReviews(queryInfo));
+    }
+
 }