Browse Source

feat:衔接老师

Joburgess 4 năm trước cách đây
mục cha
commit
642c078962

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.Subject;
 
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.auth.api.entity.SysUser;
@@ -525,4 +526,14 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     int quitAllStudent(@Param("musicGroupId") String musicGroupId, @Param("remark") String remark);
+
+    /**
+     * @describe 获取指定乐团中的注册学员
+     * @author Joburgess
+     * @date 2021/5/24 0024
+     * @param groupIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentRegistration>
+     */
+    List<StudentRegistration> findByMusicGroupIds(@Param("groupIds") List<String> groupIds,
+                                                  @Param("musicGroupStatus") StudentMusicGroupStatusEnum musicGroupStatus);
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduHomeworkCardDto.java

@@ -10,6 +10,8 @@ public class EduHomeworkCardDto {
 
     private Long courseId;
 
+    private Long homeworkId;
+
     private String courseName;
 
     private Date courseStartTime;
@@ -24,6 +26,24 @@ public class EduHomeworkCardDto {
 
     private Integer repliedStudentNum;
 
+    private Date createTime;
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getHomeworkId() {
+        return homeworkId;
+    }
+
+    public void setHomeworkId(Long homeworkId) {
+        this.homeworkId = homeworkId;
+    }
+
     public Long getCourseId() {
         return courseId;
     }

+ 79 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduHomeworkStatDto.java

@@ -0,0 +1,79 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2021/5/24 0024
+ */
+public class EduHomeworkStatDto {
+
+    @ApiModelProperty(value = "课程组编号")
+    private String groupId;
+
+    @ApiModelProperty(value = "课程组名称")
+    private String groupName;
+
+    @ApiModelProperty(value = "乐团人数")
+    private int groupStudentNum;
+
+    @ApiModelProperty(value = "作业人次")
+    private int exceptStudentNum;
+
+    @ApiModelProperty(value = "提交人次")
+    private int submitStudentNum;
+
+    @ApiModelProperty(value = "提交率")
+    private BigDecimal submitRate = BigDecimal.ZERO;
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public int getExceptStudentNum() {
+        return exceptStudentNum;
+    }
+
+    public void setExceptStudentNum(int exceptStudentNum) {
+        this.exceptStudentNum = exceptStudentNum;
+    }
+
+    public int getSubmitStudentNum() {
+        return submitStudentNum;
+    }
+
+    public void setSubmitStudentNum(int submitStudentNum) {
+        this.submitStudentNum = submitStudentNum;
+    }
+
+    public int getGroupStudentNum() {
+        return groupStudentNum;
+    }
+
+    public void setGroupStudentNum(int groupStudentNum) {
+        this.groupStudentNum = groupStudentNum;
+    }
+
+    public BigDecimal getSubmitRate() {
+        return submitRate;
+    }
+
+    public void setSubmitRate(BigDecimal submitRate) {
+        this.submitRate = submitRate;
+    }
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentCourseHomeWorkQueryInfo.java

@@ -14,6 +14,9 @@ public class StudentCourseHomeWorkQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "教师编号")
     private Integer teacherId;
 
+    @ApiModelProperty(value = "衔接老师编号")
+    private Integer transactionTeacherId;
+
     @ApiModelProperty(value = "开始时间")
     private Date startTime;
 
@@ -26,6 +29,8 @@ public class StudentCourseHomeWorkQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否回复")
     private YesOrNoEnum isReplied;
 
+    private Boolean extra;
+
     public Long getUserId() {
         return userId;
     }
@@ -73,4 +78,20 @@ public class StudentCourseHomeWorkQueryInfo extends QueryInfo {
     public void setIsReplied(YesOrNoEnum isReplied) {
         this.isReplied = isReplied;
     }
+
+    public Boolean getExtra() {
+        return extra;
+    }
+
+    public void setExtra(Boolean extra) {
+        this.extra = extra;
+    }
+
+    public Integer getTransactionTeacherId() {
+        return transactionTeacherId;
+    }
+
+    public void setTransactionTeacherId(Integer transactionTeacherId) {
+        this.transactionTeacherId = transactionTeacherId;
+    }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java

@@ -1,15 +1,18 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
+import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ExtracurricularExercisesReplyService extends BaseService<Long, ExtracurricularExercisesReply> {
 
@@ -67,4 +70,6 @@ public interface ExtracurricularExercisesReplyService extends BaseService<Long,
      */
     void exercisesSituationStatistics();
     void exercisesSituationStatistics2(String monday);
+
+    PageInfo<EduHomeworkCardDto> getEduHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo);
 }

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
-import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
-import com.ym.mec.biz.dal.dto.StudentCourseHomeworkDto;
-import com.ym.mec.biz.dal.dto.StudentVisitCourseHomeWorkDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
@@ -106,4 +103,6 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
      * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.EduHomeworkCardDto>
      */
     PageInfo<EduHomeworkCardDto> getEduCourseHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo);
+
+    PageInfo<EduHomeworkStatDto> queryEduHomeworkStatList(StudentCourseHomeWorkQueryInfo queryInfo);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
+import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.biz.service.SysMessageService;
@@ -364,4 +365,19 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
             currentPage=currentPage.add(BigDecimal.ONE);
         }
 	}
+
+	@Override
+	public PageInfo<EduHomeworkCardDto> getEduHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo) {
+		PageInfo<EduHomeworkCardDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		int count = extracurricularExercisesReplyDao.countEduHomeworkList(params);
+		pageInfo.setTotal(count);
+		params.put("offset", pageInfo.getOffset());
+		List<EduHomeworkCardDto> dataList = extracurricularExercisesReplyDao.getEduHomeworkList(params);
+
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 26 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -6,9 +6,7 @@ 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.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
 import com.ym.mec.biz.service.CourseHomeworkService;
@@ -70,6 +68,8 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
     @Autowired
     private MusicGroupDao musicGroupDao;
     @Autowired
+    private StudentRegistrationDao studentRegistrationDao;
+    @Autowired
     private VipGroupDao vipGroupDao;
     @Autowired
     private PracticeGroupDao practiceGroupDao;
@@ -493,4 +493,27 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<EduHomeworkStatDto> queryEduHomeworkStatList(StudentCourseHomeWorkQueryInfo queryInfo) {
+        PageInfo<EduHomeworkStatDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+        params.put("musicGroupStatus", MusicGroupStatusEnum.PROGRESS.getCode());
+
+        int count = musicGroupDao.queryCount(params);
+        pageInfo.setTotal(count);
+        params.put("offset", pageInfo.getOffset());
+        List<MusicGroup> musicGroups = musicGroupDao.queryPage(params);
+
+        List<EduHomeworkStatDto> dataList = new ArrayList<>();
+        if(!CollectionUtils.isEmpty(musicGroups)){
+            List<String> groupIds = musicGroups.stream().map(MusicGroup::getId).collect(Collectors.toList());
+            List<StudentRegistration> studentRegistrations = studentRegistrationDao.findByMusicGroupIds(groupIds, StudentMusicGroupStatusEnum.NORMAL);
+
+        }
+
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 18 - 7
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -525,19 +525,30 @@
 
     <select id="getEduHomeworkList" resultType="com.ym.mec.biz.dal.dto.EduHomeworkCardDto">
 		SELECT
-			ee.id_ homework_id_,
-			su.real_name_,
-			ee.create_time_,
-			COUNT( eer.user_id_ ) expect_student_num_,
-			SUM( eer.status_ ) submit_student_num_,
-			SUM( eer.is_replied_ ) replied_student_num_
+			ee.id_ homeworkId,
+			su.real_name_ teacherName,
+			ee.create_time_ createTime,
+			COUNT( eer.user_id_ ) exceptStudentNum,
+			SUM( eer.status_ ) submitStudentNum,
+			SUM( eer.is_replied_ ) repliedStudentNum
 		FROM
 			extracurricular_exercises ee
 			LEFT JOIN sys_user su ON ee.teacher_id_ = su.id_
 			LEFT JOIN extracurricular_exercises_reply eer ON ee.id_ = eer.extracurricular_exercises_id_
 		<include refid="getEduHomeworkListCondition" />
 		GROUP BY ee.id_
-		ORDER BY ee.create_time_ DESC;
+		ORDER BY ee.create_time_ DESC
+		<include refid="global.limit"></include>
+	</select>
+
+	<select id="countEduHomeworkList" resultType="int">
+		SELECT
+			COUNT(DISTINCT ee.id_)
+		FROM
+		extracurricular_exercises ee
+		LEFT JOIN sys_user su ON ee.teacher_id_ = su.id_
+		LEFT JOIN extracurricular_exercises_reply eer ON ee.id_ = eer.extracurricular_exercises_id_
+		<include refid="getEduHomeworkListCondition" />
 	</select>
 
 </mapper>

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -204,7 +204,7 @@
     <select id="queryPage" resultMap="MusicGroup" parameterType="map">
         SELECT * FROM music_group
         <include refid="musicGroupQueryPageSql"/>
-        ORDER BY create_time_ DESC
+        ORDER BY create_time_ DESC,id_
         <include refid="global.limit"/>
     </select>
 
@@ -226,6 +226,9 @@
             <if test="musicGroupId != null">
                 AND FIND_IN_SET(id_,#{musicGroupId})
             </if>
+            <if test="transactionTeacherId!=null">
+                AND transaction_teacher_id_ = #{transactionTeacherId}
+            </if>
             <if test="musicGroupIds!=null and musicGroupIds.size()>0">
                 AND id_ IN
                 <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -499,6 +499,7 @@
 
     <select id="getEduCourseHomeworkList" resultType="com.ym.mec.biz.dal.dto.EduHomeworkCardDto">
         SELECT
+            ch.id_ homeworkId,
             cs.id_ courseId,
             cs.name_ courseName,
             CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) courseStartTime,

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -986,6 +986,16 @@
         </foreach>
         LIMIT 1
     </select>
+    <select id="findByMusicGroupIds" resultMap="StudentRegistration">
+        SELECT * FROM student_registration
+        WHERE music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        <if test="musicGroupStatus!=null">
+            AND music_group_status_=#{musicGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+    </select>
 
     <update id="quitAllStudent">
         UPDATE student_registration SET music_group_status_ = 'QUIT',remark_=#{remark} WHERE music_group_id_ = #{musicGroupId}

+ 5 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/CourseHomeworkController.java

@@ -52,7 +52,11 @@ public class CourseHomeworkController extends BaseController {
             return failed("用户信息获取失败");
         }
         queryInfo.setTeacherId(sysUser.getId());
-        return succeed(studentCourseHomeworkService.getEduCourseHomeworkList(queryInfo));
+        if(queryInfo.getExtra()){
+            return succeed(studentCourseHomeworkService.getEduCourseHomeworkList(queryInfo));
+        }else{
+            return succeed(extracurricularExercisesReplyService.getEduHomeworkList(queryInfo));
+        }
     }
 
     @ApiOperation(value = "根据课程计划获取需要交作业的学生-公用")