瀏覽代碼

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

zouxuan 5 年之前
父節點
當前提交
caf739a541
共有 29 個文件被更改,包括 542 次插入383 次删除
  1. 1 0
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  2. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  4. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesDao.java
  5. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentExtracurricularExercisesSituation.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesService.java
  7. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  8. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java
  9. 319 317
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  10. 6 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  11. 15 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  14. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  15. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  16. 40 26
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  17. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  19. 14 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  20. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  21. 8 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  22. 0 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  23. 7 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  24. 25 0
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  25. 1 3
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  26. 4 4
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  27. 8 4
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  28. 10 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java
  29. 7 3
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

+ 1 - 0
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -45,6 +45,7 @@ public class NewsController extends BaseController {
 	@ApiOperation("资讯列表分页查询")
 	@GetMapping(value = "/homeList")
 	public Object getHomeList(NewsInformationQueryInfo queryInfo) {
+		queryInfo.setRows(5);
 		SysUser user = sysUserFeignService.queryUserInfo();
 		return succeed(sysNewsInformationService.getHomeList(user, queryInfo));
 	}

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

@@ -708,10 +708,19 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取进行中乐团报名中基础技能班
+     *
      * @param musicGroupId
      * @param subjectId
      * @param type
      * @return
      */
     List<HighClassGroupDto> findHighClassGroupByTypeAndSubjectId(@Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId, @Param("type") String type);
+
+    /**
+     * 根据班级id获取基础技能班
+     * @param musicGroupId
+     * @param classGroupIds
+     * @return
+     */
+    List<HighClassGroupDto> findHighClassGroup(@Param("musicGroupId") String musicGroupId, @Param("classGroupIds") String classGroupIds);
 }

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

@@ -470,4 +470,11 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
      * @return java.util.List<java.util.Map<java.lang.Long,java.util.Date>>
      */
     List<Map<Long, String>> getCoursesSettlementTime(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+	/**
+	 * 获取课程是否有课酬
+	 * @param courseScheduleIds
+	 * @return
+	 */
+	int getHasTeacherSalaryCount(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
@@ -23,4 +24,17 @@ public interface ExtracurricularExercisesDao extends BaseDAO<Long, Extracurricul
                              @Param("studentIdList") String studentIdList,
                              @Param("content") String content);
 
+    /**
+     * @describe 获取教师在指定时间后未服务的学员
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param teacherId:
+     * @param startDate:
+     * @param search:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> findNoExercisesStudentsInThisWeekWithTeacher(@Param("teacherId") Integer teacherId,
+                                                                     @Param("startDate") String startDate,
+                                                                     @Param("search") String search);
+
 }

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

@@ -50,6 +50,16 @@ public class StudentExtracurricularExercisesSituation {
 
 	private Date lastSubmitTime;
 
+	private String serveType;
+
+	public String getServeType() {
+		return serveType;
+	}
+
+	public void setServeType(String serveType) {
+		this.serveType = serveType;
+	}
+
 	public Date getLastSubmitTime() {
 		return lastSubmitTime;
 	}

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.common.service.BaseService;
@@ -27,4 +28,13 @@ public interface ExtracurricularExercisesService extends BaseService<Long, Extra
      */
     List<Map<String, Object>> findExtraExercilses(ExtraExercilseQueryInfo queryInfo);
 
+    /**
+     * @describe 获取待布置学员列表
+     * @author Joburgess
+     * @date 2020.05.28
+     * @param search:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+     */
+    List<SimpleUserDto> getDontServeStudents(Integer teacherId, String search);
+
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -18,6 +18,7 @@ import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.page.PageInfo;
@@ -204,7 +205,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param musicGroupId
 	 * @return
 	 */
-	MusicGroup openPay(String musicGroupId, String expireDate) throws Exception;
+	MusicGroup openPay(String musicGroupId, String expireDate, FeeType feeType) throws Exception;
 
 	/**
 	 * 获取乐团详情
@@ -274,7 +275,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 乐团筹备结束后,3.0乐团推送小班课缴费信息
 	 * @param musicGroupId
 	 */
-	void pushMessage(String musicGroupId, Set<Integer> classGroupIds) throws IOException;
+	void pushMessage(String musicGroupId, String classGroupIds) throws IOException;
 
 	/**
 	 * 补全musicGroupStudentFee表数据

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

@@ -304,4 +304,5 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
      * @return
      */
     boolean isPurchasedPracticeCourse(Integer userId);
+
 }

文件差異過大導致無法顯示
+ 319 - 317
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java


+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -245,9 +245,12 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                         salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
                     }
                 }
-                if(StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
-                	throw new BizException("请设置老师默认课酬");
-                }
+				if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)
+						|| classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK)) {
+					if (StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())) {
+						throw new BizException("请设置老师默认课酬");
+					}
+				}
                 //线上小班课
                 if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
                     Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());

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

@@ -2654,9 +2654,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							}
 							ts.setExpectSalary(salary);
 						}
-	                    if(StringUtils.isBlank(tdms.getSalaryRuleJson())){
-	                    	throw new BizException("请设置老师默认课酬");
-	                    }
+
+						if((newCourseSchedule.getType() == CourseScheduleType.HIGH_ONLINE ||
+								newCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK)) &&
+										StringUtils.isBlank(tdms.getSalaryRuleJson())
+								){
+								throw new BizException("请设置老师默认课酬");
+						}
+
 						//线上小班课
 						if(newCourseSchedule.getType() == CourseScheduleType.HIGH_ONLINE){
 							Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(ts.getClassGroupId());
@@ -4194,11 +4199,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			throw new BizException("课程有效时间不能早于开始时间");
 		}
 
-		LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
-		LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
-		Date courseExpiredDateTemp=Date.from(currentExpiredDay.atStartOfDay(DateUtil.zoneId).toInstant());
-		if(coursesExpireDate.before(courseExpiredDateTemp)){
-			throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
+		if(Objects.nonNull(practiceGroup.getBuyMonths())){
+			LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
+			LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
+			Date courseExpiredDateTemp=Date.from(currentExpiredDay.atStartOfDay(DateUtil.zoneId).toInstant());
+			if(coursesExpireDate.before(courseExpiredDateTemp)){
+				throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
+			}
 		}
 
 		practiceGroup.setCoursesExpireDate(DateUtil.addSeconds(DateUtil.addDays(coursesExpireDate, 1),-1));

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

@@ -414,7 +414,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         teacherAttendanceDao.batchInsert(teacherAttendances);
 
         try {
-            courseScheduleService.checkNewCourseSchedulesWithoutMusicGroup(practiceCourses,false);
+            courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage=new String();
@@ -1090,7 +1090,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         teacherAttendanceDao.batchInsert(teacherAttendances);
 
         try {
-            courseScheduleService.checkNewCourseSchedulesWithoutMusicGroup(practiceCourses,false);
+            courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage;

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

@@ -138,7 +138,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 			throw new BizException("作业不存在");
 		}
 		Date now=new Date();
-		if (DateUtil.daysBetween(extracurricularExercises.getCreateTime(), now)>14){
+		if (DateUtil.daysBetween(extracurricularExercises.getCreateTime(), now)>=14){
 			throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
 		}
 		existExtra.setAttachments(extracurricularExercisesReply.getAttachments());

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.Teacher;
@@ -24,6 +25,8 @@ import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.time.DayOfWeek;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -155,4 +158,11 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 		}
 		return result;
 	}
+
+	@Override
+	public List<SimpleUserDto> getDontServeStudents(Integer teacherId, String search) {
+		LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
+		LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+		return extracurricularExercisesDao.findNoExercisesStudentsInThisWeekWithTeacher(teacherId, monDayDate.toString(), search);
+	}
 }

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

@@ -112,7 +112,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
 				// 创建缴费明细
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
-					if (mgsf.getTemporaryCourseFee().doubleValue() * 100 != 0) {
+					if (mgsf.getPaymentStatus() != PaymentStatus.PAID_COMPLETED) {
 						continue;
 					}
 					musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
@@ -240,6 +240,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				Set<Integer> studentIds = new HashSet<Integer>();
 				// 创建缴费明细
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
+					if (mgsf.getPaymentStatus() != PaymentStatus.PAID_COMPLETED) {
+						continue;
+					}
 					musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 					musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(mgpc.getId());
 					musicGroupPaymentCalenderDetail.setCreateTime(date);

+ 40 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -940,15 +940,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 //        updateTeamTeacher(musicGroup, musicGroup);
         //生成学员费用表
-		List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
-		if (musicGroupStudentFees != null && musicGroupStudentFees.size() > 0) {
-			if (musicGroup.getFeeType() != FeeType.OFFLINE) {
-				for (MusicGroupStudentFee sf : musicGroupStudentFees) {
-					sf.setRemainNetworkClassTimes(sf.getRemainNetworkClassTimes() + 1);
-				}
-			}
-			musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees, null, "PAID_COMPLETED");
-		}
+        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+        if (musicGroupStudentFees != null && musicGroupStudentFees.size() > 0) {
+            if (musicGroup.getFeeType() != FeeType.OFFLINE) {
+                for (MusicGroupStudentFee sf : musicGroupStudentFees) {
+                    sf.setRemainNetworkClassTimes(sf.getRemainNetworkClassTimes() + 1);
+                }
+            }
+            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees, null, "PAID_COMPLETED");
+        }
         musicGroupStudentFeeDao.batchUpdateCalenders(musicGroupId);
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "确认开团(筹备中 -> 进行中)", sysUser.getId(), ""));
@@ -1041,21 +1041,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public void pushMessage(String musicGroupId,Set<Integer> classGroupIds) throws IOException {
+    public void pushMessage(String musicGroupId, String classGroupIds) throws IOException {
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
-            //是否有基础训练班
-            Integer num = classGroupDao.countClassNumByType(musicGroupId);
-            if (num != null && num > 0) {
-                Map<Integer, String> studentMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findIdMapByMusicGroupId(musicGroupId, 2))), HashMap.class);
-                if (studentMap != null && studentMap.size() > 0) {
-                    String baseURL = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
-                    String url = baseURL + "/#/smallRegister?musicGroupId=" + musicGroupId;
-                    String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-                    sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
-                            studentMap, null, 0, "5?" + url, "STUDENT", musicGroup.getName(), HttpUtil.getSortUrl(url), serverPhone);
-                }
+            List<HighClassGroupDto> highClassGroup = classGroupDao.findHighClassGroup(musicGroupId, classGroupIds);
+            Set<ClassGroupTypeEnum> classGroupTypeSet = highClassGroup.stream().map(HighClassGroupDto::getType).collect(Collectors.toSet());
+
+            List<StudentRegistration> students = new ArrayList<>();
+            if (classGroupTypeSet.contains(ClassGroupTypeEnum.HIGH)) {
+                List<StudentRegistration> noHighClassGroupStudents = studentRegistrationService.findMusicGroupStuNoClassType(musicGroupId, ClassGroupTypeEnum.HIGH, null);
+                students.addAll(noHighClassGroupStudents);
             }
+            if (classGroupTypeSet.contains(ClassGroupTypeEnum.HIGH_ONLINE)) {
+                List<StudentRegistration> noHighOnlineClassGroupStudents = studentRegistrationService.findMusicGroupStuNoClassType(musicGroupId, ClassGroupTypeEnum.HIGH_ONLINE, null);
+                students.addAll(noHighOnlineClassGroupStudents);
+            }
+            if (students.size() == 0) {
+                return;
+            }
+            Map<Integer, String> studentMap = new HashMap<>();
+            for (StudentRegistration student : students) {
+                studentMap.put(student.getUserId(), student.getUserId().toString());
+            }
+
+            String baseURL = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+            String url = baseURL + "/#/smallRegister?musicGroupId=" + musicGroupId;
+            String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
+                    studentMap, null, 0, "5?" + url, "STUDENT", musicGroup.getName(), HttpUtil.getSortUrl(url), serverPhone);
         }
     }
 
@@ -1370,9 +1383,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //更新学员在班级的状态
             for (Integer classGroupId : classGroupIdList) {
                 ClassGroup classGroup = classGroupService.get(classGroupId);
-                if(classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)){
+                if (classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)) {
                     classGroupService.delSingle(classGroupId);
-                }else {
+                } else {
                     classGroupStudentMapperService.delClassGroupStudent(userId, classGroupId);
                 }
             }
@@ -1471,9 +1484,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
         for (Integer classGroupId : classGroupIdList) {
             ClassGroup classGroup = classGroupService.get(classGroupId);
-            if(classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)){
+            if (classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)) {
                 classGroupService.delSingle(classGroupId);
-            }else {
+            } else {
                 classGroupStudentMapperService.delClassGroupStudent(userId, classGroupId);
             }
         }
@@ -2093,7 +2106,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public MusicGroup openPay(String musicGroupId, String expireDate) throws Exception {
+    public MusicGroup openPay(String musicGroupId, String expireDate, FeeType feeType) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
@@ -2102,6 +2115,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "开启缴费(报名中 -->  缴费中)", sysUser.getId(), ""));
         musicGroup.setPaymentExpireDate(DateUtil.toDate(expireDate));
+        musicGroup.setFeeType(feeType);
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroupDao.update(musicGroup);
         //三方乐团不发送缴费通知

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

@@ -1793,7 +1793,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         SysUser sysUser = sysUserFeignService.queryUserById(practiceGroup.getStudentId());
 
         practiceGroup.setCoursesStartDate(allCourseDates.get(0));
-        practiceGroup.setCoursesExpireDate(courseExpireDate);
+        practiceGroup.setCoursesExpireDate(allCourseDates.get(3));
         Teacher teacher = teacherService.getDetail(practiceGroup.getUserId());
         if (Objects.isNull(teacher)) {
             throw new BizException("老师不存在");
@@ -3016,8 +3016,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         teacherAttendanceDao.batchInsert(teacherAttendances);
 
         try {
-//            courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
-            courseScheduleService.checkNewCourseSchedulesWithoutMusicGroup(practiceCourses,false);
+            courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
+//            courseScheduleService.checkNewCourseSchedulesWithoutMusicGroup(practiceCourses,false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage=new String();

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

@@ -95,7 +95,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
             throw new BizException("作业不存在");
         }
         Date now=new Date();
-        if (DateUtil.daysBetween(existHomework.getCreateTime(), now)>14){
+        if (DateUtil.daysBetween(existHomework.getCreateTime(), now)>=14){
             throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
         }
 

+ 14 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -17,6 +17,8 @@ import javax.annotation.Resource;
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -654,9 +656,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrder.setActualAmount(reduce);
                 studentPaymentOrder.setPayTime(date);
             }
-            musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
+            MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(musicGroupId,
                     userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
-                    null, studentAddDto.getTemporaryCourseFee(), paymentStatus));
+                    null, studentAddDto.getTemporaryCourseFee(), paymentStatus);
+            if(musicGroup.getFeeType() != FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0){
+            	musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
+            }
+            musicGroupStudentFeeDao.insert(musicGroupStudentFee);
 //            musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
 //                    userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
 //                    nextPaymentDate, studentAddDto.getTemporaryCourseFee(), paymentStatus));
@@ -794,6 +800,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
+
+            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+            
             if (studentRegistration.getTemporaryCourseFee() != null) {
                 studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
             }
@@ -811,6 +820,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 musicGroupStudentFee.setLatestPaidTime(nowDate);
                 musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
                 musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
+                if(musicGroup.getFeeType() != FeeType.OFFLINE){
+                	musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
+                }
                 musicGroupStudentFee.setUpdateTime(nowDate);
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
                 //添加学生
@@ -854,8 +866,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
 
             sysUserCashAccountDetailService.insert(paymentDetail);
-
-            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
             //三方乐团不发送缴费通知
             if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
                 //发送缴费成功通知(短信 + push)

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

@@ -110,6 +110,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             studentExtracurricularExercisesSituation.setSunday(DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"));
 
             if(haveClassStudentIds.contains(serviceStudent.getUserId())){
+                studentExtracurricularExercisesSituation.setServeType("HOMEWORK");
                 List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(serviceStudent.getUserId());
                 if(CollectionUtils.isEmpty(studentHomeworks)){
                     studentExtracurricularExercisesSituation.setActualExercisesNum(0);
@@ -147,6 +148,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             }
 
             if(noClassStudentIds.contains(serviceStudent.getUserId())){
+                studentExtracurricularExercisesSituation.setServeType("EXERCISE");
                 List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(serviceStudent.getUserId());
                 if(CollectionUtils.isEmpty(studentExercises)){
                     studentExtracurricularExercisesSituation.setActualExercisesNum(0);

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

@@ -1283,4 +1283,12 @@
         </if>
         AND type_ = #{type} AND total_class_times_=0 AND del_flag_='0';
     </select>
+
+    <select id="findHighClassGroup" resultMap="HighClassGroup">
+        SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId}
+        <if test="classGroupIds != null">
+            AND FIND_IN_SET(id_,#{classGroupIds})
+        </if>
+        AND type_ IN ('HIGH','HIGH_ONLINE') AND del_flag_ = '0'
+    </select>
 </mapper>

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

@@ -2461,7 +2461,6 @@
         FROM course_schedule_teacher_salary csts
                  LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-          AND cs.group_type_ != 'MUSIC'
           AND cs.class_date_ BETWEEN DATE_FORMAT(#{startTime}, "%Y-%m-%d") AND DATE_FORMAT(#{endTime}, "%Y-%m-%d")
           AND csts.user_id_ = #{userId}
     </select>

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -951,4 +951,11 @@
 		</foreach>
 		GROUP BY course_schedule_id_;
 	</select>
+    <select id="getHasTeacherSalaryCount" resultType="int">
+		SELECT COUNT(*) FROM course_schedule_teacher_salary
+		WHERE course_schedule_id_ IN
+		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+			#{courseScheduleId}
+		</foreach>
+	</select>
 </mapper>

+ 25 - 0
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -160,4 +160,29 @@
 			AND content_ = #{content}
 		ORDER BY create_time_ DESC LIMIT 1
 	</select>
+    <select id="findNoExercisesStudentsInThisWeekWithTeacher"
+            resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
+		SELECT
+			su.id_ userId,
+			su.username_ userName,
+			su.avatar_ avatar,
+			GROUP_CONCAT(sub.name_) subjectNames
+		FROM
+			student_extracurricular_exercises_situation_ sees
+			LEFT JOIN extracurricular_exercises_reply eer ON sees.student_id_ = eer.user_id_
+			AND DATE_FORMAT( eer.create_time_, '%Y-%m-%d' ) &gt;= #{startDate}
+			LEFT JOIN student stu ON stu.user_id_ = sees.student_id_
+			LEFT JOIN sys_user su ON su.id_ = sees.student_id_
+			LEFT JOIN `subject` sub ON FIND_IN_SET( sub.id_, stu.subject_id_list_ )
+		WHERE
+			sees.monday_ = #{startDate}
+			AND sees.teacher_id_ = #{teacherId}
+			AND eer.id_ IS NULL
+			<if test="search!=null">
+				AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT(#{search}, '%'))
+			</if>
+		GROUP BY su.id_
+		ORDER BY
+			su.id_;
+	</select>
 </mapper>

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

@@ -78,9 +78,7 @@
 			<if test="status != null">
 				status_ = #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
-			<if test="repairUserId != null">
-				repair_user_id_ = #{repairUserId},
-			</if>
+			repair_user_id_ = #{repairUserId},
 			<if test="organId != null">
 				organ_id_ = #{organId},
 			</if>

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

@@ -42,15 +42,15 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentFee" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-		INSERT INTO music_group_student_fee_ (id_,music_group_id_,user_id_,course_fee_,create_time_,update_time_,next_payment_date_,latest_paid_time_,continuous_absenteeism_times_,subject_id_,payment_status_,temporary_course_fee_,payment_period_list_)
-		VALUES(#{id},#{musicGroupId},#{userId},#{courseFee},now(),now(),#{nextPaymentDate},#{latestPaidTime},#{continuousAbsenteeismTimes},#{subjectId},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{temporaryCourseFee},#{paymentPeriodList})
+		INSERT INTO music_group_student_fee_ (id_,music_group_id_,user_id_,course_fee_,create_time_,update_time_,next_payment_date_,latest_paid_time_,continuous_absenteeism_times_,subject_id_,payment_status_,temporary_course_fee_,payment_period_list_,remain_network_class_times_)
+		VALUES(#{id},#{musicGroupId},#{userId},#{courseFee},now(),now(),#{nextPaymentDate},#{latestPaidTime},#{continuousAbsenteeismTimes},#{subjectId},#{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{temporaryCourseFee},#{paymentPeriodList},#{remainNetworkClassTimes})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentFee">
-        INSERT INTO music_group_student_fee_ (music_group_id_,user_id_,create_time_,update_time_,next_payment_date_,subject_id_,payment_status_,course_fee_,payment_period_list_)
+        INSERT INTO music_group_student_fee_ (music_group_id_,user_id_,create_time_,update_time_,next_payment_date_,subject_id_,payment_status_,course_fee_,payment_period_list_,remain_network_class_times_)
 		VALUES
 		<foreach collection="musicGroupStudentFees" item="item" separator=",">
-            (#{item.musicGroupId},#{item.userId},NOW(),NOW(),#{nextPaymentDate},#{item.subjectId},#{paymentStatus},#{item.courseFee},#{item.paymentPeriodList})
+            (#{item.musicGroupId},#{item.userId},NOW(),NOW(),#{nextPaymentDate},#{item.subjectId},#{paymentStatus},#{item.courseFee},#{item.paymentPeriodList},#{item.remainNetworkClassTimes})
         </foreach>
     </insert>
 

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

@@ -21,6 +21,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="last_submit_time_" property="lastSubmitTime"/>
+		<result column="serve_type_" property="serveType"/>
 	</resultMap>
 
 	<resultMap id="StudentExercisesSituationDto" type="com.ym.mec.biz.dal.dto.StudentExercisesSituationDto" extends="StudentExtracurricularExercisesSituation">
@@ -47,15 +48,15 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
-		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime})
+		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
+		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType})
 	</insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_)
+		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
 		VALUES
 		<foreach collection="situations" item="situation" separator=",">
-			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime})
+			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType})
 		</foreach>
 	</insert>
 
@@ -102,6 +103,9 @@
 			<if test="lastSubmitTime!=null">
 				last_submit_time_=#{lastSubmitTime}
 			</if>
+			<if test="serveType!=null">
+				serve_type_=#{serveType}
+			</if>
 			update_time_ = #{updateTime}
 		</set> WHERE id_ = #{id}
 	</update>

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

@@ -66,4 +66,14 @@ public class ExtracurricularExercisesController extends BaseController {
         }
         return succeed(extracurricularExercisesReplyService.findStudentExtraExerciseDetail(studentExerciseId));
     }
+
+    @ApiOperation(value = "获取待布置学员列表")
+    @GetMapping("/getDontServeStudents")
+    public HttpResponseResult getDontServeStudents(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        return succeed(extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search));
+    }
 }

+ 7 - 3
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -6,18 +6,22 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 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.*;
+
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -130,7 +134,7 @@ public class MusicGroupController extends BaseController {
 	@ApiOperation(value = "乐团筹备结束后,3.0乐团推送小班课缴费信息")
 	@PostMapping("/pushMessage")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/pushMessage')")
-	public Object pushMessage(String musicGroupId,Set<Integer> classGroupIds) throws Exception {
+	public Object pushMessage(String musicGroupId,String classGroupIds) throws Exception {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null || sysUser.getId() == null) {
 			return failed("获取用户信息失败");
@@ -157,8 +161,8 @@ public class MusicGroupController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/openPay')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "expireDate", value = "截止缴费日期", required = true, dataType = "String") })
-	public Object openPay(String musicGroupId, String expireDate) throws Exception {
-		return succeed(musicGroupService.openPay(musicGroupId, expireDate));
+	public Object openPay(String musicGroupId, String expireDate, FeeType feeType) throws Exception {
+		return succeed(musicGroupService.openPay(musicGroupId, expireDate, feeType));
 	}
 
 	@ApiOperation(value = "确认开团(缴费中(报名中) -->  筹备中)")

部分文件因文件數量過多而無法顯示