浏览代码

系统收费作业部分

zouxuan 4 年之前
父节点
当前提交
abc0524305
共有 22 个文件被更改,包括 189 次插入104 次删除
  1. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesDao.java
  2. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkStudentDetailDto.java
  3. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDto.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java
  5. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercisesMessage.java
  6. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesService.java
  8. 39 56
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  9. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  10. 4 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  12. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java
  13. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  14. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 16 10
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  16. 1 0
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMessageMapper.xml
  17. 20 15
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  18. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  19. 0 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseScheduleTeacherSalaryController.java
  20. 4 4
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java
  21. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  22. 2 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSchoolTermCourseDetailController.java

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

@@ -39,6 +39,7 @@ public interface ExtracurricularExercisesDao extends BaseDAO<Long, Extracurricul
                                                                     @Param("musicGroupId") String musicGroupId,
                                                                     @Param("classGroupId") Long classGroupId,
                                                                     @Param("subjectId") Integer subjectId,
-                                                                    @Param("search") String search);
+                                                                    @Param("search") String search,
+                                                                    @Param("hasMember") Integer hasMember);
 
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkStudentDetailDto.java

@@ -57,8 +57,40 @@ public class CourseHomeworkStudentDetailDto {
 
     private String teacherName;
 
+    @ApiModelProperty(value = "伴奏编号",required = false)
+    private Integer musicScoreId;
+
+    private String musicScoreName;
+
     private String type;
 
+    @ApiModelProperty(value = "是否有会员",required = false)
+    private Integer hasMember;
+
+    public Integer getHasMember() {
+        return hasMember;
+    }
+
+    public void setHasMember(Integer hasMember) {
+        this.hasMember = hasMember;
+    }
+
+    public Integer getMusicScoreId() {
+        return musicScoreId;
+    }
+
+    public void setMusicScoreId(Integer musicScoreId) {
+        this.musicScoreId = musicScoreId;
+    }
+
+    public String getMusicScoreName() {
+        return musicScoreName;
+    }
+
+    public void setMusicScoreName(String musicScoreName) {
+        this.musicScoreName = musicScoreName;
+    }
+
     public String getType() {
         return type;
     }

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

@@ -98,10 +98,21 @@ public class TeacherAttendanceDto {
     @ApiModelProperty(value = "是否已经发送过到课提醒:0否,1已发送")
     private int normalRemind;
 
+    @ApiModelProperty(value = "是否有会员:0否,1已发送")
+    private int hasMember;
+
     private Integer enableStudentAttendanceTimeRange;
 
     private Integer enableStudentAttendanceTimeRangeVip;
 
+    public int getHasMember() {
+        return hasMember;
+    }
+
+    public void setHasMember(int hasMember) {
+        this.hasMember = hasMember;
+    }
+
     public CourseSchedule.CourseScheduleType getCourseType() {
         return courseType;
     }

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

@@ -58,6 +58,16 @@ public class ExtracurricularExercises {
 
 	private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
 
+	private Integer musicScoreId;
+
+	public Integer getMusicScoreId() {
+		return musicScoreId;
+	}
+
+	public void setMusicScoreId(Integer musicScoreId) {
+		this.musicScoreId = musicScoreId;
+	}
+
 	public ImSendTypeEnum getMsgType() {
 		return msgType;
 	}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercisesMessage.java

@@ -31,6 +31,8 @@ public class ExtracurricularExercisesMessage {
 
 	private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
 
+	private Integer musicScoreId;
+
 	public ImSendTypeEnum getMsgType() {
 		return msgType;
 	}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java

@@ -54,6 +54,27 @@ public class StudentCourseHomework {
 
 	private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
 
+	//伴奏编号
+	private Integer musicScoreId;
+	//伴奏编号
+	private String musicScoreName;
+
+	public String getMusicScoreName() {
+		return musicScoreName;
+	}
+
+	public void setMusicScoreName(String musicScoreName) {
+		this.musicScoreName = musicScoreName;
+	}
+
+	public Integer getMusicScoreId() {
+		return musicScoreId;
+	}
+
+	public void setMusicScoreId(Integer musicScoreId) {
+		this.musicScoreId = musicScoreId;
+	}
+
 	public ImSendTypeEnum getMsgType() {
 		return msgType;
 	}

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

@@ -36,7 +36,7 @@ public interface ExtracurricularExercisesService extends BaseService<Long, Extra
      * @param search:
      * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
      */
-    List<BasicUserDto> getDontServeStudents(Integer teacherId, String search, String musicGroupId,Long classGroupId,Integer subjectId);
+    List<BasicUserDto> getDontServeStudents(Integer teacherId, String search, String musicGroupId,Long classGroupId,Integer subjectId,Integer hasMember);
 
     /**
      * @describe 应布置课外训练提醒

+ 39 - 56
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1,60 +1,21 @@
 package com.ym.mec.biz.service.impl;
 
-import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.*;
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.NO;
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST;
-import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH;
-import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH_ONLINE;
-import static com.ym.mec.biz.dal.enums.GroupType.COMM;
-import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
-import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
-import static com.ym.mec.biz.dal.enums.GroupType.VIP;
-import static com.ym.mec.biz.dal.enums.MusicGroupStatusEnum.PROGRESS;
-
-import java.math.BigDecimal;
-import java.time.Duration;
-import java.time.Instant;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.stream.Collectors;
-
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+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.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.util.collection.ListUtil;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.util.CollectionUtils;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.page.ClassGroupQueryInfo;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherMusicClassQueryInfo;
-import com.ym.mec.biz.dal.page.VipClassQueryInfo;
-import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.common.constant.CommonConstants;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
@@ -66,6 +27,32 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.*;
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.NO;
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST;
+import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH;
+import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH_ONLINE;
+import static com.ym.mec.biz.dal.enums.GroupType.COMM;
+import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+import static com.ym.mec.biz.dal.enums.GroupType.*;
+import static com.ym.mec.biz.dal.enums.MusicGroupStatusEnum.PROGRESS;
 
 @Service
 public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
@@ -2754,6 +2741,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Integer classGroupId = classGroup4MixDtos.get(0).getClassGroupId();
         String musicGroupId = classGroup4MixDtos.get(0).getMusicGroupId();
         Integer musicGroupSchoolTermCourseDetailId = classGroup4MixDtos.get(0).getMusicGroupSchoolTermCourseDetailId();
+        MusicGroupSchoolTermCourseDetail schoolTermCourseDetail = musicGroupSchoolTermCourseDetailDao.get(musicGroupSchoolTermCourseDetailId);
+        if (schoolTermCourseDetail.isCourseFlag()) {
+            throw new BizException("本学期已经排课,请勿重复操作");
+        }
         ClassGroup classGroup = classGroupDao.get(classGroupId);
         if (classGroup == null) {
             throw new BizException("班级不存在");
@@ -2772,9 +2763,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
             throw new BizException("排课次数必须大于0");
         }
-//        Integer courseTimes = classGroup4MixDtos.get(0).getCourseTimes();
-
-//        classGroupService.updateTotalClassTimes(classGroup.getId(), courseTimes);
 
         Integer schoolId = teachMode.equals(TeachModeEnum.ONLINE) ? null : musicGroup.getSchoolId();
 
@@ -2782,19 +2770,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         String subjectNames = subjectList.stream().map(Subject::getName).collect(Collectors.joining("/"));
 
-//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
         //2、获取班级学生
         List<StudentRegistration> studentList = classGroupStudentMapperDao.findClassStudentList(classGroup.getId(), ClassGroupStudentStatusEnum.NORMAL);
 
         List<Integer> studentIds = studentList.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
 
-//        Map<String, Integer> courseTypeMinutesMap = musicGroupPaymentCalenderCourseSettingsService.getMusicCourseSettingsWithStudents(musicGroupId, studentIds);
-
         //计算每节课的课酬
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
         List<CourseSchedule> courseScheduleList = new ArrayList<>();
-        MusicGroupSchoolTermCourseDetail schoolTermCourseDetail = musicGroupSchoolTermCourseDetailDao.get(musicGroupSchoolTermCourseDetailId);
+
         for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
             //3、插入班级排课信息
             LocalDateTime now = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
@@ -3004,7 +2988,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         //老师结算表
         if (courseScheduleTeacherSalaryList.size() > 0) {
-//            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
             courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
         }
 

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

@@ -154,6 +154,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private EmployeeDao employeeDao;
     @Autowired
 	private VipGroupActivityDao vipGroupActivityDao;
+    @Autowired
+	private StudentDao studentDao;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -223,7 +225,9 @@ 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)));
-        return currentCourseDetail;
+		Student student = studentDao.get(user.getId());
+		currentCourseDetail.setHasMember(student.getMemberRankSettingId() == null?0:1);
+		return currentCourseDetail;
     }
 
     @Override

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

@@ -1,12 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.ExtracurricularExercisesDao;
+import com.ym.mec.biz.dal.dao.ExtracurricularExercisesMessageDao;
+import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.StudentCourseHomeworkCommentDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesMessage;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
-import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
 import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.StudentCourseHomeworkReplyQueryInfo;
@@ -26,17 +28,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.util.*;
 
 @Service
 public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<Long, ExtracurricularExercisesMessage> implements ExtracurricularExercisesMessageService {
 
 	@Autowired
-	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
-	@Autowired
 	private ExtracurricularExercisesMessageDao extracurricularExercisesMessageDao;
 	@Autowired
 	private ExtracurricularExercisesReplyDao extracurricularExercisesReplyDao;

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

@@ -168,10 +168,10 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 	}
 
 	@Override
-	public List<BasicUserDto> getDontServeStudents(Integer teacherId, String search, String musicGroupId,Long classGroupId,Integer subjectId) {
+	public List<BasicUserDto> getDontServeStudents(Integer teacherId, String search, String musicGroupId,Long classGroupId,Integer subjectId,Integer hasMember) {
 		LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
 		LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-		return extracurricularExercisesDao.findNoExercisesStudentsInThisWeekWithTeacher(teacherId, monDayDate.toString(), musicGroupId, classGroupId, subjectId, search);
+		return extracurricularExercisesDao.findNoExercisesStudentsInThisWeekWithTeacher(teacherId, monDayDate.toString(), musicGroupId, classGroupId, subjectId, search,hasMember);
 	}
 
 	@Override

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentMemberCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail;
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.service.MusicGroupSchoolTermCourseDetailService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
@@ -29,6 +31,8 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
 	@Autowired
+	private MusicGroupDao musicGroupDao;
+	@Autowired
 	private CourseScheduleDao courseScheduleDao;
 	@Autowired
 	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
@@ -50,6 +54,10 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 	public HttpResponseResult upset(MusicGroupSchoolTermCourseDetail musicGroupSchoolTermCourseDetail) {
 		Date startCourseDate = musicGroupSchoolTermCourseDetail.getStartCourseDate();
 		String musicGroupId = musicGroupSchoolTermCourseDetail.getMusicGroupId();
+		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+		if(musicGroup.getCourseViewType() != CourseViewTypeEnum.MEMBER_FEE){
+			throw new BizException("操作失败:该功能只适用于系统收费团");
+		}
 		//校验当前乐团是否所有学员都在班
 		if(!studentRegistrationDao.checkHasNotClass(musicGroupId)){
 			throw new BizException("操作失败:请确保所有在读学员都在班级");

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

@@ -60,8 +60,6 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
-    private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
-    @Autowired
     private StudentDao studentDao;
     @Autowired
     private SubjectDao subjectDao;
@@ -213,6 +211,8 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
             }
         }
         courseHomeworkStudentDetail.setType("HOMEWORK");
+        Student student = studentDao.get(userId.intValue());
+        courseHomeworkStudentDetail.setHasMember(student.getMemberRankSettingId()==null?0:1);
         return courseHomeworkStudentDetail;
     }
 

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

@@ -3889,7 +3889,7 @@
         </foreach>) c
     </select>
     <select id="countPreSubMinutesByClassGroupId" resultType="java.util.Map">
-        SELECT cgsm.class_group_id_,MIN(mgst.member_course_minutes_ - mgst.pre_member_course_minutes_)
+        SELECT cgsm.class_group_id_ 'key',MIN(mgst.member_course_minutes_ - mgst.pre_member_course_minutes_) 'value'
         FROM class_group_student_mapper cgsm
         LEFT JOIN music_group_school_term_student_course_detail mgst ON mgst.user_id_ = cgsm.user_id_
         WHERE cgsm.class_group_id_ IN

+ 16 - 10
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -21,6 +21,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="organ_name_" property="organName" />
+		<result column="music_score_id_" property="musicScoreId" />
 	</resultMap>
 
 	<sql id="queryPageCondition">
@@ -58,19 +59,19 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ExtracurricularExercises" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO extracurricular_exercises (id_,teacher_id_,student_id_list_,batch_no_,title_,attachments_,content_,expire_date_,completed_num_,expect_num_,create_time_,update_time_)
-		VALUES(#{id},#{teacherId},#{studentIdList},#{batchNo},#{title},#{attachments},#{content},#{expireDate},#{completedNum},#{expectNum},NOW(), NOW())
+		INSERT INTO extracurricular_exercises (teacher_id_,student_id_list_,batch_no_,
+		                                       title_,attachments_,content_,expire_date_,completed_num_,expect_num_,create_time_,update_time_,music_score_id_)
+		VALUES(#{teacherId},#{studentIdList},#{batchNo},#{title},#{attachments},
+		       #{content},#{expireDate},#{completedNum},#{expectNum},NOW(), NOW(),#{musicScoreId})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.ExtracurricularExercises">
 		UPDATE extracurricular_exercises
 		<set>
+			<if test="musicScoreId != null">
+				music_score_id_ = #{musicScoreId},
+			</if>
 			<if test="studentIdList != null">
 			student_id_list_ = #{studentIdList},
 			</if>
@@ -80,9 +81,6 @@
 			<if test="batchNo != null">
 			batch_no_ = #{batchNo},
 			</if>
-			<if test="id != null">
-			id_ = #{id},
-			</if>
 			<if test="teacherId != null">
 			teacher_id_ = #{teacherId},
 			</if>
@@ -183,6 +181,14 @@
 			AND sees.teacher_id_ = #{teacherId}
 			AND sees.actual_exercises_num_ &lt; sees.expect_exercises_num_
 			AND sees.serve_type_ = 'EXERCISE'
+			<if test="hasMember != null">
+				<if test="hasMember == 1">
+					AND stu.member_rank_setting_id_ IS NOT NULL
+				</if>
+				<if test="hasMember == 0">
+					AND stu.member_rank_setting_id_ IS NULL
+				</if>
+			</if>
 			<if test="musicGroupId!=null and musicGroupId!=''">
 				AND sr.music_group_id_=#{musicGroupId}
 			</if>

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

@@ -14,6 +14,7 @@
 		<result column="content_" property="content" />
 		<result column="create_time_" property="createTime" />
 		<result column="parent_id_" property="parentId" />
+		<result column="parent_id_" property="parentId" />
 		<result column="msg_type_" property="msgType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 	</resultMap>
 	

+ 20 - 15
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -24,6 +24,8 @@
         <result column="is_replied_timely_" property="isRepliedTimely"/>
         <result column="is_view_" property="isView" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="submit_time_" property="submitTime"/>
+        <result column="music_score_name_" property="musicScoreName"/>
+        <result column="music_score_id_" property="musicScoreId"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto" id="CourseHomeworkStudentDetailDto">
@@ -38,6 +40,8 @@
         <result column="expect_num_" property="expectNum"/>
         <result column="attachments_" property="attachments"/>
         <result column="score_" property="score"/>
+        <result column="music_score_name_" property="musicScoreName"/>
+        <result column="music_score_id_" property="musicScoreId"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -65,23 +69,24 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO student_course_homework
-        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_,is_replied_timely_)
-        VALUES(#{userId},#{courseScheduleId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isRepliedTimely})
+        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_,is_replied_timely_,music_score_id_)
+        VALUES(#{userId},#{courseScheduleId},#{courseHomeworkId},#{attachments},#{score},now(),now(),#{remark},
+               #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+               #{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isRepliedTimely},#{musicScoreId})
     </insert>
 
     <insert id="batchInsertStudentCourseHomeworkRecord" parameterType="java.util.List" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO student_course_homework
-        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_,is_replied_timely_)
+        (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,
+         update_time_,remark_,status_,is_replied_,is_view_,is_replied_timely_,music_score_id_)
         VALUE
         <foreach collection="list" item="homework" separator=",">
-            (#{homework.userId},#{homework.courseScheduleId},#{homework.courseHomeworkId},#{homework.attachments},#{homework.score},now(),now(),#{homework.remark},#{homework.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isRepliedTimely})
+            (#{homework.userId},#{homework.courseScheduleId},#{homework.courseHomeworkId},#{homework.attachments},
+            #{homework.score},now(),now(),#{homework.remark},#{homework.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{homework.isReplied,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{homework.isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{homework.isRepliedTimely},#{homework.musicScoreId})
         </foreach>
     </insert>
 
@@ -89,8 +94,8 @@
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentCourseHomework">
         UPDATE student_course_homework
         <set>
-            <if test="id != null">
-                id_ = #{id},
+            <if test="musicScoreId != null">
+                music_score_id_ = #{musicScoreId},
             </if>
             <if test="courseHomeworkId != null">
                 course_homework_id_ = #{courseHomeworkId},
@@ -98,16 +103,13 @@
             <if test="courseScheduleId != null">
                 course_schedule_id_ = #{courseScheduleId},
             </if>
-            update_time_ = NOW(),
+                update_time_ = NOW(),
             <if test="score != null">
                 score_ = #{score},
             </if>
             <if test="attachments != null">
                 attachments_ = #{attachments},
             </if>
-            <if test="createTime != null">
-                create_time_ = #{createTime},
-            </if>
             <if test="remark != null">
                 remark_ = #{remark},
             </if>
@@ -222,6 +224,8 @@
                ch.completed_num_,
                ch.expect_num_,
                ch.expiry_date_,
+               ch.music_score_id_,
+               sms.name_ music_score_name_,
                sch.id_  studentCourseHomeworkId,
                sch.attachments_,
                sch.score_,
@@ -232,6 +236,7 @@
                  LEFT JOIN student_course_homework sch ON ch.id_ = sch.course_homework_id_
                  LEFT JOIN music_group mg ON ch.music_group_id_ = mg.id_
                  LEFT JOIN class_group cg ON ch.class_group_id_ = cg.id_
+                 LEFT JOIN sys_music_score sms ON ch.music_score_id_ = sms.id_
         WHERE ch.course_schedule_id_ = #{courseScheduleID}
           AND sch.user_id_ = #{userID}
     </select>

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -242,4 +242,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void indexErrDataRecord() {
 		logger.error("历史异常数据记录失败");
 	}
+
+	@Override
+	public void autoCleanPreCourseTask() {
+		logger.error("每天凌晨3点清理所有的乐团预排课");
+	}
 }

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

@@ -9,7 +9,6 @@ import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
 import com.ym.mec.biz.service.TeacherCourseRewardService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -19,8 +18,6 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.time.LocalDate;
-
 /**
  * @Author Joburgess
  * @Date 2020/4/15

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

@@ -86,12 +86,12 @@ public class ExtracurricularExercisesController extends BaseController {
 
     @ApiOperation(value = "获取待布置学员列表")
     @GetMapping("/getDontServeStudents")
-    public HttpResponseResult getDontServeStudents(String search, String musicGroupId, Long classGroupId, Integer subjectId){
+    public HttpResponseResult getDontServeStudents(String search, String musicGroupId, Long classGroupId, Integer subjectId,Integer hasMember){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return succeed(extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search, musicGroupId, classGroupId, subjectId));
+        return succeed(extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search, musicGroupId, classGroupId, subjectId,hasMember));
     }
 
     @ApiOperation(value = "获取待布置学员乐团列表")
@@ -101,7 +101,7 @@ public class ExtracurricularExercisesController extends BaseController {
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search, null, null,null);
+        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), search, null, null,null,null);
         if(CollectionUtils.isEmpty(dontServeStudents)){
             return succeed(Collections.emptyList());
         }
@@ -118,7 +118,7 @@ public class ExtracurricularExercisesController extends BaseController {
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
         Map<String, Object> result = new HashMap<>();
-        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), null, null, null, null);
+        List<BasicUserDto> dontServeStudents = extracurricularExercisesService.getDontServeStudents(sysUser.getId(), null, null, null, null,null);
         if(CollectionUtils.isEmpty(dontServeStudents)){
             result.put("musicGroups", Collections.emptyList());
             result.put("classGroups", Collections.emptyList());

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

@@ -270,7 +270,7 @@ public class ClassGroupController extends BaseController {
     }
 
     @ApiOperation(value = "会员乐团预排课")
-    @PostMapping("/preClassGroupUpdate")
+    @PostMapping("/preCourseSchedule")
     @PreAuthorize("@pcs.hasPermissions('classGroup/preCourseSchedule')")
     @ApiImplicitParams({@ApiImplicitParam(name = "ClassGroup4MixDto", value = "会员乐团预排课", required = true, dataType = "String")})
     public HttpResponseResult preCourseSchedule(@RequestBody List<ClassGroup4MixDto> classGroup4MixDtos) throws Exception {

+ 2 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSchoolTermCourseDetailController.java

@@ -7,6 +7,7 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 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.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -21,6 +22,7 @@ public class MusicGroupSchoolTermCourseDetailController extends BaseController {
 
 	@ApiOperation("新增、修改乐团预排课详情")
 	@GetMapping(value = "upset")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupSchoolTermCourseDetail/upset')")
 	public HttpResponseResult upset(MusicGroupSchoolTermCourseDetail musicGroupSchoolTermCourseDetail) {
 		return musicGroupSchoolTermCourseDetailService.upset(musicGroupSchoolTermCourseDetail);
 	}