瀏覽代碼

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

yonge 5 年之前
父節點
當前提交
dd1764753c
共有 27 個文件被更改,包括 297 次插入66 次删除
  1. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 18 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupCategoryDao.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageSendMode.java
  6. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java
  7. 18 5
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  8. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  9. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupCategoryService.java
  10. 13 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  11. 24 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 35 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  13. 34 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  14. 20 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  15. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java
  16. 11 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  17. 8 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  18. 9 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  19. 9 3
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  20. 4 3
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  21. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  22. 3 0
      mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml
  23. 8 4
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  24. 4 8
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  25. 4 0
      mec-student/src/main/java/com/ym/mec/student/controller/StudentVipGroupController.java
  26. 17 3
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  27. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

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

@@ -6,7 +6,6 @@ import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -394,4 +393,13 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return com.ym.mec.biz.dal.entity.ClassGroup
      */
     ClassGroup findByCourseSchedule(Integer courseScheduleId);
+
+    /**
+     * @describe 获取合奏班下所有子班级
+     * @author Joburgess
+     * @date 2019/11/5
+     * @param maxCourseScheduleId: 合奏班编号
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<ClassGroup> findClassGroupsByMixClassGroup(Integer maxCourseScheduleId);
 }

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

@@ -500,5 +500,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
 	 */
 	List<CourseSchedule> findCourseScheduleWithDate(@Param("date") Date date);
-	
+
+	/**
+	 * @describe 根据班级获取课程计划
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param classGroupId: 班级编号
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 */
+	List<CourseSchedule> findByClassGroup(@Param("classGroupId") Integer classGroupId);
+
+	/**
+	 * @describe 根据班级获取课程计划
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param classGroupIds: 班级编号
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 */
+	List<CourseSchedule> findByClassGroups(@Param("classGroupIds") List<Integer> classGroupIds);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.common.dal.BaseDAO;
 
@@ -9,4 +10,6 @@ public interface VipGroupCategoryDao extends BaseDAO<Integer, VipGroupCategory>
 
     List<VipGroupCategory> findAllByOrgan(Long organId);
 
-}
+    List<ConditionDto> findConditionCategorys();
+
+}

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

@@ -107,6 +107,17 @@ public class VipGroup {
 	@ApiModelProperty(value = "月度消耗百分数")
 	private Double monthConsumeRate;
 
+	@ApiModelProperty(value = "开课时间")
+	private Date courseStartDate;
+
+	public Date getCourseStartDate() {
+		return courseStartDate;
+	}
+
+	public void setCourseStartDate(Date courseStartDate) {
+		this.courseStartDate = courseStartDate;
+	}
+
 	public Double getMonthConsumeRate() {
 		return monthConsumeRate;
 	}

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

@@ -6,7 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
  状态,1,表示短信;2,表示邮件; 3,app推送消息
  */
 public enum MessageSendMode implements BaseEnum<Integer, MessageSendMode> {
-	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息");
+	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息"), SEO(4, "站内推送消息");
 
 	private Integer code;
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java

@@ -15,9 +15,20 @@ public class StudentVipGroupQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "课程类型",required = false)
     private String classType;
 
+    @ApiModelProperty(value = "课程类型编号")
+    private String categoryId;
+
     @ApiModelProperty(value = "学生编号")
     private Integer userId;
 
+    public String getCategoryId() {
+        return categoryId;
+    }
+
+    public void setCategoryId(String categoryId) {
+        this.categoryId = categoryId;
+    }
+
     public Integer getUserId() {
         return userId;
     }

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

@@ -36,13 +36,17 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	void deleteCourseSchedules(List<Long> courseScheduleIds);
 
 	/**
-	 * @Author: Joburgess
-	 * @Date: 2019/10/16
-	 * @params [teacherAttendanceDto, userId]
-	 * @return YesOrNoEnum
 	 * @describe 判断该课程是否只能进行正常签到
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param teacherAttendanceDto: 教师签到信息
+	 * @param userId: 教师编号
+	 * @param checkSchool: 是否判断教学点
+	 * @return com.ym.mec.biz.dal.enums.YesOrNoEnum
 	 */
-	YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto, Long userId);
+	YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,
+										   Long userId,
+										   boolean checkSchool);
 
 	/**
 	 * @Author: Joburgess
@@ -263,4 +267,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * 老师上课提醒
 	 */
 	void teacherSignInRemind();
+
+	/**
+	 * @describe 获取班级的课程计划
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param classGroupId: 班级编号
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 */
+	List<CourseSchedule> findCourseScheduleByClassGroup(Integer classGroupId);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.util.Date;
 import java.util.Map;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -18,6 +19,14 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	public int updateMessage(SysMessage message);
 
 	/**
+	 * 推送站内消息
+	 * @param userIds
+	 * @param messageType
+	 * @return
+	 */
+	boolean batchSeoMessage(Set<Integer> userIds,MessageTypeEnum messageType, Object... args);
+
+	/**
 	 * 批量发送消息
 	 * @param messageSender 消息发送者
 	 * @param subject 消息主题

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.common.service.BaseService;
 
@@ -8,4 +9,6 @@ import java.util.List;
 public interface VipGroupCategoryService extends BaseService<Integer, VipGroupCategory> {
 
     List<VipGroupCategory> findAllByOrgan(Long organId);
-}
+
+    List<ConditionDto> findConditionCategorys();
+}

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -819,10 +819,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             throw new BizException("请指定课程编号");
         }
         List<StudentAttendanceViewDto> studentByCourse = classGroupStudentMapperDao.findStudentByCourse(courseScheduleId);
-        List<StudentAttendanceViewDto> leaveStudent = studentByCourse.stream().filter(studentAttendanceViewDto -> StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())).collect(Collectors.toList());
-        List<StudentAttendanceViewDto> notLeaveStudent = studentByCourse.stream().filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())).collect(Collectors.toList());
-        notLeaveStudent.addAll(leaveStudent);
-        return notLeaveStudent;
+        List<StudentAttendanceViewDto> leaveStudent = studentByCourse.stream()
+                .filter(studentAttendanceViewDto -> StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus()))
+                .collect(Collectors.toList());
+        List<StudentAttendanceViewDto> truantStudent = studentByCourse.stream()
+                .filter(studentAttendanceViewDto -> StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
+                .collect(Collectors.toList());
+        List<StudentAttendanceViewDto> otherStudent = studentByCourse.stream()
+                .filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())
+                                                &&!StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
+                .collect(Collectors.toList());
+        truantStudent.addAll(otherStudent);
+        truantStudent.addAll(leaveStudent);
+        return truantStudent;
     }
 
     @Override

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

@@ -85,7 +85,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		    throw new BizException("课程不存在");
         }
 
-		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue()));
+		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true));
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
@@ -102,7 +102,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,Long userId){
+	public YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,Long userId,boolean checkSchool){
 		Date endTime=teacherAttendanceDto.getStartClassTime();
 		Date startTime=DateUtil.addHours(endTime,-1);
 		TeacherAttendanceDto teacherCourseByDateSpeed = courseScheduleDao.getTeacherCourseByDateSpeed(startTime, endTime, userId);
@@ -110,7 +110,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			return YesOrNoEnum.NO;
 		}else{
 			int i = studentAttendanceDao.countByCourseSchedule(teacherCourseByDateSpeed.getCourseScheduleId());
-			if(i>0&&teacherAttendanceDto.getSchoolId().equals(teacherCourseByDateSpeed.getSchoolId())){
+			if(i>0&&checkSchool&&teacherAttendanceDto.getSchoolId().equals(teacherCourseByDateSpeed.getSchoolId())){
 				return YesOrNoEnum.YES;
 			}else{
 				return YesOrNoEnum.NO;
@@ -885,4 +885,25 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_ATTEND_CLASS_MESSAGE, receivers, null, 0, "", scheduleName);
 		}
 	}
+
+	@Override
+	public List<CourseSchedule> findCourseScheduleByClassGroup(Integer classGroupId) {
+		if(Objects.isNull(classGroupId)){
+			throw new BizException("请指定班级");
+		}
+		ClassGroup classGroup = classGroupDao.get(classGroupId);
+		if(Objects.isNull(classGroup)){
+			throw new BizException("指定的班级不存在");
+		}
+		List<Integer> classGroupIds=new ArrayList<>();
+		classGroupIds.add(classGroupId);
+		if(classGroup.getType().equals(ClassGroupTypeEnum.MIX)){
+			List<ClassGroup> mixClassChildClassGroup = classGroupDao.findMixClassChildClassGroup(classGroupId);
+			List<Integer> childClassGroupIds = mixClassChildClassGroup.stream()
+					.map(ClassGroup::getId)
+					.collect(Collectors.toList());
+			classGroupIds.addAll(childClassGroupIds);
+		}
+		return courseScheduleDao.findByClassGroups(classGroupIds);
+	}
 }

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

@@ -9,13 +9,17 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
 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.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+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.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -47,6 +51,8 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 	@Autowired
 	private MusicGroupQuitDao musicGroupQuitDao;
+	@Autowired
+	private SysMessageService sysMessageService;
 
 	@Override
 	public BaseDAO<Long, StudentAttendance> getDAO() {
@@ -168,6 +174,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		if(courseSchedule.getStatus() == CourseStatusEnum.OVER){
 			throw new BizException("课程已结束");
 		}
+
+		if(StringUtils.length(remark)>150){
+			throw new BizException("字符长度超限");
+		}
 		
 		Date date = new Date();
 		
@@ -302,6 +312,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			studentAttendance = new StudentAttendance();
 			ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
 			CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
+			Date date = new Date();
 			if(classGroup != null && courseSchedule != null){
 				studentAttendance.setClassGroupId(classGroup.getId());
 				studentAttendance.setCourseScheduleId(courseScheduleId.longValue());
@@ -310,10 +321,32 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 				studentAttendance.setStatus(statusEnum);
 				studentAttendance.setUserId(userId);
 				studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
-				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
+//				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
 				studentAttendanceDao.insert(studentAttendance);
+				//点名完成推送
+				Map<Integer, String> receivers = new HashMap<Integer, String>(1);
+				receivers.put(userId, userId.toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE, receivers, null, 0, "",
+						DateUtil.format(date,DateUtil.DATE_FORMAT_MIN));
+				//修改课程状态(如果是学生签到,并且课程未开始)
+				/*if(StudentAttendanceStatusEnum.NORMAL == statusEnum && courseSchedule.getStatus() == CourseStatusEnum.NOT_START){
+					courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
+					courseSchedule.setUpdateTime(date);
+					courseScheduleDao.update(courseSchedule);
+				}
+				if(StudentAttendanceStatusEnum.TRUANT == statusEnum && courseSchedule.getStatus() == CourseStatusEnum.UNDERWAY){
+					String classDate = DateUtil.getDate(courseSchedule.getClassDate());
+					String classTime = DateUtil.getTime(courseSchedule.getEndClassTime());
+					Date stringToDate = DateUtil.stringToDate(classDate + " " + classTime);
+					//当前课程已结束
+					if(DateUtil.minutesBetween(stringToDate,date) > 0){
+						courseSchedule.setStatus(CourseStatusEnum.OVER);
+						courseSchedule.setUpdateTime(date);
+						courseScheduleDao.update(courseSchedule);
+					}
+				}*/
 			}else {
-				throw new BizException("学员签到数据异常");
+				throw new BizException("学员班级或课程信息异常");
 			}
 		}
 	}

+ 34 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,12 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Random;
 
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -90,7 +85,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		SysMessage message = null;
 		Date date = new Date();
 
-		List<SysMessage> messages = new ArrayList<SysMessage>();
+		List<SysMessage> messages = new ArrayList<>();
 
 		Integer userId = null;
 		String receiver;
@@ -134,6 +129,38 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
+	public boolean batchSeoMessage(Set<Integer> userIds, MessageTypeEnum messageType, Object... args) {
+		if (userIds == null || userIds.size() == 0) {
+			throw new BizException("接收地址不能为空");
+		}
+		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(messageType);
+		if (messageConfig == null) {
+			throw new BizException("消息类型错误");
+		}
+		Date date = new Date();
+		SendStatusEnum status = SendStatusEnum.SUCCESSED;
+		String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
+		SysMessage message = null;
+
+		List<SysMessage> messages = new ArrayList<>();
+		for (Integer userId:userIds) {
+			message = new SysMessage();
+			message.setUserId(userId);
+			message.setContent(content);
+			message.setCreateOn(date);
+			message.setModifyOn(date);
+			message.setReceiver(userId.toString());
+			message.setSendTime(date);
+			message.setStatus(status);
+			message.setType(MessageSendMode.SEO);
+			message.setReadStatus(0);
+			messages.add(message);
+		}
+		sysMessageDao.batchInsert(messages);
+		return true;
+	}
+
+	@Override
 	@Async
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 									Integer readStatus, String memo) {

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

@@ -4,10 +4,7 @@ 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.ClassGroup;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
-import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.*;
@@ -45,6 +42,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private SysConfigDao sysConfigDao;
 	@Autowired
+	private SysConfigService sysConfigService;
+	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
 	private ClassGroupDao classGroupDao;
@@ -66,6 +65,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			throw new BizException("请选择课程!");
 		}
 
+		SysConfig byParamName = sysConfigService.findByParamName(SysConfigService.ADVANCE_SIGN_IN_MINUTES);
+		Integer advanceSignInMinutes=Integer.parseInt(byParamName.getParanValue());
+
 		Map<String,Object> result=new HashMap<>();
 
 		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(),teacherSignOutDto.getTeacherAttendanceInfo().getCourseScheduleId());
@@ -93,14 +95,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				throw new BizException("该课程已结束,不能进行签到!");
 			}
 
-			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue());
+			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true);
 
 			if(yesOrNoEnum==YesOrNoEnum.YES){
 				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
 				result.put("signInStatus",YesOrNoEnum.YES.getCode());
 			}else{
 				Long timeGap=(date.getTime()-currentCourseDetail.getStartClassTime().getTime())/1000/60;
-				if(timeGap<= ParamEnum.TEACHER_ATTENDANCE_TIME_GAP.getCode()){
+				if(timeGap<= advanceSignInMinutes){
 					teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
 					result.put("signInStatus",YesOrNoEnum.YES.getCode());
 				}else{
@@ -159,9 +161,13 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	public void addTeacherAttendanceRecord(Integer courseScheduleId, Integer userId, SignStatusEnum signStatus, boolean updateCourseScheduleStatus) {
 		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(userId.longValue(),courseScheduleId.longValue());
 		ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
+		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
 		boolean isAttendance=false;
 		Date now=new Date();
 
+		SysConfig byParamName = sysConfigService.findByParamName(SysConfigService.ADVANCE_SIGN_IN_MINUTES);
+		Integer advanceSignInMinutes=Integer.parseInt(byParamName.getParanValue());
+
 		if(Objects.isNull(teacherAttendance)){
 			teacherAttendance=new TeacherAttendance();
 			teacherAttendance.setTeacherId(userId);
@@ -171,10 +177,17 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}else{
 			isAttendance=true;
 		}
+
+		int timeGap = DateUtil.minutesBetween(now, courseSchedule.getStartClassTime());
+
 		switch (signStatus){
 			case SIGN_IN:
 				teacherAttendance.setSignInTime(now);
-				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+				if(advanceSignInMinutes<=timeGap&&timeGap<=60){
+					teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+				}else{
+					teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
+				}
 				int currentClassTimes = teacherAttendanceDao.countClassTime(classGroup.getId().longValue());
 				classGroup.setCurrentClassTimes(currentClassTimes);
 				if(updateCourseScheduleStatus){

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dto.ConditionDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -26,4 +27,9 @@ public class VipGroupCategoryServiceImpl extends BaseServiceImpl<Integer, VipGro
 	public List<VipGroupCategory> findAllByOrgan(Long organId) {
 		return vipGroupCategoryDao.findAllByOrgan(organId);
 	}
-}
+
+	@Override
+	public List<ConditionDto> findConditionCategorys() {
+		return vipGroupCategoryDao.findConditionCategorys();
+	}
+}

+ 11 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -188,6 +188,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
 		vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 		vipGroupApplyBaseInfoDto.setOrganId(sysUser.getOrganId());
+		//开课时间为排课的第一节课的开始时间
+		vipGroupApplyBaseInfoDto.setCourseStartDate(firstCourseSchedule.getStartClassTime());
 		//课程结束时间为排课的最后一节课的结束时间
 		vipGroupApplyBaseInfoDto.setCoursesExpireDate(latestCourseSchedule.getEndClassTime());
 		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
@@ -217,9 +219,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//创建融云班级群
 		// 指导老师加入群组
-//		ImGroupMember[] imGroupMembers = { new ImGroupMember(vipGroup.getVipGroupApplyBaseInfo().getUserId().toString())};
+		ImGroupMember[] imGroupMembers = { new ImGroupMember(vipGroup.getVipGroupApplyBaseInfo().getUserId().toString())};
 		// 创建群组
-//		imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+		imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 		//创建班级老师关联记录
 		ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
@@ -610,7 +612,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
 			switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
 				case TEACHER_DEFAULT:
-					if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary){
+					if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
+							&&vipGroupActivity.getSalaryReadonlyFlag().equals("0")){
 						teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
 					}
 
@@ -638,7 +641,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOfflineSalarySettlement())){
 			switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){
 				case TEACHER_DEFAULT:
-					if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary){
+					if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
+							&&vipGroupActivity.getSalaryReadonlyFlag().equals("0")){
 						teacherOfflineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOfflineTeacherSalary();
 					}
 					if(Objects.isNull(teacherOfflineSalary)){
@@ -744,6 +748,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.nonNull(byStudentVipGroup)){
 			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
 			studentPaymentOrderDao.update(byStudentVipGroup);
+			//更新班级人数,如果订单支付失败则减少
+			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
 		}
 
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
@@ -785,9 +791,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentVipGroupPayment.setStudentPaymentOrderId(studentPaymentOrder.getId());
 		studentVipGroupPaymentDao.insert(studentVipGroupPayment);
 
-		//更新班级人数,如果订单支付失败则减少
-		updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
-
 		//生成回调地址
 		Map payMap = payService.getPayMap(
 				vipGroup.getTotalPrice(),
@@ -838,7 +841,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			sysUserExpendCashAccountDetail.setUserId(userId);
 			sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
 			sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserExpendCashAccountDetail.setAmount(order.getActualAmount());
+			sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
 			sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
 			sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
 

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -679,4 +679,12 @@
             LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cs.id_=#{courseScheduleId}
     </select>
+    <select id="findClassGroupsByMixClassGroup" resultMap="ClassGroup">
+        SELECT
+            cg.*
+        FROM
+            class_group_relation cgr
+        LEFT JOIN class_group cg ON cgr.sub_class_group_id_=cg.id_
+        WHERE cgr.class_group_id_=#{maxCourseScheduleId}
+    </select>
 </mapper>

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1161,5 +1161,13 @@
         WHERE cs.class_date_=DATE_FORMAT(#{date},'%Y-%m-%d %H:%i:%s')
         AND cs.type_!='VIP'
     </select>
-    
+    <select id="findByClassGroup" resultMap="CourseSchedule">
+      select * from  course_schedule where class_group_id_=#{classGroupId}
+    </select>
+    <select id="findByClassGroups" resultMap="CourseSchedule">
+        select * from  course_schedule where class_group_id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+            #{classGroupId}
+        </foreach>
+    </select>
 </mapper>

+ 9 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -107,9 +107,15 @@
         UPDATE music_group_subject_plan SET expected_student_num_ = #{expectedStudentNum},update_time_ = now() WHERE id_ = #{musicGroupSubjectPlanId}
     </update>
 
-    <update id="batchUpdateFee">
-        <foreach collection="plans" item="item" separator=";">
-            UPDATE music_group_subject_plan SET fee_ = #{item.fee},update_time_ = now() WHERE id_ = #{item.id}
+    <update id="batchUpdateFee" parameterType="java.util.List">
+        <foreach collection="plans" item="item" index="index" open="" close="" separator=";">
+            UPDATE music_group_subject_plan
+            <set>
+                fee_ = #{item.fee},update_time_ = now()
+            </set>
+            <where>
+                id_ = #{item.id}
+            </where>
         </foreach>
     </update>
 

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -118,6 +118,7 @@
         SELECT sr.user_id_,su.username_ real_name_,su.gender_,sr.parents_name_,sr.parents_phone_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        <include refid="findStudentsByOrganIdSql"/>
         <include refid="global.limit"/>
     </select>
     <sql id="findStudentsByOrganIdSql">
@@ -147,7 +148,7 @@
         sr.parents_phone_,sr.current_class_,sr.current_grade_
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%')
+        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%') LIMIT 1
     </select>
 
     <select id="findGoodsNamesByIds" resultType="string">
@@ -227,7 +228,7 @@
 
     <select id="countStudentCourses" resultType="int">
         SELECT count(*) FROM class_group cg
-        LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
+        LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
         <if test="vipGroupId!=null">
             LEFT JOIN vip_group_class_group_mapper vgcgm ON cgsm.class_group_id_=vgcgm.class_group_id_
         </if>
@@ -436,4 +437,4 @@
         WHERE (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX') AND sa.music_group_id_ = #{search}
     </select>
 
-</mapper>
+</mapper>

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

@@ -124,7 +124,7 @@
 	<select id="queryPage" resultMap="VipGroupActivity" parameterType="map">
 		SELECT
 		vga.*,
-		(NOW() &lt; end_time_) enable,
+		(NOW() &lt; end_time_ AND NOW() > start_time_) enable,
 		GROUP_CONCAT(vgc.name_) vip_group_category_names_
 		FROM vip_group_activity vga
 		LEFT JOIN vip_group_category vgc ON FIND_IN_SET(vgc.id_,vga.vip_group_category_id_list_)

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml

@@ -93,4 +93,7 @@
 		SELECT COUNT(*) FROM
 		vip_group_category
 	</select>
+	<select id="findConditionCategorys" resultType="com.ym.mec.biz.dal.dto.ConditionDto">
+      	select id_ id,name_ `name` from vip_group_category where del_flag_ = 0
+    </select>
 </mapper>

+ 8 - 4
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -35,6 +35,7 @@
         <result column="give_teach_mode_" property="giveTeachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="organ_id_" property="organId"/>
         <result column="stop_reason_" property="stopReason"/>
+        <result column="courses_start_date" property="courseStartDate"/>
     </resultMap>
     
     <resultMap type="com.ym.mec.biz.dal.entity.School" id="School">
@@ -170,8 +171,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -274,6 +275,9 @@
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>
+            <if test="categoryId!=null">
+                AND FIND_IN_SET(vg.vip_group_category_id_,#{categoryId})
+            </if>
             <if test="classType!=null and classType.toString()=='0'.toString()">
                 AND vg.offline_classes_num_>0
             </if>
@@ -454,7 +458,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             LEFT JOIN class_group_student_mapper cgsm ON vgcgm.class_group_id_=cgsm.class_group_id_
             LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-        WHERE vgcgm.id_=#{vipGroupId}
+        WHERE vgcgm.vip_group_id_=#{vipGroupId}
         ORDER BY su.id_
         <include refid="global.limit"/>
     </select>
@@ -466,7 +470,7 @@
         vip_group_class_group_mapper vgcgm
         LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
         LEFT JOIN class_group_student_mapper cgsm ON vgcgm.class_group_id_=cgsm.class_group_id_
-        WHERE vgcgm.id_=#{vipGroupId}
+        WHERE vgcgm.vip_group_id_=#{vipGroupId}
     </select>
 
     <resultMap id="teachingRecord" type="com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto">

+ 4 - 8
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -82,13 +82,6 @@ public class RoomServiceImpl implements RoomService {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
-    /*private AuthUser getUser(){
-        String token = SecurityUtils.getToken();
-        String principal = SecurityUtils.getPrincipal().toString();
-        String json = redisTemplate.opsForValue().get(principal);
-        return JSON.parseObject(json,AuthUser.class);
-    }*/
-
     @Transactional
     @Override
     public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
@@ -239,9 +232,12 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Override
     public Boolean leaveRoom(String roomId) throws Exception {
-        String token = SecurityUtils.getAuthenticationValue();
         SysUser user = sysUserFeignService.queryUserInfo();
         String userId = user.getId().toString();
+        Teacher teacher = teacherDao.get(user.getId());
+        if(teacher != null){
+            teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),user.getId(), SignStatusEnum.SIGN_OUT,true);
+        }
         
         CheckUtils.checkArgument(user != null, "user must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");

+ 4 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentVipGroupController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.QueryConditionDto;
 import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
 import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
 import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 
@@ -38,12 +39,15 @@ public class StudentVipGroupController extends BaseController {
     private SubjectService subjectService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private VipGroupCategoryService vipGroupCategoryService;
 
     @ApiOperation(value = "获取vip课列表筛选条件")
     @GetMapping(value = "/findQueryCondition")
     public Object findQueryCondition(){
         List<QueryConditionDto> conditions=new ArrayList<>();
         conditions.add(new QueryConditionDto("乐器选择","subjectId",subjectService.findSubjectConditions()));
+        conditions.add(new QueryConditionDto("课程类型","categoryId",vipGroupCategoryService.findConditionCategorys()));
         List<ConditionDto> conditionDtos=new ArrayList<>();
         conditionDtos.add(new ConditionDto(0L,"线下"));
         conditionDtos.add(new ConditionDto(1L,"线上"));

+ 17 - 3
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -3,7 +3,6 @@ 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.dao.ClassGroupTeacherMapperDao;
-import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CreateCourseScheduleDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
@@ -121,9 +120,17 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "课时调整")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/classStartDateAdjust')")
     @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
+    public Object classStartDateAdjust(CourseSchedule courseSchedule){
         List<CourseSchedule> courseSchedules=new ArrayList<>();
-        courseSchedules.add(classDateAdjustDto);
+        courseSchedules.add(courseSchedule);
+        scheduleService.classStartDateAdjust(courseSchedules);
+        return succeed();
+    }
+
+    @ApiOperation(value = "课时调整-批量")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchClassStartDateAdjust')")
+    @PostMapping(value = "/batchClassStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object batchClassStartDateAdjust(List<CourseSchedule> courseSchedules){
         scheduleService.classStartDateAdjust(courseSchedules);
         return succeed();
     }
@@ -171,4 +178,11 @@ public class CourseScheduleController extends BaseController {
 		return succeed(musicGroupService.queryTeacherSalary(courseScheduleId));
 	}
 
+    @ApiOperation(value = "根据班级获取课程计划")
+    @GetMapping("/findCourseScheduleByClassGroup")
+    @PreAuthorize("@pcs.hasPermissions('course/findCourseScheduleByClassGroup')")
+	public Object findCourseScheduleByClassGroup(Integer classGroupId){
+        return succeed(scheduleService.findCourseScheduleByClassGroup(classGroupId));
+    }
+
 }

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

@@ -44,7 +44,7 @@ public class MusicGroupSubjectPlanController extends BaseController {
     }
 
     @ApiOperation(value = "修改乐团声部规划费用")
-    @GetMapping("/batchUpdateFee")
+    @PostMapping("/batchUpdateFee")
     @PreAuthorize("@pcs.hasPermissions('musicGroupSubjectPlan/batchUpdateFee')")
     public Object batchUpdateFee(@RequestBody List<MusicGroupSubjectPlan> musicGroupSubjectPlans) {
         return succeed(musicGroupSubjectPlanService.batchUpdateFee(musicGroupSubjectPlans));