Browse Source

Merge remote-tracking branch 'origin/master'

liweifan 3 years ago
parent
commit
115aed6fc4

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java

@@ -58,7 +58,7 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param records 课程id集合
 	 * @return
 	 */
-	List<CourseHomeworkVo> selectStudentInfo(@Param("records") List<CourseHomeworkVo> records);
+	List<CourseHomeworkVo> selectStudentInfo(@Param("records") List<Long> records);
 
 	/**
 	 * 查询课程组声部信息 和老师信息
@@ -74,7 +74,7 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param records 课程组id集合
 	 * @return
 	 */
-	List<CourseHomeworkVo> selectSubjectAndGroupInfoList(@Param("records") List<CourseHomeworkVo> records);
+	List<CourseHomeworkVo> selectSubjectAndGroupInfoList(@Param("records") List<Long> records);
 
 	/**
 	 * 查询课程老师信息和学生旷课信息
@@ -82,7 +82,7 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param records 课程id集合
 	 * @return
 	 */
-	List<CourseHomeworkVo> selectTeacherInfo(@Param("records") List<CourseHomeworkVo> records);
+	List<CourseHomeworkVo> selectTeacherInfo(@Param("records") List<Long> records);
 
 	/**
 	 * 管理平台查询
@@ -117,6 +117,6 @@ public interface CourseHomeworkDao extends BaseMapper<CourseHomework> {
 	 * @param studentId
 	 * @return
 	 */
-	List<CourseHomeworkVo> selectAbsenteeism(@Param("practiceRecord") List<CourseHomeworkVo> practiceRecord,
+	List<CourseHomeworkVo> selectAbsenteeism(@Param("practiceRecord") List<Long> practiceRecord,
 											 @Param("studentId") Long studentId);
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -60,5 +60,13 @@ public interface ImGroupService extends IService<ImGroup> {
     * @date 2022/4/27 10:56
     */
     List<ImGroupResultDto> queryTeacherFun(ImGroupSearchDto imGroupSearchDto);
+
+    /**
+     * 获取课程组的群聊
+     *
+     * @param courseGroupId 课程组id
+     * @return
+     */
+    ImGroup getByCourseGroupId(Long courseGroupId);
 }
 

+ 26 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseHomeworkServiceImpl.java

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
+import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
@@ -57,6 +58,9 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
     private SysUserFeignService sysUserFeignService;
 
     @Autowired
+    private ImGroupService imGroupService;
+
+    @Autowired
     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 
 	@Override
@@ -72,16 +76,21 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
         if (CollectionUtils.isEmpty(records)) {
             return courseHomeworkVoIPage;
         }
-        List<CourseHomeworkVo> practiceRecord = records.stream()
-                            .filter(courseHomeworkVo -> courseHomeworkVo.getType().getCode().equals(CourseScheduleEnum.PRACTICE.getCode()))
-                            .collect(Collectors.toList());
+        List<Long> practiceRecordIdList = records.stream()
+                .filter(courseHomeworkVo -> courseHomeworkVo.getType().getCode().equals(CourseScheduleEnum.PRACTICE.getCode()))
+                .map(CourseHomeworkVo::getCourseId)
+                .collect(Collectors.toList());
+
+        List<Long> recordIdList = records.stream()
+                                                 .map(CourseHomeworkVo::getCourseId)
+                                                 .collect(Collectors.toList());
 
         // 学生信息 陪练课展示
-        List<CourseHomeworkVo> studentInfoList = new ArrayList<>();
-        if (CollectionUtils.isEmpty(practiceRecord)) {
+        List<CourseHomeworkVo> studentInfoList;
+        if (CollectionUtils.isEmpty(practiceRecordIdList)) {
             studentInfoList = new ArrayList<>();
         } else{
-            baseMapper.selectStudentInfo(practiceRecord);
+            studentInfoList = baseMapper.selectStudentInfo(practiceRecordIdList);
         }
         if (CollectionUtils.isEmpty(studentInfoList)) {
             studentInfoList = new ArrayList<>();
@@ -90,7 +99,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
                 .collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId));
 
         // 老师信息
-        List<CourseHomeworkVo> teacherInfoList = baseMapper.selectTeacherInfo(records);
+        List<CourseHomeworkVo> teacherInfoList = baseMapper.selectTeacherInfo(practiceRecordIdList);
         if (CollectionUtils.isEmpty(teacherInfoList)) {
             teacherInfoList = new ArrayList<>();
         }
@@ -100,7 +109,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
         // 旷课状态  学生端展示
         Map<Long, List<CourseHomeworkVo>> absenteeismCollect = new HashMap<>();
         if (query.getStudentId() != null) {
-            List<CourseHomeworkVo> absenteeismList = baseMapper.selectAbsenteeism(records,query.getStudentId());
+            List<CourseHomeworkVo> absenteeismList = baseMapper.selectAbsenteeism(practiceRecordIdList,query.getStudentId());
             if (CollectionUtils.isEmpty(absenteeismList)) {
                 absenteeismList = new ArrayList<>();
             }
@@ -109,12 +118,12 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
 
 
         // 声部信息
-        List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectAndGroupInfoList(records);
+        List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectAndGroupInfoList(recordIdList);
 
         if (CollectionUtils.isEmpty(subjectList)) {
             subjectList = new ArrayList<>();
         }
-        Map<Long, List<CourseHomeworkVo>>subjectCollect = subjectList.stream()
+        Map<Long, List<CourseHomeworkVo>> subjectCollect = subjectList.stream()
                       .collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId));
 
         for (CourseHomeworkVo record : records) {
@@ -365,12 +374,19 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
         if (courseScheduleHomeworkVo == null) {
             return courseScheduleHomeworkVo;
         }
+        // 课程组的群聊
+        ImGroup imGroup = imGroupService.getByCourseGroupId(courseScheduleHomeworkVo.getCourseGroupId());
+        if (imGroup != null) {
+            courseScheduleHomeworkVo.setImGroupId(imGroup.getId());
+        }
 
         // 课程人员作业
         IPage<StudentHomeworkVo> studentHomeworkList = baseMapper
                 .selectStudentHomeworkByCourseId(PageUtil.getPage(query),query.getCourseId());
 
+
         courseScheduleHomeworkVo.setStudentHomeworkList(studentHomeworkList);
+        courseScheduleHomeworkVo.setStudentNum(studentHomeworkList.getTotal());
         return courseScheduleHomeworkVo;
 
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -167,5 +167,16 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroupSearchDto.setUserId(sysUserService.getUserId());
         return baseMapper.queryTeacherFun(imGroupSearchDto);
     }
+
+    @Override
+    public ImGroup getByCourseGroupId(Long courseGroupId) {
+
+        return this.lambdaQuery()
+                .eq(ImGroup::getCourseGroupId,courseGroupId)
+                .last("limit 1")
+                .one();
+
+
+    }
 }
 

+ 33 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseScheduleHomeworkVo.java

@@ -36,6 +36,9 @@ public class CourseScheduleHomeworkVo {
     private Integer classNum;
 
 
+    @ApiModelProperty("课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
+    private CourseScheduleEnum courseStatus;
+
     @ApiModelProperty("上课日期")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
@@ -72,10 +75,40 @@ public class CourseScheduleHomeworkVo {
     @ApiModelProperty("课程背景图")
     private String backgroundPic;
 
+    @ApiModelProperty("学员人数")
+    private Long studentNum;
+
+    @ApiModelProperty("群聊id")
+    private String imGroupId;
+
     @ApiModelProperty("学生课后作业列表")
     private IPage<StudentHomeworkVo> studentHomeworkList;
 
 
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
+
+    public Long getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Long studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public CourseScheduleEnum getCourseStatus() {
+        return courseStatus;
+    }
+
+    public void setCourseStatus(CourseScheduleEnum courseStatus) {
+        this.courseStatus = courseStatus;
+    }
+
     public Long getCourseId() {
         return courseId;
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentHomeworkVo.java

@@ -25,6 +25,17 @@ public class StudentHomeworkVo {
     @ApiModelProperty("学生提交作业 0:未提交,1:已提交")
     private YesOrNoEnum submitHomework;
 
+    @ApiModelProperty("声部 多个逗号隔开")
+    private String subjectName;
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
     public Long getStudentId() {
         return studentId;
     }

+ 9 - 5
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -236,7 +236,7 @@
             <if test="records != null and records.size() != 0">
                 and cs.id_ in
                 <foreach collection="records" separator="," close=")" open="(" item="item" >
-                    #{item.courseId}
+                    #{item}
                 </foreach>
             </if>
         </where>
@@ -256,7 +256,7 @@
             <if test="records != null and records.size() != 0">
                 and cs.id_ in
                 <foreach collection="records" separator="," close=")" open="(" item="item" >
-                    #{item.courseId}
+                    #{item}
                 </foreach>
             </if>
         </where>
@@ -274,7 +274,7 @@
             <if test="records != null and records.size() != 0">
                 and cs.id_ in
                 <foreach collection="records" separator="," close=")" open="(" item="item" >
-                    #{item.courseId}
+                    #{item}
                 </foreach>
             </if>
         </where>
@@ -296,6 +296,7 @@
             ch.attachments_ as attachments,
         if(ch.id_ is null,0,1) as decorateHomework,
         ch.create_time_ as decorateTime,
+        cs.status_ as courseStatus,
         cg.background_pic_ as backgroundPic
         from course_schedule  cs
         left join course_group cg on cs.course_group_id_ = cg.id_
@@ -310,10 +311,13 @@
         s.id_ as studentId,
         s.username_ as studentName,
         s.phone_ as studentAvatar,
-        if(sch.id_ is not null,1,0) as submitHomework
+        if(sch.id_ is not null,1,0) as submitHomework,
+        (select group_concat(s2.name_) from subject s2
+        where find_in_set(s2.id_,st.subject_id_) and s2.del_flag_ = 0 ) as subjectName
 
         from course_schedule_student_payment cssp
         left join sys_user s on cssp.user_id_ = s.id_
+        left  join student st on st.user_id_ = s.id_
         left join student_course_homework sch on cssp.user_id_ = sch.student_id_ and sch.course_schedule_id_ = cssp.course_id_
         <where>
             <if test="courseId != null">
@@ -333,7 +337,7 @@
             <if test="practiceRecord != null and practiceRecord.size() != 0">
                 and cs.id_ in
                 <foreach collection="practiceRecord" separator="," close=")" open="(" item="item" >
-                    #{item.courseId}
+                    #{item}
                 </foreach>
             </if>
         </where>