Jelajahi Sumber

Merge branch 'music_detail' of http://git.dayaedu.com/yonge/mec into music_detail

yonge 4 tahun lalu
induk
melakukan
962b851483
40 mengubah file dengan 794 tambahan dan 40 penghapusan
  1. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPerformanceDao.java
  3. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupTrainPlanDao.java
  4. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PhotoAlbumDao.java
  5. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java
  6. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDto.java
  7. 33 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPerformance.java
  8. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupTrainPlanSaveDto.java
  9. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Photo.java
  10. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/YesOrNoEnum.java
  12. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupPerformanceQueryInfo.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/PhotoQueryInfo.java
  14. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  15. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPerformanceService.java
  16. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupTrainPlanService.java
  17. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/PhotoAlbumService.java
  18. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/PhotoService.java
  19. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java
  20. 20 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  21. 13 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  22. 60 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPerformanceServiceImpl.java
  23. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  24. 34 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupTrainPlanServiceImpl.java
  25. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PhotoAlbumServiceImpl.java
  26. 58 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PhotoServiceImpl.java
  27. 68 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  28. 5 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  29. 45 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPerformanceMapper.xml
  30. 27 10
      mec-biz/src/main/resources/config/mybatis/MusicGroupTrainPlanMapper.xml
  31. 32 1
      mec-biz/src/main/resources/config/mybatis/PhotoAlbumMapper.xml
  32. 32 0
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  33. 6 4
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPerformanceController.java
  34. 8 4
      mec-web/src/main/java/com/ym/mec/web/controller/PhotoAlbumController.java
  35. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/PhotoController.java
  36. 11 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java
  37. 61 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupNewsController.java
  38. 68 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupPerformanceController.java
  39. 70 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupTrainPlanController.java
  40. 23 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1949,4 +1949,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     int countCourseByClassAndType(@Param("dto") MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto);
+
+    /**
+     * 获取当前课程在该学期的排序号
+     * @param schoolTerm
+     * @return
+     */
+    int getCourseNumNo(@Param("schoolTerm") MusicGroupTrainPlanSaveDto schoolTerm);
 }

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

@@ -2,8 +2,18 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.MusicGroupPerformance;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 public interface MusicGroupPerformanceDao extends BaseDAO<Integer, MusicGroupPerformance> {
 
-	
+
+    List<MusicGroupPerformance> findNoStart(@Param("educationUserId") Integer educationUserId,
+                                            @Param("organIds") String organIds);
+
+    List<MusicGroupPerformance> queryNoStart(Map<String, Object> params);
+
+    int countNoStart(Map<String, Object> params);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupTrainPlanDao.java

@@ -31,4 +31,6 @@ public interface MusicGroupTrainPlanDao extends BaseDAO<Integer, MusicGroupTrain
     List<String> findAllPlan(Map<String, Object> paramMap);
 
     int countPlanNum(@Param("dto") MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto);
+
+    List<MusicGroupTrainPlan> queryPlan(@Param("schoolTerm") MusicGroupTrainPlanSaveDto schoolTerm);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PhotoAlbumDao.java

@@ -12,4 +12,8 @@ public interface PhotoAlbumDao extends BaseDAO<Integer, PhotoAlbum> {
 
 
     List<Map<Integer,Long>> countTotalNumByAlbumIds(@Param("albumIds") List<Integer> albumIds, @Param("clientShow") YesOrNoEnum clientShow);
+
+    PhotoAlbum findByTypeAndGroupId(@Param("musicGroupId") String musicGroupId, @Param("type") String type);
+
+    void batchUpdate(@Param("photoAlbumList") List<PhotoAlbum> photoAlbumList);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 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.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;
@@ -135,4 +136,9 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
                                                                             @Param("teacherIds") List<Integer> teacherIds,
                                                                             @Param("serveType") String serveType);
 
+    List<IndexBaseMonthData> getHomeworkData(@Param("startDay") String startDay,
+                                             @Param("endDay") String endDay,
+                                             @Param("type") String type,
+                                             @Param("studentIds") List<Integer> studentIds);
+
 }

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

@@ -109,6 +109,17 @@ public class TeacherAttendanceDto {
 
     private Integer enableStudentAttendanceTimeRangeVip;
 
+    @ApiModelProperty(value = "课程规划")
+    private String coursePlan;
+
+    public String getCoursePlan() {
+        return coursePlan;
+    }
+
+    public void setCoursePlan(String coursePlan) {
+        this.coursePlan = coursePlan;
+    }
+
     public int getMemberNum() {
         return memberNum;
     }

+ 33 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPerformance.java

@@ -12,16 +12,24 @@ public class MusicGroupPerformance {
 	
 	/** 乐团编号 */
 	private String musicGroupId;
+
+	/** 乐团编号 */
+	private String musicGroupName;
 	
 	/** 名称 */
 	private String name;
-	
+
+	private String organName;
+
 	/** 展演曲目名称,逗号分隔 */
 	private String musicScoreName;
 	
 	/** 添加人 */
 	private Integer operator;
 
+	//剩余天数
+	private Integer subDay;
+
 	/** 添加人 */
 	private String operatorName;
 	
@@ -37,6 +45,30 @@ public class MusicGroupPerformance {
 	/**  */
 	private java.util.Date updateTime;
 
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
+	public Integer getSubDay() {
+		return subDay;
+	}
+
+	public void setSubDay(Integer subDay) {
+		this.subDay = subDay;
+	}
+
 	public String getOperatorName() {
 		return operatorName;
 	}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupTrainPlanSaveDto.java

@@ -31,6 +31,17 @@ public class MusicGroupTrainPlanSaveDto {
 	@ApiModelProperty(value = "课程组编号",required = false)
 	private String musicGroupId;
 
+	@ApiModelProperty(value = "课程上课时间",required = false)
+	private Date courseClassTime;
+
+	public Date getCourseClassTime() {
+		return courseClassTime;
+	}
+
+	public void setCourseClassTime(Date courseClassTime) {
+		this.courseClassTime = courseClassTime;
+	}
+
 	public String getYear() {
 		return year;
 	}

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

@@ -13,6 +13,8 @@ public class Photo {
 	
 	/** 相册编号 */
 	private Integer photoAlbumId;
+
+	private String musicGroupId;
 	
 	/** 名称 */
 	private String name;
@@ -35,6 +37,14 @@ public class Photo {
 	/**  */
 	private java.util.Date updateTime;
 
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
 	public Integer getOrder() {
 		return order;
 	}

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -19,6 +19,7 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "申请退团学员数"),
     NO_MEMBER_STUDENT_INFO("NO_MEMBER_STUDENT_INFO", "当前共有{0}个乐团共{1}名学员会员已过期"),
     MEMBER_STUDENT_INFO("MEMBER_STUDENT_INFO", "当前共有{0}个乐团共{1}名学员会员即将过期"),
+    MUSIC_GROUP_PERFORMANCE("MUSIC_GROUP_PERFORMANCE", "当前共有{0}个乐团共{1}次展演计划"),
     WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
     ATTENDANCE_ERR_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考勤异常"),
     COURSE_TRUANT_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员旷课"),

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/YesOrNoEnum.java

@@ -3,8 +3,8 @@ package com.ym.mec.biz.dal.enums;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
-    YES(1,"是"),
-    NO(0,"否");
+    NO(0,"否"),
+    YES(1,"是");
 
     private Integer code;
     private String msg;

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupPerformanceQueryInfo.java

@@ -6,6 +6,16 @@ public class MusicGroupPerformanceQueryInfo extends QueryInfo {
 
     private String musicGroupId;
 
+    private String organId;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
     public String getMusicGroupId() {
         return musicGroupId;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/page/PhotoQueryInfo.java

@@ -4,7 +4,7 @@ import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.common.page.QueryInfo;
 
 public class PhotoQueryInfo extends QueryInfo {
-	private String type;
+	private String type = "DEFAULT";
 
 	private YesOrNoEnum clientShow;
 

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

@@ -563,7 +563,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param groupId
 	 * @return
 	 */
-	Object getTeacherCourseHeadInfo(GroupType groupType,String groupId,Long courseScheduleId);
+	Map<String,Object> getTeacherCourseHeadInfo(GroupType groupType,String groupId,Long courseScheduleId);
 
 	/**
 	 * 根据课程组获取课表信息

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPerformanceService.java

@@ -1,8 +1,10 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.MusicGroupPerformance;
+import com.ym.mec.biz.dal.page.MusicGroupPerformanceQueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface MusicGroupPerformanceService extends BaseService<Integer, MusicGroupPerformance> {
 
+    Object queryNoStartPage(MusicGroupPerformanceQueryInfo queryInfo);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.MusicGroupTrainPlan;
 import com.ym.mec.biz.dal.entity.MusicGroupTrainPlanSaveDto;
 import com.ym.mec.common.service.BaseService;
@@ -19,4 +20,8 @@ public interface MusicGroupTrainPlanService extends BaseService<Integer, MusicGr
     List<String> queryCourseType(MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto);
 
     Map<String,Object> queryExceptionPlan(MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto);
+
+    MusicGroupTrainPlanSaveDto getSchoolTerm(CourseSchedule courseSchedule);
+
+    List<MusicGroupTrainPlan> queryPlan(MusicGroupTrainPlanSaveDto schoolTerm);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PhotoAlbumService.java

@@ -5,9 +5,13 @@ import com.ym.mec.biz.dal.page.PhotoQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface PhotoAlbumService extends BaseService<Integer, PhotoAlbum> {
 
     int del(Integer id);
 
     PageInfo<PhotoAlbum> queryAlbumPage(PhotoQueryInfo queryInfo);
+
+    void batchUpdate(List<PhotoAlbum> photoAlbumList);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PhotoService.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Photo;
+import com.ym.mec.biz.dal.page.PhotoQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -12,4 +14,6 @@ public interface PhotoService extends BaseService<Integer, Photo> {
     int batchAdd(List<Photo> photoList);
 
     int batchUpdate(List<Photo> photoList);
+
+    PageInfo<Photo> queryPhotoPage(PhotoQueryInfo queryInfo);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -74,4 +75,13 @@ public interface StudentServeService {
      * 解除会员
      */
     void cleanStudentMember();
+
+    /**
+     * @describe 乐团作业情况
+     * @author Joburgess
+     * @date 2021/7/13 0013
+     * @param musicGroupId:
+     * @return void
+     */
+    List<IndexBaseDto> musicGroupHomeworkStat(String musicGroupId, String startDay, String endDay);
 }

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

@@ -156,6 +156,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private VipGroupActivityDao vipGroupActivityDao;
     @Autowired
 	private StudentDao studentDao;
+    @Autowired
+	private MusicGroupTrainPlanService musicGroupTrainPlanService;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -224,6 +226,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
 		currentCourseDetail.setAttendanceRange(CourseScheduleType.VIP.equals(currentCourseDetail.getCourseType())?Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ATTENDANCE_RANGE_VIP)):Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ATTENDANCE_RANGE)));
         currentCourseDetail.setAdvanceSignOutMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_OUT_MINUTES)));
+		CourseSchedule courseSchedule = courseScheduleDao.get(courseID);
+		//获取课程规划
+		MusicGroupTrainPlanSaveDto schoolTerm = musicGroupTrainPlanService.getSchoolTerm(courseSchedule);
+		int courseNumNo = courseScheduleDao.getCourseNumNo(schoolTerm);
+		List<MusicGroupTrainPlan> planList = musicGroupTrainPlanService.queryPlan(schoolTerm);
+		if(planList.size() >= courseNumNo){
+			currentCourseDetail.setCoursePlan(planList.get(courseNumNo - 1).getPlan());
+		}
 		//获取有会员的学员数
 		String configValue = sysConfigDao.findConfigValue(SysConfigService.HOMEWORK_OPEN_FLAG);
 		if(StringUtils.isEmpty(configValue)){
@@ -232,7 +242,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(configValue.equals("0")){
 			currentCourseDetail.setMemberNum(0);
 		}else {
-			CourseSchedule courseSchedule = courseScheduleDao.get(courseID);
 			MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 			if(musicGroup != null){
 				currentCourseDetail.setCourseViewType(musicGroup.getCourseViewType());
@@ -5300,7 +5309,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public Object getTeacherCourseHeadInfo(GroupType groupType,String groupId,Long courseScheduleId){
+	public Map<String,Object> getTeacherCourseHeadInfo(GroupType groupType,String groupId,Long courseScheduleId){
 		Map<String,Object> resultMap = new HashMap<>(8);
 		Teacher teacher;
 		switch (groupType){
@@ -5545,7 +5554,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(schedule == null){
 			throw new BizException("课程不存在");
 		}
-		return getTeacherCourseHeadInfo(schedule.getGroupType(),schedule.getMusicGroupId(),courseScheduleId);
+		Map<String,Object> teacherCourseHeadInfo = getTeacherCourseHeadInfo(schedule.getGroupType(), schedule.getMusicGroupId(), courseScheduleId);
+		//获取课程规划
+		MusicGroupTrainPlanSaveDto schoolTerm = musicGroupTrainPlanService.getSchoolTerm(schedule);
+		int courseNumNo = courseScheduleDao.getCourseNumNo(schoolTerm);
+		List<MusicGroupTrainPlan> planList = musicGroupTrainPlanService.queryPlan(schoolTerm);
+		if(planList.size() >= courseNumNo){
+			teacherCourseHeadInfo.put("coursePlan",planList.get(courseNumNo - 1).getPlan());
+		}
+		return teacherCourseHeadInfo;
 	}
 
 	@Override

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -9,9 +9,7 @@ import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
 import com.ym.mec.biz.dal.dto.OrganVipGroupCategoryCourseNumDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.IndexDataQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
@@ -25,7 +23,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.service.IndexBaseMonthDataService;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
@@ -68,6 +65,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	private EmployeeService employeeService;
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
+	@Autowired
+	private MusicGroupPerformanceDao musicGroupPerformanceDao;
 
 	private static ThreadLocal<Set<Integer>> organIds = new ThreadLocal<Set<Integer>>(){
 		@Override
@@ -152,7 +151,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
 			typeDateMap.put(IndexDataType.TOTAL_AMOUNT,totalAmountDataWithTimely);
 			//经营报表细化
-			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY",null);
+			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY,ADD_STUDENT",null);
 			typeDateMap.put(APPLY_AMOUNT,applyAmount);
 			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null);
 			typeDateMap.put(RENEW_AMOUNT,renewAmount);
@@ -934,6 +933,15 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		infoDto.setNum2(userIds.size());
 		infoDto.setDesc(IndexErrorType.MEMBER_STUDENT_INFO.getMsg());
 		result.add(infoDto);
+
+		//乐团展演计划提醒
+		List<MusicGroupPerformance> musicGroupPerformances = musicGroupPerformanceDao.findNoStart(educationUserId,organIds);
+		IndexErrInfoDto infoDto1 = new IndexErrInfoDto();
+		infoDto1.setErrorType(IndexErrorType.MUSIC_GROUP_PERFORMANCE);
+		infoDto1.setNum(musicGroupPerformances.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet()).size());
+		infoDto1.setNum2(musicGroupPerformances.stream().map(e -> e.getId()).collect(Collectors.toSet()).size());
+		infoDto1.setDesc(IndexErrorType.MUSIC_GROUP_PERFORMANCE.getMsg());
+		result.add(infoDto1);
 		return result;
 	}
 

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

@@ -1,6 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.entity.SysUserRole;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.page.MusicGroupPerformanceQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.biz.dal.entity.MusicGroupPerformance;
@@ -8,15 +18,64 @@ import com.ym.mec.biz.service.MusicGroupPerformanceService;
 import com.ym.mec.biz.dal.dao.MusicGroupPerformanceDao;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 public class MusicGroupPerformanceServiceImpl extends BaseServiceImpl<Integer, MusicGroupPerformance>  implements MusicGroupPerformanceService {
 	
 	@Autowired
 	private MusicGroupPerformanceDao musicGroupPerformanceDao;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private EmployeeDao employeeDao;
 
 	@Override
 	public BaseDAO<Integer, MusicGroupPerformance> getDAO() {
 		return musicGroupPerformanceDao;
 	}
-	
+
+    @Override
+    public Object queryNoStartPage(MusicGroupPerformanceQueryInfo queryInfo) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			throw new BizException("用户信息获取失败");
+		}
+		Employee employee = employeeDao.get(sysUser.getId());
+		if (org.apache.commons.lang3.StringUtils.isEmpty(queryInfo.getOrganId())) {
+			queryInfo.setOrganId(employee.getOrganIdList());
+		} else if (org.apache.commons.lang3.StringUtils.isEmpty(employee.getOrganIdList())) {
+			throw new BizException("用户所在分部异常");
+		} else {
+			List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+			if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+				throw new BizException("非法请求");
+			}
+		}
+		//当前用户是否是分部经理
+		List<Integer> userRole = employeeDao.queryUserRole(sysUser.getId());
+		Integer educationUserId = null;
+		if (!sysUser.getIsSuperAdmin() && userRole.size() == 1 && userRole.contains(SysUserRole.EDUCATIONAL_TEACHER)) {
+			//获取教务老师关联的班级列表
+			educationUserId = sysUser.getId();
+		}
+		PageInfo<MusicGroupPerformance> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		params.put("educationUserId",educationUserId);
+
+		List<MusicGroupPerformance> dataList = null;
+		int count = musicGroupPerformanceDao.countNoStart(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = musicGroupPerformanceDao.queryNoStart(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+    }
 }

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

@@ -2768,6 +2768,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<Map<Integer, String>> teamTeacherNames = teacherDao.queryNameByIds(StringUtils.join(teamTeacherIds, ","));
         Map<Integer, String> teamTeacherNameMap = MapUtil.convertMybatisMap(teamTeacherNames);
 
+        // 获取运营主管编号列表
+        Set<Integer> repairUserIds = musicGroupList.stream().map(e -> e.getRepairUserId()).collect(Collectors.toSet());
+        repairUserIds.removeAll(Collections.singleton(null));
+        Map<Integer, String> repairUserNameMap = new HashMap<>();
+        if(repairUserIds.size() > 0){
+            List<Map<Integer, String>> repairUserNames = teacherDao.queryNameByIds(StringUtils.join(repairUserIds, ","));
+            repairUserNameMap = MapUtil.convertMybatisMap(repairUserNames);
+        }
+
         // 获取乐团编号列表
         Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
         // 统计乐团在读人数
@@ -2795,12 +2804,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         Map<String, Boolean> viewRegButtonMap = studentRegistrationService.checkMusicGroupsRegOrPayStatus(new ArrayList<>(musicGroupIds));
         //获取分部名称map
-        musicGroupList.forEach(e -> {
+        for (MusicGroup e : musicGroupList) {
 //            e.setSchoolName(schoolNameMap.get(e.getSchoolId()));
             e.setOrganName(organNames.get(e.getOrganId()));
             e.setCooperationOrganName(cooperationOrganNames.get(e.getCooperationOrganId()));
             e.setEducationalTeacherName(educationalTeacherNameMap.get(e.getEducationalTeacherId()));
             e.setTeamTeacherName(teamTeacherNameMap.get(e.getTeamTeacherId()));
+            e.setRepairUserName(repairUserNameMap.get(e.getRepairUserId()));
             e.setPayNum(payNumMap.get(e.getId()) == null ? 0 : payNumMap.get(e.getId()));
             e.setChargeTypeName(chargeTypeNameMap.get(e.getChargeTypeId()));
             e.setHasVerifyMusicalList(purchaseListMap.get(e.getId()) != null);
@@ -2809,7 +2819,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     e.setIsRemedy(true);
                 }
             }
-        });
+        }
         return musicGroupPageInfo;
     }
 

+ 34 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupTrainPlanServiceImpl.java

@@ -4,9 +4,7 @@ import com.ym.mec.biz.dal.dao.ClassGroupDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dao.MusicGroupTrainPlanDao;
 import com.ym.mec.biz.dal.dto.WaitCourseTrainPlanDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlan;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlanSaveDto;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.MusicGroupTrainPlanService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -18,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -136,4 +135,36 @@ public class MusicGroupTrainPlanServiceImpl extends BaseServiceImpl<Integer, Mus
 		}
 		return musicGroupTrainPlanSaveDto;
 	}
+
+	@Override
+	public MusicGroupTrainPlanSaveDto getSchoolTerm(CourseSchedule courseSchedule){
+		MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto = new MusicGroupTrainPlanSaveDto();
+		Date startCourseDate = courseSchedule.getClassDate();
+		//一个学期默认为6个月,9月1日—2月28、29日,3月1日—8月31日
+		Integer month = Integer.parseInt(DateUtil.getMonth(startCourseDate));
+		String year = DateUtil.getYear(startCourseDate);
+		if(month >= 9 || month <= 2){
+			if(month >= 9){
+				musicGroupTrainPlanSaveDto.setStartSchoolTerm(DateUtil.stringToDate(year + "-09-01 00:00:00"));
+				year = DateUtil.getYear(DateUtil.addYears(startCourseDate, 1));
+			}else {
+				String year1 = DateUtil.getYear(DateUtil.addYears(startCourseDate, -1));
+				musicGroupTrainPlanSaveDto.setStartSchoolTerm(DateUtil.stringToDate(year1 + "-09-01 00:00:00"));
+			}
+			musicGroupTrainPlanSaveDto.setEndSchoolTerm(DateUtil.getLastDayOfMonth(DateUtil.stringToDate(year + "-02-01 00:00:00")));
+		}else {
+			musicGroupTrainPlanSaveDto.setStartSchoolTerm(DateUtil.stringToDate(year + "-03-01 00:00:00"));
+			musicGroupTrainPlanSaveDto.setEndSchoolTerm(DateUtil.stringToDate(year + "-08-31 00:00:00"));
+		}
+		musicGroupTrainPlanSaveDto.setMusicGroupId(courseSchedule.getMusicGroupId());
+		musicGroupTrainPlanSaveDto.setClassGroupId(courseSchedule.getClassGroupId());
+		musicGroupTrainPlanSaveDto.setCourseScheduleType(courseSchedule.getType().getCode());
+		musicGroupTrainPlanSaveDto.setCourseClassTime(courseSchedule.getStartClassTime());
+		return musicGroupTrainPlanSaveDto;
+	}
+
+	@Override
+	public List<MusicGroupTrainPlan> queryPlan(MusicGroupTrainPlanSaveDto schoolTerm) {
+		return musicGroupTrainPlanDao.queryPlan(schoolTerm);
+	}
 }

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

@@ -50,4 +50,9 @@ public class PhotoAlbumServiceImpl extends BaseServiceImpl<Integer, PhotoAlbum>
 		}
 		return photoAlbumPageInfo;
     }
+
+    @Override
+    public void batchUpdate(List<PhotoAlbum> photoAlbumList) {
+		photoAlbumDao.batchUpdate(photoAlbumList);
+    }
 }

+ 58 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PhotoServiceImpl.java

@@ -1,12 +1,20 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.PhotoAlbumDao;
 import com.ym.mec.biz.dal.dao.PhotoDao;
 import com.ym.mec.biz.dal.entity.Photo;
+import com.ym.mec.biz.dal.entity.PhotoAlbum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.PhotoQueryInfo;
 import com.ym.mec.biz.service.PhotoService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -15,6 +23,8 @@ public class PhotoServiceImpl extends BaseServiceImpl<Integer, Photo>  implement
 	
 	@Autowired
 	private PhotoDao photoDao;
+	@Autowired
+	private PhotoAlbumDao photoAlbumDao;
 
 	@Override
 	public BaseDAO<Integer, Photo> getDAO() {
@@ -27,7 +37,33 @@ public class PhotoServiceImpl extends BaseServiceImpl<Integer, Photo>  implement
     }
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public int batchAdd(List<Photo> photoList) {
+		if(photoList == null ||photoList.size() == 0){
+			throw new BizException("请录入照片");
+		}
+		Photo photo = photoList.get(0);
+		Integer photoAlbumId = photo.getPhotoAlbumId();
+		String musicGroupId = photo.getMusicGroupId();
+		if(photoAlbumId == null && StringUtils.isEmpty(musicGroupId)){
+			throw new BizException("参数校验失败");
+		}
+		//如果相册编号是空,那么插入证书相册
+		if(photoAlbumId == null){
+			PhotoAlbum photoAlbum = photoAlbumDao.findByTypeAndGroupId(musicGroupId,"SHOW");
+			if(photoAlbum == null){
+				photoAlbum = new PhotoAlbum();
+				photoAlbum.setMusicGroupId(musicGroupId);
+				photoAlbum.setName("获奖证书");
+				photoAlbum.setClientShow(YesOrNoEnum.YES);
+				photoAlbum.setType("SHOW");
+				photoAlbumDao.insert(photoAlbum);
+			}
+			photoAlbumId = photoAlbum.getId();
+		}
+		for (Photo e : photoList) {
+			e.setPhotoAlbumId(photoAlbumId);
+		}
 		return photoDao.batchInsert(photoList);
 	}
 
@@ -35,4 +71,26 @@ public class PhotoServiceImpl extends BaseServiceImpl<Integer, Photo>  implement
     public int batchUpdate(List<Photo> photoList) {
 		return photoDao.batchUpdate(photoList);
     }
+
+    @Override
+    public PageInfo<Photo> queryPhotoPage(PhotoQueryInfo queryInfo) {
+		Integer photoAlbumId = queryInfo.getPhotoAlbumId();
+		if(photoAlbumId == null){
+			String type = queryInfo.getType();
+			if(!"SHOW".equals(type)){
+				throw new BizException("参数校验失败");
+			}
+			PhotoAlbum photoAlbum = photoAlbumDao.findByTypeAndGroupId(queryInfo.getMusicGroupId(), type);
+			if(photoAlbum == null){
+				photoAlbum = new PhotoAlbum();
+				photoAlbum.setMusicGroupId(queryInfo.getMusicGroupId());
+				photoAlbum.setName("获奖证书");
+				photoAlbum.setClientShow(YesOrNoEnum.YES);
+				photoAlbum.setType("SHOW");
+				photoAlbumDao.insert(photoAlbum);
+			}
+			queryInfo.setPhotoAlbumId(photoAlbum.getId());
+		}
+        return queryPage(queryInfo);
+    }
 }

+ 68 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -50,6 +50,8 @@ public class StudentServeServiceImpl implements StudentServeService {
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
     @Autowired
     private MusicGroupDao musicGroupDao;
+    @Autowired
+    private StudentRegistrationDao studentRegistrationDao;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -1041,4 +1043,70 @@ public class StudentServeServiceImpl implements StudentServeService {
     public void cleanStudentMember() {
         studentDao.cleanStudentMember();
     }
+
+    @Override
+    public List<IndexBaseDto> musicGroupHomeworkStat(String musicGroupId, String startDayStr, String endDayStr) {
+        List<IndexBaseDto> result = new ArrayList<>();
+        List<StudentRegistration> musicGroupStu = studentRegistrationDao.getMusicGroupStu(musicGroupId);
+        List<Integer> studentIds = new ArrayList<>();
+        if(!CollectionUtils.isEmpty(musicGroupStu)){
+            studentIds = musicGroupStu.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
+        }
+
+        LocalDate startDate = LocalDate.parse(startDayStr, DateUtil.dateFormatter);
+        LocalDate endDate = LocalDate.parse(endDayStr, DateUtil.dateFormatter);
+        List<String> mondayDateStrs = new ArrayList<>();
+        while (startDate.compareTo(endDate)<0){
+            LocalDate monDayDate = startDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+            mondayDateStrs.add(monDayDate.toString());
+            startDate = startDate.plusDays(7);
+        }
+
+        Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = new HashMap<>();
+
+        List<IndexBaseMonthData> d1 = new ArrayList<>();
+        List<IndexBaseMonthData> d2 = new ArrayList<>();
+        List<IndexBaseMonthData> d3 = new ArrayList<>();
+        if(StringUtils.isNotBlank(musicGroupId) && !CollectionUtils.isEmpty(studentIds)){
+            d1 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, null, studentIds);
+            d2 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, "submit", studentIds);
+            d3 = studentExtracurricularExercisesSituationDao.getHomeworkData(startDayStr, endDayStr, "comment", studentIds);
+        }
+        musicGroupHomeworkDataDeal(d1, mondayDateStrs, IndexDataType.HOMEWORK_CREATE_RATE);
+        typeDateMap.put(IndexDataType.HOMEWORK_CREATE_RATE, d1);
+
+        musicGroupHomeworkDataDeal(d2, mondayDateStrs, IndexDataType.HOMEWORK_SUBMIT_RATE);
+        typeDateMap.put(IndexDataType.HOMEWORK_SUBMIT_RATE, d2);
+
+        musicGroupHomeworkDataDeal(d3, mondayDateStrs, IndexDataType.HOMEWORK_COMMENT_RATE);
+        typeDateMap.put(IndexDataType.HOMEWORK_COMMENT_RATE, d3);
+
+        for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {
+            IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+            indexBaseData.setIndexMonthData(typeDateMapEntry.getValue(), null);
+            result.add(indexBaseData);
+        }
+        return result;
+    }
+
+    private List<IndexBaseMonthData> musicGroupHomeworkDataDeal(List<IndexBaseMonthData> dataList, List<String> mondayDateStrs, IndexDataType dataType){
+        if(Objects.isNull(dataList)){
+            dataList = new ArrayList<>();
+        }
+        Set<String> hasMondayDates = dataList.stream().map(d -> DateUtil.dateToString(d.getMonth(), "yyyy-MM-dd")).collect(Collectors.toSet());
+
+        for (String mondayDate : mondayDateStrs) {
+            if(hasMondayDates.contains(mondayDate)){
+                continue;
+            }
+            IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData(DateUtil.stringToDate(mondayDate, "yyyy-MM-dd"), null);
+            indexBaseMonthData.setDataType(dataType);
+            indexBaseMonthData.setTotalNum(BigDecimal.ZERO);
+            indexBaseMonthData.setActivateNum(BigDecimal.ZERO);
+            indexBaseMonthData.setPercent(BigDecimal.ZERO);
+            indexBaseMonthData.setDataType(dataType);
+            dataList.add(indexBaseMonthData);
+        }
+        return dataList;
+    }
 }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -4006,4 +4006,9 @@
         </if>
         AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.is_lock_ = 0
     </select>
+    <select id="getCourseNumNo" resultType="int">
+        SELECT COUNT(id_) FROM course_schedule
+        WHERE class_date_ BETWEEN #{schoolTerm.startSchoolTerm} AND #{schoolTerm.endSchoolTerm} AND class_group_id_ = #{schoolTerm.classGroupId} AND type_ = #{schoolTerm.courseScheduleType}
+        AND CONCAT(class_date_,' ',start_class_time_) &lt;= #{schoolTerm.courseClassTime} AND is_lock_ = 0 AND del_flag_ = 0 AND pre_course_flag_ = 0
+    </select>
 </mapper>

+ 45 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPerformanceMapper.xml

@@ -15,6 +15,9 @@
 		<result column="operator_name_" property="operatorName" />
 		<result column="order_" property="order" />
 		<result column="start_time_" property="startTime" />
+		<result column="sub_day_" property="subDay" />
+		<result column="music_group_name_" property="musicGroupName" />
+		<result column="organ_name_" property="organName" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -87,4 +90,46 @@
 			</if>
 		</where>
 	</select>
+    <select id="findNoStart" resultMap="MusicGroupPerformance">
+		SELECT mgp.* FROM music_group_performance mgp
+		LEFT JOIN music_group mg ON mg.id_ = mgp.music_group_id_
+		WHERE DATEDIFF(DATE_FORMAT(start_time_, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 0
+		<if test="educationUserId != null">
+			AND mg.educational_teacher_id_ = #{educationUserId}
+		</if>
+		<if test="organIds != null and organIds != ''">
+			AND FIND_IN_SET(mg.organ_id_,#{organIds})
+		</if>
+	</select>
+	<select id="queryNoStart" resultMap="MusicGroupPerformance">
+		SELECT mgp.*,mg.name_ music_group_name_,o.name_ organ_name_,DATEDIFF(DATE_FORMAT(mgp.start_time_, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) sub_day_
+		FROM music_group_performance mgp
+		LEFT JOIN music_group mg ON mg.id_ = mgp.music_group_id_
+		LEFT JOIN organization o ON o.id_ = mg.organ_id_
+		WHERE DATEDIFF(DATE_FORMAT(mgp.start_time_, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 0
+		<if test="educationUserId != null">
+			AND mg.educational_teacher_id_ = #{educationUserId}
+		</if>
+		<if test="search != null and search != ''">
+			AND (mg.id_ = #{search} OR mg.name_ LIKE CONCAT('%',#{search},'%'))
+		</if>
+		<if test="organIds != null and organIds != ''">
+			AND FIND_IN_SET(mg.organ_id_,#{organIds})
+		</if>
+		<include refid="global.limit"/>
+	</select>
+	<select id="countNoStart" resultType="java.lang.Integer">
+		SELECT COUNT(mgp.id_) FROM music_group_performance mgp
+		LEFT JOIN music_group mg ON mg.id_ = mgp.music_group_id_
+		WHERE DATEDIFF(DATE_FORMAT(start_time_, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 0
+		<if test="educationUserId != null">
+			AND mg.educational_teacher_id_ = #{educationUserId}
+		</if>
+		<if test="search != null and search != ''">
+			AND (mg.id_ = #{search} OR mg.name_ LIKE CONCAT('%',#{search},'%'))
+		</if>
+		<if test="organIds != null and organIds != ''">
+			AND FIND_IN_SET(mg.organ_id_,#{organIds})
+		</if>
+	</select>
 </mapper>

+ 27 - 10
mec-biz/src/main/resources/config/mybatis/MusicGroupTrainPlanMapper.xml

@@ -120,10 +120,10 @@
 		<result property="scheduleType" column="type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 	</resultMap>
     <select id="queryWaitCourseTrainPlan" resultMap="WaitCourseTrainPlanDto">
-		SELECT c.class_group_id_,c.type_,c.course_num_ - t.course_num_ num_,c.name_ FROM (
+		SELECT c.class_group_id_,c.type_,c.course_num_ - (CASE WHEN t.course_num_ IS NULL THEN 0 ELSE t.course_num_ END) num_,c.name_ FROM (
 		SELECT cs.class_group_id_,cs.type_,COUNT(cs.id_) course_num_,cg.name_ FROM course_schedule cs
 		LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-		WHERE cs.music_group_id_ = #{musicGroupId} AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.is_lock_ = 0
+		WHERE cs.music_group_id_ = #{dto.musicGroupId} AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.is_lock_ = 0
 		<if test="dto.startSchoolTerm != null">
 			AND cs.class_date_ >= DATE_FORMAT(#{dto.startSchoolTerm}, '%Y%m%d')
 		</if>
@@ -132,20 +132,20 @@
 		</if>
 		GROUP BY cs.class_group_id_,cs.type_) c
 		LEFT JOIN (SELECT tp.class_group_id_,tp.course_type_ type_,COUNT(tp.id_) course_num_,'' name_ FROM music_group_train_plan tp
-				WHERE tp.music_group_id_ = #{musicGroupId}
+				WHERE tp.music_group_id_ = #{dto.musicGroupId}
 				<if test="dto.startSchoolTerm != null">
 					AND tp.start_school_term_ = #{dto.startSchoolTerm}
 				</if>
 				<if test="dto.endSchoolTerm != null">
 					AND tp.end_school_term_ = #{dto.endSchoolTerm}
 				</if>
-				GROUP BY tp.class_group_id_,tp.course_type_) t ON 1=1
-		WHERE c.class_group_id_ = t.class_group_id_ AND c.type_ = t.type_ AND c.course_num_ > t.course_num_
+				GROUP BY tp.class_group_id_,tp.course_type_) t ON c.type_ = t.type_ AND c.class_group_id_ = t.class_group_id_
+		WHERE c.course_num_ > (CASE WHEN t.course_num_ IS NULL THEN 0 ELSE t.course_num_ END)
 	</select>
     <select id="queryWaitCourseTrainPlan1" resultMap="WaitCourseTrainPlanDto">
-		SELECT c.class_group_id_,c.type_,t.course_num_ - c.course_num_ num_,c.name_
+		SELECT c.class_group_id_,c.type_,t.course_num_ - (CASE WHEN c.course_num_ IS NULL THEN 0 ELSE c.course_num_ END) num_,c.name_
 		FROM (SELECT tp.class_group_id_,tp.course_type_ type_,COUNT(tp.id_) course_num_,'' name_ FROM music_group_train_plan tp
-		WHERE tp.music_group_id_ = #{musicGroupId}
+		WHERE tp.music_group_id_ = #{dto.musicGroupId}
 		<if test="dto.startSchoolTerm != null">
 			AND tp.start_school_term_ = #{dto.startSchoolTerm}
 		</if>
@@ -156,15 +156,15 @@
 		LEFT JOIN (
 		SELECT cs.class_group_id_,cs.type_,COUNT(cs.id_) course_num_,cg.name_ FROM course_schedule cs
 		LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-		WHERE cs.music_group_id_ = #{musicGroupId} AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.is_lock_ = 0
+		WHERE cs.music_group_id_ = #{dto.musicGroupId} AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.is_lock_ = 0
 		<if test="dto.startSchoolTerm != null">
 			AND cs.class_date_ >= DATE_FORMAT(#{dto.startSchoolTerm}, '%Y%m%d')
 		</if>
 		<if test="dto.endSchoolTerm != null">
 			AND cs.class_date_ &lt;= DATE_FORMAT(#{dto.endSchoolTerm}, '%Y%m%d')
 		</if>
-		GROUP BY cs.class_group_id_,cs.type_) c ON 1=1
-		WHERE c.class_group_id_ = t.class_group_id_ AND c.type_ = t.type_ AND c.course_num_ &lt; t.course_num_
+		GROUP BY cs.class_group_id_,cs.type_) c ON c.class_group_id_ = t.class_group_id_ AND c.type_ = t.type_
+		WHERE t.course_num_ > (CASE WHEN c.course_num_ IS NULL THEN 0 ELSE c.course_num_ END)
 	</select>
 	<select id="countPlanNum" resultType="int">
 		SELECT COUNT(id_) FROM music_group_train_plan
@@ -176,4 +176,21 @@
 			AND end_school_term_ = #{dto.endSchoolTerm}
 		</if>
 	</select>
+	<select id="queryPlan" resultMap="MusicGroupTrainPlan">
+		SELECT * FROM music_group_train_plan
+		<where>
+			<if test="schoolTerm.startSchoolTerm != null">
+				AND start_school_term_ = #{schoolTerm.startSchoolTerm}
+			</if>
+			<if test="schoolTerm.endSchoolTerm != null">
+				AND end_school_term_ = #{schoolTerm.endSchoolTerm}
+			</if>
+			<if test="schoolTerm.classGroupId != null">
+				AND class_group_id_ = #{schoolTerm.classGroupId}
+			</if>
+			<if test="schoolTerm.courseScheduleType != null">
+				AND course_type_ = #{schoolTerm.courseScheduleType}
+			</if>
+		</where>
+	</select>
 </mapper>

+ 32 - 1
mec-biz/src/main/resources/config/mybatis/PhotoAlbumMapper.xml

@@ -62,7 +62,35 @@
 		update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
-	
+	<update id="batchUpdate">
+		<foreach collection="photoAlbumList" item="album" separator=";">
+			UPDATE photo_album_ <set>
+			<if test="album.coverUrl != null">
+				cover_url_ = #{album.coverUrl},
+			</if>
+			<if test="album.order != null">
+				order_ = #{album.order},
+			</if>
+			<if test="album.coverThumbnailUrl != null">
+				cover_thumbnail_url_ = #{album.coverThumbnailUrl},
+			</if>
+			<if test="album.clientShow != null">
+				client_show_ = #{album.clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="album.musicGroupId != null">
+				music_group_id_ = #{album.musicGroupId},
+			</if>
+			<if test="album.type != null">
+				type_ = #{album.type},
+			</if>
+			<if test="album.name != null">
+				name_ = #{album.name},
+			</if>
+			update_time_ = NOW()
+		</set> WHERE id_ = #{album.id}
+		</foreach>
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM photo_album_ WHERE id_ = #{id} 
@@ -105,4 +133,7 @@
 		</if>
 		GROUP BY photo_album_id_
 	</select>
+	<select id="findByTypeAndGroupId" resultMap="PhotoAlbum">
+		SELECT * FROM photo_album_ WHERE music_group_id_ = #{musicGroupId} AND type_ = #{type} LIMIT 1
+	</select>
 </mapper>

+ 32 - 0
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -684,4 +684,36 @@
 			  </foreach>
 		  </if>
 	</select>
+
+	<select id="getHomeworkData" resultMap="com.ym.mec.biz.dal.dao.IndexBaseMonthDataDao.IndexBaseMonthData">
+		SELECT
+		sees.monday_ month_,
+		<choose>
+			<when test="type == 'submit'">
+				SUM(sees.actual_exercises_num_) total_num_,
+				SUM(sees.exercises_reply_num_) activate_num_,
+				TRUNCATE(SUM(sees.exercises_reply_num_)/SUM(sees.actual_exercises_num_)*100, 2) percent_
+			</when>
+			<when test="type == 'comment'">
+				SUM(sees.exercises_reply_num_) total_num_,
+				SUM(sees.exercises_message_num_) activate_num_,
+				TRUNCATE(SUM(sees.exercises_message_num_)/SUM(sees.exercises_reply_num_)*100, 2) percent_
+			</when>
+			<otherwise>
+				SUM(sees.expect_exercises_num_-sees.not_over_course_num_) total_num_,
+				SUM(sees.actual_exercises_num_) activate_num_,
+				TRUNCATE(SUM(sees.actual_exercises_num_)/SUM(sees.expect_exercises_num_-sees.not_over_course_num_)*100, 2) percent_
+			</otherwise>
+		</choose>
+		FROM student_extracurricular_exercises_situation_ sees
+		LEFT JOIN teacher tea ON sees.teacher_id_=tea.id_
+		WHERE tea.job_nature_='FULL_TIME'
+		AND DATE_FORMAT(sees.monday_, '%Y-%m-%d')&gt;=#{startDay}
+		AND DATE_FORMAT(sees.sunday_, '%Y-%m-%d')&lt;=#{endDay}
+		AND sees.student_id_ IN
+		<foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+			#{studentId}
+		</foreach>
+		GROUP BY sees.monday_
+	</select>
 </mapper>

+ 6 - 4
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPerformanceController.java

@@ -3,20 +3,16 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.MusicGroupPerformance;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlan;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlanSaveDto;
 import com.ym.mec.biz.dal.page.MusicGroupPerformanceQueryInfo;
 import com.ym.mec.biz.service.MusicGroupPerformanceService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -68,4 +64,10 @@ public class MusicGroupPerformanceController extends BaseController {
 		return succeed(musicGroupPerformanceService.queryPage(queryInfo));
 	}
 
+	@ApiOperation("分页查询首页乐团展演列表")
+	@PostMapping(value = "queryNoStartPage")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupPerformance/queryNoStartPage')")
+	public Object queryNoStartPage(MusicGroupPerformanceQueryInfo queryInfo) {
+		return succeed(musicGroupPerformanceService.queryNoStartPage(queryInfo));
+	}
 }

+ 8 - 4
mec-web/src/main/java/com/ym/mec/web/controller/PhotoAlbumController.java

@@ -9,9 +9,12 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RequestMapping("photoAlbum")
 @Api(tags = "相册")
 @RestController
@@ -28,10 +31,11 @@ public class PhotoAlbumController extends BaseController {
 	}
 
 	@ApiOperation("修改")
-	@PostMapping(value = "update")
-	@PreAuthorize("@pcs.hasPermissions('photoAlbum/update')")
-	public Object update(PhotoAlbum photoAlbum) {
-		return succeed(photoAlbumService.update(photoAlbum));
+	@PostMapping(value = "batchUpdate")
+	@PreAuthorize("@pcs.hasPermissions('photoAlbum/batchUpdate')")
+	public Object batchUpdate(@RequestBody List<PhotoAlbum> photoAlbumList) {
+		photoAlbumService.batchUpdate(photoAlbumList);
+		return succeed();
 	}
 
 	@ApiOperation("删除")

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/PhotoController.java

@@ -48,6 +48,6 @@ public class PhotoController extends BaseController {
 	@PostMapping(value = "queryPage")
 	@PreAuthorize("@pcs.hasPermissions('photo/queryPage')")
 	public Object queryPage(PhotoQueryInfo queryInfo) {
-		return succeed(photoService.queryPage(queryInfo));
+		return succeed(photoService.queryPhotoPage(queryInfo));
 	}
 }

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java

@@ -166,4 +166,15 @@ public class StudentExtracurricularExercisesSituationController extends BaseCont
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeExtraDetail(queryInfo));
     }
 
+    @ApiOperation(value = "乐团作业情况")
+    @GetMapping("/musicGroupHomeworkStat")
+    @PreAuthorize("@pcs.hasPermissions('exercisesSituation/musicGroupHomeworkStat')")
+    public HttpResponseResult musicGroupHomeworkStat(String musicGroupId, String startDay, String endDay) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(studentServeService.musicGroupHomeworkStat(musicGroupId, startDay, endDay));
+    }
+
 }

+ 61 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupNewsController.java

@@ -0,0 +1,61 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.MusicGroupNews;
+import com.ym.mec.biz.service.MusicGroupNewsService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.QueryInfo;
+import com.yonge.log.model.AuditLogAnnotation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("eduMusicGroupNews")
+@Api(tags = "乐团资讯服务")
+@RestController
+public class EduMusicGroupNewsController extends BaseController {
+
+    @Autowired
+    private MusicGroupNewsService musicGroupNewsService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    @AuditLogAnnotation(operateName = "新增")
+    public Object add(MusicGroupNews musicGroupNews) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("请登录");
+        }
+        musicGroupNews.setOperatorId(sysUser.getId());
+        return succeed(musicGroupNewsService.insert(musicGroupNews));
+    }
+
+    @ApiOperation(value = "删除")
+    @PostMapping("/del")
+    public Object del(Long id) {
+        musicGroupNewsService.delete(id);
+        return succeed();
+    }
+
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public Object update(MusicGroupNews musicGroupNews) {
+        musicGroupNewsService.update(musicGroupNews);
+        return succeed();
+    }
+
+    @ApiOperation(value = "分页查询")
+    @GetMapping("/queryPage")
+    public Object queryPage(QueryInfo queryInfo) {
+        return succeed(musicGroupNewsService.queryPage(queryInfo));
+    }
+
+}

+ 68 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupPerformanceController.java

@@ -0,0 +1,68 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.MusicGroupPerformance;
+import com.ym.mec.biz.dal.page.MusicGroupPerformanceQueryInfo;
+import com.ym.mec.biz.service.MusicGroupPerformanceService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("eduMusicGroupPerformance")
+@Api(tags = "乐团展演信息")
+@RestController
+public class EduMusicGroupPerformanceController extends BaseController {
+
+	@Autowired
+	private MusicGroupPerformanceService musicGroupPerformanceService;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("新增")
+	@PostMapping(value = "add")
+	public Object add(MusicGroupPerformance musicGroupPerformance) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if(sysUser == null){
+			throw new BizException("请登录");
+		}
+		musicGroupPerformance.setOperator(sysUser.getId());
+		if(StringUtils.isNotEmpty(musicGroupPerformance.getMusicScoreName())){
+			if(musicGroupPerformance.getMusicScoreName().contains(",")){
+				throw new BizException("请勿录入特殊字符");
+			}
+		}
+		return succeed(musicGroupPerformanceService.insert(musicGroupPerformance));
+	}
+
+	@ApiOperation("修改")
+	@PostMapping(value = "update")
+	public Object update(MusicGroupPerformance musicGroupPerformance) {
+		return succeed(musicGroupPerformanceService.update(musicGroupPerformance));
+	}
+
+	@ApiOperation("删除")
+	@PostMapping(value = "del")
+	public Object del(Integer id) {
+		return succeed(musicGroupPerformanceService.delete(id));
+	}
+
+	@ApiOperation("分页查询")
+	@PostMapping(value = "queryPage")
+	public Object queryPage(MusicGroupPerformanceQueryInfo queryInfo) {
+		return succeed(musicGroupPerformanceService.queryPage(queryInfo));
+	}
+
+	@ApiOperation("分页查询首页乐团展演列表")
+	@PostMapping(value = "queryNoStartPage")
+	public Object queryNoStartPage(MusicGroupPerformanceQueryInfo queryInfo) {
+		return succeed(musicGroupPerformanceService.queryNoStartPage(queryInfo));
+	}
+}

+ 70 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicGroupTrainPlanController.java

@@ -0,0 +1,70 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.biz.dal.entity.MusicGroupTrainPlan;
+import com.ym.mec.biz.dal.entity.MusicGroupTrainPlanSaveDto;
+import com.ym.mec.biz.service.MusicGroupTrainPlanService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("eduMusicGroupTrainPlan")
+@Api(tags = "乐团训练规划")
+@RestController
+public class EduMusicGroupTrainPlanController extends BaseController {
+
+	@Autowired
+	private MusicGroupTrainPlanService musicGroupTrainPlanService;
+
+	@ApiOperation("新增乐团训练规划")
+	@PostMapping(value = "add")
+	public Object add(@RequestBody MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto) {
+		return succeed(musicGroupTrainPlanService.add(musicGroupTrainPlanSaveDto));
+	}
+
+	@ApiOperation("删除乐团训练规划")
+	@PostMapping(value = "del")
+	public Object del(Integer id) {
+		return succeed(musicGroupTrainPlanService.delete(id));
+	}
+
+	@ApiOperation("修改乐团训练规划")
+	@PostMapping(value = "update")
+	public Object update(String plan,Integer planId) {
+		MusicGroupTrainPlan musicGroupTrainPlan = musicGroupTrainPlanService.get(planId);
+		if(musicGroupTrainPlan == null){
+			throw new BizException("课程规划不存在");
+		}
+		musicGroupTrainPlan.setPlan(plan);
+		return succeed(musicGroupTrainPlanService.update(musicGroupTrainPlan));
+	}
+
+	@ApiOperation("获取乐团训练规划")
+	@PostMapping(value = "queryPlanPage")
+	public Object queryPlanPage(@RequestBody MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto) {
+		return succeed(musicGroupTrainPlanService.queryPlanPage(musicGroupTrainPlanSaveDto));
+	}
+
+	@ApiOperation("获取乐团训练规划异常规划")
+	@PostMapping(value = "queryExceptionPlan")
+	public Object queryExceptionPlan(@RequestBody MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto) {
+		return succeed(musicGroupTrainPlanService.queryExceptionPlan(musicGroupTrainPlanSaveDto));
+	}
+
+	@ApiOperation("获取乐团训练规划课时")
+	@PostMapping(value = "queryPlanCourseNum")
+	public Object queryPlanCourseNum(@RequestBody MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto) {
+		return succeed(musicGroupTrainPlanService.queryPlanCourseNum(musicGroupTrainPlanSaveDto));
+	}
+
+	@ApiOperation("获取乐团训练规划课程类型")
+	@PostMapping(value = "queryCourseType")
+	public Object queryCourseType(@RequestBody MusicGroupTrainPlanSaveDto musicGroupTrainPlanSaveDto) {
+		return succeed(musicGroupTrainPlanService.queryCourseType(musicGroupTrainPlanSaveDto));
+	}
+}

+ 23 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java

@@ -46,6 +46,8 @@ public class EduOnlineMusicGroupController extends BaseController {
     private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
     @Autowired
     private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+    @Autowired
+    private EmployeeDao employeeDao;
 
     @ApiOperation(value = "分页查询乐团列表")
     @GetMapping("/findMusicGroups")
@@ -123,4 +125,25 @@ public class EduOnlineMusicGroupController extends BaseController {
         return succeed(onlineMusicGroupService.createOnlineMusicClassGroup(onlineMusicGroupCourseInfo));
     }
 
+    @ApiOperation(value = "分页查询乐团列表")
+    @RequestMapping("/queryPage")
+    public Object queryPage(MusicGroupQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
+        return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
+    }
+
 }