فهرست منبع

Merge remote-tracking branch 'origin/saas' into saas

zouxuan 2 سال پیش
والد
کامیت
8d53f6fb3a
27فایلهای تغییر یافته به همراه435 افزوده شده و 104 حذف شده
  1. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  2. 14 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java
  3. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupExtracurricularSummaryDto.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentServeCourseHomeworkDto.java
  5. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java
  6. 13 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentExtracurricularExercisesSituation.java
  7. 46 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentExerciseMusicGroupQueryInfo.java
  8. 18 6
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  14. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  15. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java
  16. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  17. 87 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  18. 44 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  19. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  20. 4 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  21. 13 8
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  22. 2 1
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml
  23. 3 1
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  24. 53 4
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  25. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java
  26. 3 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java
  27. 68 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudentExtracurricularExercisesSituationController.java

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -485,7 +485,7 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      */
     List<ClassGroup> getStudentClassGroupWithTeacher(@Param("studentIds") Set<Integer> studentIds,
-                                                     @Param("teacherId") Integer teacherId);
+                                                     @Param("teacherId") Integer teacherId, @Param("musicGroupId") String musicGroupId);
     
     List<ClassGroupStudentMapperDto> queryByClassGroupType(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") ClassGroupTypeEnum classGroupType,@Param("teacherRole") TeachTypeEnum teacherRole, @Param("studentIdList") List<Integer> studentIdList);
 }

+ 14 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -1,16 +1,19 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
+import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
+import com.ym.mec.biz.dal.dto.StudentServeExportDto;
+import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
+import com.ym.mec.biz.dal.dto.TeacherServeDto;
+import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
+import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
+import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Long, StudentExtracurricularExercisesSituation> {
 
@@ -198,5 +201,7 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
                                                                    @Param("userId") Integer userId);
 
 
-
+    List<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(Map<String, Object> params);
+    
+    int queryStudentExerciseMusicGroupListCount(Map<String, Object> params);
 }

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupExtracurricularSummaryDto.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.dto;
+
+public class MusicGroupExtracurricularSummaryDto {
+
+	private String musicGroupName;
+	
+	private String musicGroupId;
+	
+	private int studentNum;
+
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
+	public int getStudentNum() {
+		return studentNum;
+	}
+
+	public void setStudentNum(int studentNum) {
+		this.studentNum = studentNum;
+	}
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentServeCourseHomeworkDto.java

@@ -13,6 +13,8 @@ public class StudentServeCourseHomeworkDto extends StudentCourseHomework {
     private Date courseStartTime;
 
     private Date homeworkCreateTime;
+    
+    private String musicGroupId;
 
     public Date getHomeworkCreateTime() {
         return homeworkCreateTime;
@@ -29,4 +31,12 @@ public class StudentServeCourseHomeworkDto extends StudentCourseHomework {
     public void setCourseStartTime(Date courseStartTime) {
         this.courseStartTime = courseStartTime;
     }
+
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java

@@ -17,6 +17,8 @@ public class ExtracurricularExercises extends BaseEntity {
 	/**  */
 	private Long id;
 	
+	private String musicGroupId;
+	
 	/** 老师编号 */
 	@ApiModelProperty(value="等级")
 	private Integer teacherId;
@@ -249,6 +251,14 @@ public class ExtracurricularExercises extends BaseEntity {
 		this.organName = organName;
 	}
 
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 13 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentExtracurricularExercisesSituation.java

@@ -15,6 +15,8 @@ public class StudentExtracurricularExercisesSituation extends BaseEntity {
 	/**  */
 	private Long id;
 	
+	private String musicGroupId;
+	
 	/**  */
 	private Integer studentId;
 	
@@ -64,7 +66,8 @@ public class StudentExtracurricularExercisesSituation extends BaseEntity {
 	public StudentExtracurricularExercisesSituation() {
 	}
 
-	public StudentExtracurricularExercisesSituation(Integer studentId, Integer teacherId, Integer weekOfYear, Date monday, Date sunday,  String serveType, String courseIds) {
+	public StudentExtracurricularExercisesSituation(String musicGroupId, Integer studentId, Integer teacherId, Integer weekOfYear, Date monday, Date sunday,  String serveType, String courseIds) {
+		this.musicGroupId = musicGroupId;
 		this.studentId = studentId;
 		this.weekOfYear = weekOfYear;
 		this.monday = monday;
@@ -111,6 +114,14 @@ public class StudentExtracurricularExercisesSituation extends BaseEntity {
 		return this.id;
 	}
 			
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
 	public void setStudentId(Integer studentId){
 		this.studentId = studentId;
 	}
@@ -248,7 +259,7 @@ public class StudentExtracurricularExercisesSituation extends BaseEntity {
 			StudentExtracurricularExercisesSituation dto = (StudentExtracurricularExercisesSituation) obj;
 
 			if (this.monday.equals(dto.getMonday()) && this.studentId.intValue() == dto.getStudentId() && this.teacherId.intValue() == dto.getTeacherId()
-					&& this.serveType.equals(dto.getServeType())) {
+					&& this.serveType.equals(dto.getServeType()) && this.musicGroupId.equals(dto.getMusicGroupId())) {
 				return true;
 			}
 		}

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentExerciseMusicGroupQueryInfo.java

@@ -0,0 +1,46 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class StudentExerciseMusicGroupQueryInfo extends QueryInfo {
+
+	private Integer teacherId;
+	
+	private String musicGroupName;
+	
+	private String mondayDate;
+	
+	private String sundayDate;
+
+	public Integer getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(Integer teacherId) {
+		this.teacherId = teacherId;
+	}
+
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
+	public String getMondayDate() {
+		return mondayDate;
+	}
+
+	public void setMondayDate(String mondayDate) {
+		this.mondayDate = mondayDate;
+	}
+
+	public String getSundayDate() {
+		return sundayDate;
+	}
+
+	public void setSundayDate(String sundayDate) {
+		this.sundayDate = sundayDate;
+	}
+}

+ 18 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -1,16 +1,28 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.*;
+import java.util.List;
+import java.util.Map;
+
+import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
+import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
+import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
+import com.ym.mec.biz.dal.dto.TeacherServeDto;
+import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
+import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
+import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
+import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
+import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
 public interface StudentExtracurricularExercisesSituationService extends BaseService<Long, StudentExtracurricularExercisesSituation> {
+	
+	PageInfo<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo);
 
     PageInfo<StudentExercisesSituationDto> findStudentExtracurricularExercisesSituations(StudentExercisesSituationQueryInfo queryInfo);
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java

@@ -53,7 +53,7 @@ public interface StudentServeService {
      */
     Set<Long> getTeacherHomeworkCourseIdsWithMonday(Integer teacherId, Date date);
 
-    void updateExercisesSituation(Date date, List<Integer> studentIds, Integer teacherId);
+    void updateExercisesSituation(String musicGroupId, Date date, List<Integer> studentIds, Integer teacherId);
 
     /**
      * @describe 获取与课程相关的应被服务的学员

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

@@ -604,7 +604,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         List<Integer> studentIds = studentCourseHomeworks.stream().map(StudentCourseHomework::getUserId).collect(Collectors.toList());
 
         Teacher teacher = teacherDao.get(courseSchedule.getActualTeacherId());
-        studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), studentIds, teacher.getId());
+        studentServeService.updateExercisesSituation(courseSchedule.getMusicGroupId(), courseSchedule.getClassDate(), studentIds, teacher.getId());
 
 
         String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");

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

@@ -3400,7 +3400,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
 				if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
 					List<Integer> studentIds = courseScheduleStudentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toList());
-					studentServeService.updateExercisesSituation(oldCourseSchedule.getClassDate(), studentIds, oldCourseSchedule.getActualTeacherId());
+					studentServeService.updateExercisesSituation(oldCourseSchedule.getMusicGroupId(), oldCourseSchedule.getClassDate(), studentIds, oldCourseSchedule.getActualTeacherId());
 				}
 			}
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java

@@ -87,7 +87,7 @@ public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<
 				if(change){
 					extracurricularExercisesReplyDao.update(extracurricularExercisesReply);
 
-					studentServeService.updateExercisesSituation(new Date(), new ArrayList<>(Arrays.asList(extracurricularExercisesReply.getUserId())), extracurricularExercisesMessage.getUserId());
+					studentServeService.updateExercisesSituation(extracurricularExercises.getMusicGroupId(), new Date(), new ArrayList<>(Arrays.asList(extracurricularExercisesReply.getUserId())), extracurricularExercisesMessage.getUserId());
 				}
 			}
 
@@ -125,7 +125,7 @@ public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_EXTRA_REPLY,
 					userMap, null, 0, 9+notifyUrl, "TEACHER", extracurricularExercises.getTitle(), user.getUsername());
 		}
-		studentServeService.updateExercisesSituation(extracurricularExercises.getCreateTime(), new ArrayList<>(Arrays.asList(extracurricularExercisesReply.getUserId())), extracurricularExercises.getTeacherId());
+		studentServeService.updateExercisesSituation(extracurricularExercises.getMusicGroupId(), extracurricularExercises.getCreateTime(), new ArrayList<>(Arrays.asList(extracurricularExercisesReply.getUserId())), extracurricularExercises.getTeacherId());
 	}
 
 	@Override

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

@@ -189,7 +189,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 		extracurricularExercises.setCompletedNum(submitStudentNum);
 		extracurricularExercisesDao.update(extracurricularExercises);
 
-		studentServeService.updateExercisesSituation(extracurricularExercises.getCreateTime(), Arrays.asList(existExtra.getUserId()), extracurricularExercises.getTeacherId());
+		studentServeService.updateExercisesSituation(extracurricularExercises.getMusicGroupId(), extracurricularExercises.getCreateTime(), Arrays.asList(existExtra.getUserId()), extracurricularExercises.getTeacherId());
 
 		if(push){
 			Map<Integer, String> userMap = new HashMap<>();

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -144,7 +144,7 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 					userMap, null, 0, 3+notifyUrl, "STUDENT",
 					teacher.getRealName(),exercises.getTitle(), dateStr);
 		}
-		studentServeService.updateExercisesSituation(new Date(), studentIds, exercises.getTeacherId());
+		studentServeService.updateExercisesSituation(exercises.getMusicGroupId(), new Date(), studentIds, exercises.getTeacherId());
 	}
 
 	@Override

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java

@@ -113,7 +113,7 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_HOMEWORK_REPLY,
 				userMap, null, 0, 3+notifyUrl, "STUDENT", user.getRealName(), courseSchedule.getName());
 
-		studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), Arrays.asList(studentCourseHomework.getUserId()), courseSchedule.getActualTeacherId());
+		studentServeService.updateExercisesSituation(courseSchedule.getMusicGroupId(), courseSchedule.getClassDate(), Arrays.asList(studentCourseHomework.getUserId()), courseSchedule.getActualTeacherId());
 		super.insert(bean);
 	}
 

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

@@ -163,7 +163,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
         courseHomework.setGroupType(courseSchedule.getGroupType());
         courseHomework.setCompletedNum(studentCourseHomeworkDao.countCompletedStudentNum(bean.getCourseHomeworkId()));
         courseHomeworkService.update(courseHomework);
-        studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), new ArrayList<>(Arrays.asList(bean.getUserId())), courseSchedule.getTeacherId());
+        studentServeService.updateExercisesSituation(courseSchedule.getMusicGroupId(), courseSchedule.getClassDate(), new ArrayList<>(Arrays.asList(bean.getUserId())), courseSchedule.getTeacherId());
 
         Integer userId = bean.getUserId();
         if (courseSchedule.getType().equals(CourseScheduleType.VIP)) {
@@ -328,7 +328,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
                     break;
             }
             if (createDateTime.isBefore(monDayDate) && isOk) {
-                studentServeService.updateExercisesSituation(new Date(), new ArrayList<>(Arrays.asList(byStudentAndCourseHomewok.getUserId())), teacherId);
+                studentServeService.updateExercisesSituation(byTeacherAndCourseHomewok.getMusicGroupId(), new Date(), new ArrayList<>(Arrays.asList(byStudentAndCourseHomewok.getUserId())), teacherId);
             }
         }
         return true;

+ 87 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -1,15 +1,69 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-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.CourseStatusEnum;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStatisticsDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.TeacherRemindDao;
+import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
+import com.ym.mec.biz.dal.dto.StudentServiceDetailDto;
+import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
+import com.ym.mec.biz.dal.dto.TeacherServeDto;
+import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
+import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
+import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
+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.Student;
+import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.TeacherRemind;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.TeacherRemindTypeEnum;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
+import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
+import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.constant.CommonConstants;
@@ -21,21 +75,6 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.*;
-import java.util.stream.Collectors;
-
 @Service
 public class StudentExtracurricularExercisesSituationServiceImpl extends BaseServiceImpl<Long, StudentExtracurricularExercisesSituation> implements StudentExtracurricularExercisesSituationService {
 	
@@ -78,6 +117,26 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 	}
 
 	@Override
+	public PageInfo<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo) {
+		PageInfo<MusicGroupExtracurricularSummaryDto> pageInfo = new PageInfo<MusicGroupExtracurricularSummaryDto>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		
+		List<MusicGroupExtracurricularSummaryDto> dataList = null;
+		int count = studentExtracurricularExercisesSituationDao.queryStudentExerciseMusicGroupListCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = studentExtracurricularExercisesSituationDao.queryStudentExerciseMusicGroupList(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<MusicGroupExtracurricularSummaryDto>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
 	public PageInfo<StudentExercisesSituationDto> findStudentExtracurricularExercisesSituations(StudentExercisesSituationQueryInfo queryInfo) {
 		PageInfo<StudentExercisesSituationDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
@@ -96,14 +155,14 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 			List<Map<Integer, Long>> studentPracticeCoursesMaps = courseScheduleDao.countStudentPayPracticeCoursesWithDate(studentIds, queryInfo.getMonday(), queryInfo.getSunday());
 			Map<Integer, Long> studentPracticeCourseMap = MapUtil.convertIntegerMap(studentPracticeCoursesMaps);
 
-			List<StudentEduTeacherDto> studentEducationalTeachers = classGroupStudentMapperDao.getStudentEducationalTeachers(studentIds);
+			/*List<StudentEduTeacherDto> studentEducationalTeachers = classGroupStudentMapperDao.getStudentEducationalTeachers(studentIds);
 			Map<Integer, List<StudentEduTeacherDto>> studentEduTeachersMap = studentEducationalTeachers.stream().collect(Collectors.groupingBy(StudentEduTeacherDto::getStudentId));
-
-			List<UserGroupDto> allUserGroups = studentRegistrationDao.getUserGroups(studentIds);
+*/
+			/*List<UserGroupDto> allUserGroups = studentRegistrationDao.getUserGroups(studentIds);
 			Map<Integer, List<UserGroupDto>> userGroupsMap = new HashMap<>();
 			if(!CollectionUtils.isEmpty(allUserGroups)){
 				userGroupsMap = allUserGroups.stream().collect(Collectors.groupingBy(UserGroupDto::getUserId));
-			}
+			}*/
 
 			for (StudentExercisesSituationDto exercisesSituationDto : dataList) {
 				Long vipCourses=studentVipCourseMap.get(exercisesSituationDto.getStudentId());
@@ -111,11 +170,11 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 				Long practiceCourses=studentPracticeCourseMap.get(exercisesSituationDto.getStudentId());
 				exercisesSituationDto.setExistPracticeCourse(Objects.isNull(practiceCourses)?0:practiceCourses.intValue());
 //				exercisesSituationDto.setExpectExercisesNum((int) until+1);
-				List<UserGroupDto> userGroupDtos = userGroupsMap.get(exercisesSituationDto.getStudentId());
+				/*List<UserGroupDto> userGroupDtos = userGroupsMap.get(exercisesSituationDto.getStudentId());
 				if(!CollectionUtils.isEmpty(userGroupDtos)){
 					exercisesSituationDto.setGroupNames(userGroupDtos.stream().filter(ug->StringUtils.isNotBlank(ug.getGroupName())).map(UserGroupDto::getGroupName).sorted().collect(Collectors.joining(",")));
-				}
-				List<StudentEduTeacherDto> studentEduTeachers = studentEduTeachersMap.get(exercisesSituationDto.getStudentId());
+				}*/
+				/*List<StudentEduTeacherDto> studentEduTeachers = studentEduTeachersMap.get(exercisesSituationDto.getStudentId());
 				if(!CollectionUtils.isEmpty(studentEduTeachers)){
 					List<StudentEduTeacherDto> t1 = studentEduTeachers.stream().filter(set -> set.getGroupType().equals(GroupType.VIP.getCode())||set.getGroupType().equals(GroupType.PRACTICE.getCode())).collect(Collectors.toList());
 					if(!CollectionUtils.isEmpty(t1)){
@@ -140,7 +199,7 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 							}
 						}
 					}
-				}
+				}*/
 			}
 		}
 		if (count == 0) {

+ 44 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -447,15 +447,15 @@ public class StudentServeServiceImpl implements StudentServeService {
         List<StudentExtracurricularExercisesSituation> results=new ArrayList<StudentExtracurricularExercisesSituation>();
         
         Map<Integer,Map<Integer,Set<Long>>> studentTeacherCourseMap = new HashMap<Integer, Map<Integer,Set<Long>>>();
-        Map<Integer,Map<Integer,Set<Long>>> studentTeacherNotOverCourseMap = new HashMap<Integer, Map<Integer,Set<Long>>>();
-        Map<Integer,Map<Integer,Integer>> studentTeacherCourseNumMap = new HashMap<Integer, Map<Integer,Integer>>();
+        //Map<Integer,Map<Integer,Set<Long>>> studentTeacherNotOverCourseMap = new HashMap<Integer, Map<Integer,Set<Long>>>();
+        //Map<Integer,Map<Integer,Integer>> studentTeacherCourseNumMap = new HashMap<Integer, Map<Integer,Integer>>();
 		
-		Map<Integer, Set<Long>> teacherCourseMap = null;
-		Map<Integer, Set<Long>> teacherNotOverCourseMap = null;
+		//Map<Integer, Set<Long>> teacherCourseMap = null;
+		//Map<Integer, Set<Long>> teacherNotOverCourseMap = null;
 		Integer teacherId = null;
-		Set<Long> courseIdList = null;
+		//Set<Long> courseIdList = null;
 		ClassGroupTypeEnum teacherType;
-		Map<Integer,Integer> teacherCourseNumMap = null;
+		//Map<Integer,Integer> teacherCourseNumMap = null;
 		List<Integer> musicGroupStudentIdList = null;
         
         //理论上一个学生一个乐团只布置一次作业
@@ -492,30 +492,30 @@ public class StudentServeServiceImpl implements StudentServeService {
 						continue;
 					}
 					
-					teacherCourseNumMap = studentTeacherCourseNumMap.get(studentId);
+					/*teacherCourseNumMap = studentTeacherCourseNumMap.get(studentId);
 					if(teacherCourseNumMap == null){
 						teacherCourseNumMap = new HashMap<Integer, Integer>();
 					}
 					teacherCourseNumMap.put(teacherId, teacherCourseNumMap.get(teacherId) == null ? 1 : teacherCourseNumMap.get(teacherId) + 1);
-					studentTeacherCourseNumMap.put(studentId, teacherCourseNumMap);
+					studentTeacherCourseNumMap.put(studentId, teacherCourseNumMap);*/
 					
 					//本周没有课,布置课外训练
-					studentExtracurricularExercisesSituation = new StudentExtracurricularExercisesSituation(studentId, teacherId,
+					studentExtracurricularExercisesSituation = new StudentExtracurricularExercisesSituation(musicGroupId, studentId, teacherId,
 							nowDate.get(DateUtil.weekFields.weekOfYear()), DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(
 									sunDayDate.toString(), "yyyy-MM-dd"), "EXERCISE", null);
 					
-					
-					studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherCourseNumMap.get(teacherId));
+					studentExtracurricularExercisesSituation.setExpectExercisesNum(1);
+					/*studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherCourseNumMap.get(teacherId));
 					if(results.contains(studentExtracurricularExercisesSituation)){
 						results.remove(studentExtracurricularExercisesSituation);
-					}
+					}*/
 					results.add(studentExtracurricularExercisesSituation);
 				}else{//如果本周有课
 
 					studentServeCourseDto = userCourseMap.get(studentId);
 					teacherId = studentServeCourseDto.getActualTeacherId();
 					
-					teacherCourseMap = studentTeacherCourseMap.get(studentId);
+					/*teacherCourseMap = studentTeacherCourseMap.get(studentId);
 					if(teacherCourseMap == null){
 						teacherCourseMap = new HashMap<Integer, Set<Long>>();
 					}
@@ -525,29 +525,29 @@ public class StudentServeServiceImpl implements StudentServeService {
 					}
 					courseIdList.add(studentServeCourseDto.getCourseScheduleId());
 					teacherCourseMap.put(teacherId, courseIdList);
-					studentTeacherCourseMap.put(studentId, teacherCourseMap);
+					studentTeacherCourseMap.put(studentId, teacherCourseMap);*/
 					
-					studentExtracurricularExercisesSituation = new StudentExtracurricularExercisesSituation(studentId, teacherId,
+					studentExtracurricularExercisesSituation = new StudentExtracurricularExercisesSituation(musicGroupId, studentId, teacherId,
 							nowDate.get(DateUtil.weekFields.weekOfYear()), DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(
-									sunDayDate.toString(), "yyyy-MM-dd"), "HOMEWORK", StringUtils.join(courseIdList, ","));
-                    studentExtracurricularExercisesSituation.setExpectExercisesNum(courseIdList.size());
+									sunDayDate.toString(), "yyyy-MM-dd"), "HOMEWORK", studentServeCourseDto.getCourseScheduleId() + "");
+                    studentExtracurricularExercisesSituation.setExpectExercisesNum(1);
                     
-                    teacherNotOverCourseMap = studentTeacherNotOverCourseMap.get(studentId);
+                    /*teacherNotOverCourseMap = studentTeacherNotOverCourseMap.get(studentId);
 					if(teacherNotOverCourseMap == null){
 						teacherNotOverCourseMap = new HashMap<Integer, Set<Long>>();
 					}
 					courseIdList = teacherNotOverCourseMap.get(teacherId);
 					if(courseIdList == null){
 						courseIdList = new HashSet<Long>();
-					}
+					}*/
                     if(studentServeCourseDto.getStatus() != CourseStatusEnum.OVER){
-    					courseIdList.add(studentServeCourseDto.getCourseScheduleId());
-    					teacherNotOverCourseMap.put(teacherId, courseIdList);
-    					studentTeacherNotOverCourseMap.put(studentId, teacherCourseMap);
+
+                        studentExtracurricularExercisesSituation.setNotOverCourseIds(studentServeCourseDto.getCourseScheduleId() + "");
+                        studentExtracurricularExercisesSituation.setNotOverCourseNum(1);
+    					//teacherNotOverCourseMap.put(teacherId, courseIdList);
+    					//studentTeacherNotOverCourseMap.put(studentId, teacherCourseMap);
                     }
                     
-                    studentExtracurricularExercisesSituation.setNotOverCourseIds(StringUtils.join(courseIdList, ","));
-                    studentExtracurricularExercisesSituation.setNotOverCourseNum(courseIdList.size());
 					if(results.contains(studentExtracurricularExercisesSituation)){
 						results.remove(studentExtracurricularExercisesSituation);
 					}
@@ -633,7 +633,11 @@ public class StudentServeServiceImpl implements StudentServeService {
 
                 List<ExtracurricularExercisesReply> studentAllExercises = studentExercisesMap.get(weekServiceWithStudent.getStudentId());
                 if(!CollectionUtils.isEmpty(studentAllExercises)&&weekServiceWithStudent.getServeType().equals("EXERCISE")){
-                    List<ExtracurricularExercisesReply> studentExercises = studentAllExercises.stream().filter(s -> weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId())).collect(Collectors.toList());
+					List<ExtracurricularExercisesReply> studentExercises = studentAllExercises
+							.stream()
+							.filter(s -> (weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId())
+									&& weekServiceWithStudent.getMusicGroupId().equals(s.getExtracurricularExercises().getMusicGroupId())))
+							.collect(Collectors.toList());
                     if(!CollectionUtils.isEmpty(studentExercises)){
                         weekServiceWithStudent.setActualExercisesNum(studentExercises.size()>weekServiceWithStudent.getExpectExercisesNum()?weekServiceWithStudent.getExpectExercisesNum():studentExercises.size());
                         long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
@@ -690,10 +694,13 @@ public class StudentServeServiceImpl implements StudentServeService {
     }
 
     @Override
-    public void updateExercisesSituation(Date date,List<Integer> studentIds, Integer teacherId) {
+    public void updateExercisesSituation(String musicGroupId, Date date,List<Integer> studentIds, Integer teacherId) {
 //        if(true){
 //            return;
 //        }
+    	if(StringUtils.isBlank(musicGroupId)){
+    		return;
+    	}
         LocalDate nowDate = LocalDateTime.ofInstant(date.toInstant(), DateUtil.zoneId).toLocalDate();
         if(Objects.isNull(date)){
             nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
@@ -743,6 +750,10 @@ public class StudentServeServiceImpl implements StudentServeService {
         if(CollectionUtils.isEmpty(weekServiceWithStudents)){
             return;
         }
+        
+        weekServiceWithStudents = weekServiceWithStudents.stream().filter(s -> musicGroupId.equals(s.getMusicGroupId())).collect(Collectors.toList());
+        
+        List<StudentExtracurricularExercisesSituation> batchUpdateList = new ArrayList<StudentExtracurricularExercisesSituation>();
 
         for (StudentExtracurricularExercisesSituation weekServiceWithStudent : weekServiceWithStudents) {
             List<StudentServeCourseHomeworkDto> studentAllHomeworks = studentHomeworkMap.get(weekServiceWithStudent.getStudentId());
@@ -775,12 +786,14 @@ public class StudentServeServiceImpl implements StudentServeService {
                     }
                     weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>weekServiceWithStudent.getActualExercisesNum()?weekServiceWithStudent.getActualExercisesNum(): (int) exercisesMessageNum);
                     weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>weekServiceWithStudent.getActualExercisesNum()?weekServiceWithStudent.getActualExercisesNum(): (int) exercisesMessageTimelyNum);
+                    
+                    batchUpdateList.add(weekServiceWithStudent);
                 }
             }
 
             List<ExtracurricularExercisesReply> studentAllExercises = studentExercisesMap.get(weekServiceWithStudent.getStudentId());
             if(!CollectionUtils.isEmpty(studentAllExercises)&&weekServiceWithStudent.getServeType().equals("EXERCISE")){
-                List<ExtracurricularExercisesReply> studentExercises = studentAllExercises.stream().filter(s -> weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId())).collect(Collectors.toList());
+                List<ExtracurricularExercisesReply> studentExercises = studentAllExercises.stream().filter(s -> weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId()) && StringUtils.equals(s.getExtracurricularExercises().getMusicGroupId(), musicGroupId)).collect(Collectors.toList());
                 if(!CollectionUtils.isEmpty(studentExercises)){
                     weekServiceWithStudent.setActualExercisesNum(studentExercises.size()>weekServiceWithStudent.getExpectExercisesNum()?weekServiceWithStudent.getExpectExercisesNum():studentExercises.size());
                     long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
@@ -814,10 +827,13 @@ public class StudentServeServiceImpl implements StudentServeService {
                     if(weekServiceWithStudent.getExercisesMessageTimelyNum()<weekServiceWithStudent.getActualExercisesNum()){
                         weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>weekServiceWithStudent.getActualExercisesNum()?weekServiceWithStudent.getActualExercisesNum(): (int) exercisesMessageTimelyNum);
                     }
+                    batchUpdateList.add(weekServiceWithStudent);
                 }
             }
         }
-        studentExtracurricularExercisesSituationDao.batchUpdate(weekServiceWithStudents);
+        if(batchUpdateList.size() > 0){
+        	studentExtracurricularExercisesSituationDao.batchUpdate(batchUpdateList);
+        }
     }
 
     @Override

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -377,7 +377,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 						studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
 						List<Integer> studentIds = studentCourseHomeworks.stream().map(StudentCourseHomework::getUserId).collect(Collectors.toList());
-						studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), studentIds, teacherAttendance.getTeacherId());
+						studentServeService.updateExercisesSituation(courseSchedule.getMusicGroupId(), courseSchedule.getClassDate(), studentIds, teacherAttendance.getTeacherId());
 
 						for (StudentCourseHomework studentCourseHomework : studentCourseHomeworks) {
 							Map<Integer, String> userMap = new HashMap<>();

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

@@ -674,7 +674,7 @@
         WHERE
             cg.del_flag_ = 0
             AND cg.lock_flag_ =0
-            AND cgsm.status_='NORMAL'
+            AND cgsm.status_='NORMAL' and cg.group_type_ = 'MUSIC'
             AND cgsm.user_id_ IN
             <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
                 #{studentId}
@@ -682,6 +682,9 @@
             <if test="teacherId!=null">
                 AND cgtm.user_id_ = #{teacherId}
             </if>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND cg.music_group_id_ = #{musicGroupId}
+            </if>
             AND cg.id_ IS NOT NULL
         ORDER BY cg.id_ DESC
     </select>

+ 13 - 8
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -8,6 +8,7 @@
 	
 	<resultMap type="com.ym.mec.biz.dal.entity.ExtracurricularExercises" id="ExtracurricularExercises">
 		<result column="id_" property="id" />
+		<result column="music_group_id_" property="musicGroupId" />
 		<result column="teacher_id_" property="teacherId" />
 		<result column="username_" property="teacher.username" />
 		<result column="student_id_list_" property="studentIdList" />
@@ -31,6 +32,9 @@
 			<if test="teacherId != null">
 				and teacher_id_ = #{teacherId}
 			</if>
+			<if test="musicGroupId != null">
+				and music_group_id_ = #{musicGroupId}
+			</if>
 			<if test="title != null">
 				and title_ like '%' #{title} '%'
 			</if>
@@ -67,9 +71,9 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ExtracurricularExercises" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO extracurricular_exercises (teacher_id_,student_id_list_,batch_no_,
+		INSERT INTO extracurricular_exercises (music_group_id_,teacher_id_,student_id_list_,batch_no_,
 		                                       title_,attachments_,content_,expire_date_,completed_num_,expect_num_,create_time_,update_time_,tenant_id_)
-		VALUES(#{teacherId},#{studentIdList},#{batchNo},#{title},#{attachments},
+		VALUES(#{musicGroupId},#{teacherId},#{studentIdList},#{batchNo},#{title},#{attachments},
 		       #{content},#{expireDate},#{completedNum},#{expectNum},NOW(), NOW(),#{tenantId})
 	</insert>
 	
@@ -86,6 +90,9 @@
 			<if test="batchNo != null">
 			batch_no_ = #{batchNo},
 			</if>
+			<if test="musicGroupId != null">
+			music_group_id_ = #{musicGroupId},
+			</if>
 			<if test="teacherId != null">
 			teacher_id_ = #{teacherId},
 			</if>
@@ -115,7 +122,7 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ExtracurricularExercises" parameterType="map">
-		SELECT ee.id_,ee.teacher_id_,ee.student_id_list_,ee.batch_no_,ee.title_,ee.attachments_,
+		SELECT ee.id_,ee.teacher_id_,ee.student_id_list_,ee.batch_no_,ee.title_,ee.attachments_,ee.music_group_id_,
 		       ee.content_,ee.expire_date_,ee.completed_num_,ee.expect_num_,ee.create_time_,ee.update_time_,ee.tenant_id_
 		     ,u.real_name_ username_,o.name_ organ_name_,eer.music_score_id_
 		FROM extracurricular_exercises ee LEFT JOIN sys_user u ON ee.teacher_id_ = u.id_
@@ -177,12 +184,10 @@
 			su.avatar_ headUrl,
 			GROUP_CONCAT(sub.name_) subjectName,
 		    stu.member_rank_setting_id_ memberRankSettingId,
-			stu.subject_id_list_ subjectIdList
+			stu.subject_id_list_ subjectIdList,
+			sees.music_group_id_ musicGroupId
 		FROM
 			student_extracurricular_exercises_situation_ sees
-			<if test="musicGroupId!=null and musicGroupId!=''">
-				LEFT JOIN student_registration sr ON sees.student_id_=sr.user_id_
-			</if>
 			<if test="classGroupId!=null">
 				LEFT JOIN class_group_student_mapper cgsm ON sees.student_id_ = cgsm.user_id_
 			</if>
@@ -206,7 +211,7 @@
 				AND FIND_IN_SET(sees.student_id_,#{studentIds})
 			</if>
 			<if test="musicGroupId!=null and musicGroupId!=''">
-				AND sr.music_group_id_=#{musicGroupId}
+				AND sees.music_group_id_=#{musicGroupId}
 			</if>
 			<if test="classGroupId!=null">
 				AND cgsm.class_group_id_ = #{classGroupId}

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -490,7 +490,8 @@
 			eer.is_replied_,
 			eer.is_replied_timely_,
 			ee.teacher_id_ ee_teacher_id_,
-			eer.music_score_id_
+			eer.music_score_id_,
+			ee.music_group_id_ ee_music_group_id_
 		FROM
 			extracurricular_exercises_reply eer
 			LEFT JOIN extracurricular_exercises ee ON eer.extracurricular_exercises_id_=ee.id_

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

@@ -403,12 +403,14 @@
                extends="StudentCourseHomework">
         <result property="courseStartTime" column="course_start_time_"/>
         <result property="homeworkCreateTime" column="homework_create_time_"/>
+        <result property="musicGroupId" column="music_group_id_"/>
     </resultMap>
     <select id="findStudentHomeworkWithCourseDateRange" resultMap="StudentServeCourseHomeworkDto">
         SELECT
         sch.*,
         DATE_FORMAT(sch.create_time_, '%Y-%m-%d') homework_create_time_,
-        cs.class_date_ course_start_time_
+        cs.class_date_ course_start_time_,
+        cs.music_group_id_
         FROM
         student_course_homework sch
         LEFT JOIN course_schedule cs ON sch.course_schedule_id_ = cs.id_

+ 53 - 4
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -9,6 +9,7 @@
     <resultMap type="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation"
                id="StudentExtracurricularExercisesSituation">
         <result column="id_" property="id"/>
+        <result column="music_group_id_" property="musicGroupId"/>
         <result column="student_id_" property="studentId"/>
         <result column="week_of_year_" property="weekOfYear"/>
         <result column="monday_" property="monday"/>
@@ -35,6 +36,9 @@
         <result column="teacher_name_" property="teacherName"/>
         <result column="organ_name_" property="organName"/>
         <result column="exist_vip_course_" property="existVipCourse"/>
+        <result column="groupNames" property="groupNames" />
+        <result column="educationalTeacherId" property="educationalTeacherId" />
+        <result column="educationalTeacherName" property="educationalTeacherName" />
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -61,24 +65,24 @@
         </selectKey>
         -->
         INSERT INTO student_extracurricular_exercises_situation_
-        (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
+        (id_,music_group_id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
         actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
         exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
         serve_type_,course_ids_,not_over_course_ids_,not_over_course_num_,tenant_id_)
-        VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},
+        VALUES(#{id},#{musicGroupId},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},
         #{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType},#{courseIds},#{notOverCourseIds},#{notOverCourseNum},#{tenantId})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation"
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO student_extracurricular_exercises_situation_
-        (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
+        (music_group_id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
         actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
         exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
         serve_type_,course_ids_,not_over_course_ids_,not_over_course_num_,tenant_id_)
         VALUES
         <foreach collection="situations" item="situation" separator=",">
-            (#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},
+            (#{situation.musicGroupId},#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},
             #{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},
             NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType},#{situation.courseIds},#{situation.notOverCourseIds},#{situation.notOverCourseNum},#{situation.tenantId})
         </foreach>
@@ -118,6 +122,9 @@
             <if test="studentId != null">
                 student_id_ = #{studentId},
             </if>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
             <if test="expectExercisesNum != null">
                 expect_exercises_num_ = #{expectExercisesNum},
             </if>
@@ -172,6 +179,9 @@
                 <if test="situation.studentId != null">
                     student_id_ = #{situation.studentId},
                 </if>
+	            <if test="situation.musicGroupId != null">
+	                music_group_id_ = #{situation.musicGroupId},
+	            </if>
                 <if test="situation.expectExercisesNum != null">
                     expect_exercises_num_ = #{situation.expectExercisesNum},
                 </if>
@@ -259,6 +269,10 @@
     <select id="findExercisesSituations" resultMap="StudentExercisesSituationDto">
         SELECT
         sees.id_ id_,
+        sees.music_group_id_,
+        mg.name_ groupNames,
+        co.education_user_id_ educationalTeacherId,
+        uu.real_name_ educationalTeacherName,
         student_id_,
         stu.username_ student_name_,
         tea.real_name_ teacher_name_,
@@ -287,6 +301,9 @@
         </if>
         FROM
         student_extracurricular_exercises_situation_ sees
+        left join music_group mg on mg.id_ = sees.music_group_id_
+        left join cooperation_organ co on co.id_ = mg.cooperation_organ_id_
+        left join sys_user uu on uu.id_ = co.education_user_id_
         LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
         LEFT JOIN teacher t ON t.id_=sees.teacher_id_
         LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
@@ -953,4 +970,36 @@
         </where>
         ORDER BY cs.organ_id_,cs.student_id_,cs.music_group_id_
     </select>
+    
+    <select id="queryStudentExerciseMusicGroupList" resultType="com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto">
+    	SELECT sees.music_group_id_ musicGroupId,mg.name_ musicGroupName,count(distinct sees.student_id_) studentNum from student_extracurricular_exercises_situation_ sees 
+		LEFT JOIN music_group mg on mg.id_ = sees.music_group_id_
+		WHERE sees.teacher_id_ = #{teacherId} and sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+		<if test="musicGroupName != null and musicGroupName != ''">
+			and mg.name_ LIKE CONCAT('%', #{musicGroupName}, '%')
+		</if>
+		<if test="mondayDate != null and mondayDate != ''">
+			and sees.monday_ =  #{mondayDate}
+		</if>
+		<if test="sundayDate != null and sundayDate != ''">
+			and sees.sunday_ = #{sundayDate}
+		</if>
+		GROUP BY sees.music_group_id_
+        <include refid="global.limit" />
+    </select>
+    
+    <select id="queryStudentExerciseMusicGroupListCount" resultType="int">
+    	SELECT count(distinct sees.music_group_id_) from student_extracurricular_exercises_situation_ sees 
+		LEFT JOIN music_group mg on mg.id_ = sees.music_group_id_
+		WHERE sees.teacher_id_ = #{teacherId} and sees.serve_type_ = 'EXERCISE' and sees.actual_exercises_num_ = 0
+		<if test="musicGroupName != null and musicGroupName != ''">
+			and mg.name_ LIKE CONCAT('%', #{musicGroupName}, '%')
+		</if>
+		<if test="mondayDate != null and mondayDate != ''">
+			and sees.monday_ =  #{mondayDate}
+		</if>
+		<if test="sundayDate != null and sundayDate != ''">
+			and sees.sunday_ = #{sundayDate}
+		</if>
+    </select>
 </mapper>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java

@@ -74,7 +74,7 @@ public class StudentCourseHomeworkReplyController extends BaseController {
             studentCourseHomeworkReplyService.insert(studentCourseHomeworkReply);
             StudentCourseHomework studentCourseHomework = studentCourseHomeworkDao.get(studentCourseHomeworkReply.getStudentCourseHomeworkId());
             CourseSchedule courseSchedule = courseScheduleDao.get(studentCourseHomework.getCourseScheduleId());
-            studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), new ArrayList<>(Arrays.asList(sysUser.getId())), courseSchedule.getActualTeacherId());
+            studentServeService.updateExercisesSituation(courseSchedule.getMusicGroupId(), courseSchedule.getClassDate(), new ArrayList<>(Arrays.asList(sysUser.getId())), courseSchedule.getActualTeacherId());
         }else{
             ExtracurricularExercisesMessage extracurricularExercisesMessage=new ExtracurricularExercisesMessage();
             extracurricularExercisesMessage.setExtracurricularExercisesReplyId(studentCourseHomeworkReply.getStudentCourseHomeworkId());

+ 3 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

@@ -173,13 +173,13 @@ public class ExtracurricularExercisesController extends BaseController {
 
     @ApiOperation(value = "获取服务学员查询条件")
     @GetMapping("/getDontServeStudentQueryCondition")
-    public HttpResponseResult getDontServeStudentQueryCondition(){
+    public HttpResponseResult getDontServeStudentQueryCondition(String musicGroupId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
         Map<String, Object> result = new HashMap<>();
-        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), null, null, null, null,null,null);
+        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), null, musicGroupId, null, null,null,null);
         if(CollectionUtils.isEmpty(dontServeStudents)){
             result.put("musicGroups", Collections.emptyList());
             result.put("classGroups", Collections.emptyList());
@@ -190,7 +190,7 @@ public class ExtracurricularExercisesController extends BaseController {
         List<MusicGroup> studentNormalMusicGroups = studentRegistrationDao.getStudentNormalMusicGroups(studentIds);
         result.put("musicGroups", studentNormalMusicGroups);
 
-        List<ClassGroup> classGroups = classGroupStudentMapperDao.getStudentClassGroupWithTeacher(studentIds, sysUser.getId());
+        List<ClassGroup> classGroups = classGroupStudentMapperDao.getStudentClassGroupWithTeacher(studentIds, sysUser.getId(), musicGroupId);
         result.put("classGroups", classGroups);
 
         List<Subject> studentSubjects = studentDao.getStudentSubjects(studentIds);

+ 68 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudentExtracurricularExercisesSituationController.java

@@ -0,0 +1,68 @@
+package com.ym.mec.teacher.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.Objects;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
+import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
+import com.ym.mec.biz.service.ExtracurricularExercisesMessageService;
+import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.date.DateUtil;
+
+@RequestMapping("studentExtracurricularExercisesSituation")
+@Api(tags = "课外训练统计服务")
+@RestController
+public class StudentExtracurricularExercisesSituationController extends BaseController {
+
+    @Autowired
+    private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private ExtracurricularExercisesMessageService extracurricularExercisesMessageService;
+
+
+    @ApiOperation(value = "课外训练乐团列表")
+    @GetMapping("/queryStudentExerciseMusicGroupList")
+    public HttpResponseResult<PageInfo<MusicGroupExtracurricularSummaryDto>> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        queryInfo.setTeacherId(sysUser.getId());
+
+        Date date = new Date();
+        LocalDate nowDate = LocalDateTime.ofInstant(date.toInstant(), DateUtil.zoneId).toLocalDate();
+        if(Objects.isNull(date)){
+            nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
+        }
+
+        LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+        LocalDate sunDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
+        
+        queryInfo.setMondayDate(monDayDate.toString());
+        queryInfo.setSundayDate(sunDayDate.toString());
+        
+        return succeed(studentExtracurricularExercisesSituationService.queryStudentExerciseMusicGroupList(queryInfo));
+    }
+
+}