浏览代码

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
Joburgess 5 年之前
父节点
当前提交
a92309a0cf
共有 31 个文件被更改,包括 553 次插入335 次删除
  1. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseHomeworkDao.java
  2. 15 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 8 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java
  4. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  5. 12 8
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseHomeworkService.java
  6. 194 191
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  8. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  9. 38 18
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java
  10. 30 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  11. 36 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  12. 21 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  13. 30 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  14. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  15. 1 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  16. 9 0
      mec-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml
  17. 1 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  18. 2 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  19. 8 20
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  20. 5 1
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  21. 8 0
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  22. 1 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  23. 19 11
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  24. 15 5
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  25. 18 0
      mec-task/src/main/java/com/ym/mec/task/jobs/HomeworkNoReplyRemaindTask.java
  26. 18 0
      mec-task/src/main/java/com/ym/mec/task/jobs/StudentHomeworkRemaindTask.java
  27. 18 0
      mec-task/src/main/java/com/ym/mec/task/jobs/TeacherCoursesScheduleRemaindTask.java
  28. 2 2
      mec-task/src/main/java/com/ym/mec/task/jobs/TeacherSignInRemaindTask.java
  29. 0 1
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  30. 26 9
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java
  31. 2 3
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

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

@@ -1,8 +1,10 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.common.dal.BaseDAO;
+
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -31,4 +33,9 @@ public interface CourseHomeworkDao extends BaseDAO<Long, CourseHomework> {
     CourseHomework findByTeacherAndCourseHomewok(@Param("courseHomeworkId") Long courseHomeworkId,
                                                  @Param("userId") Integer userId);
 
+    /**
+     * 查询老师未回复作业的数量
+     * @return
+     */
+    List<Mapper> queryTeacerNoReplyNum();
 }

+ 15 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -451,16 +451,28 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 	List<CourseSchedule> findByDateZone(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
 	/**
-	 * 查询用户明天的课程数
+	 * 查询学生明天的课程数
 	 * @return
 	 */
 	List<Mapper> queryStudentCoursesTimesOfTomorrow();
 
 	/**
-	 * 查询90分钟内未上的课程
+	 * 查询学生90分钟内未上的课程
 	 * @return
 	 */
-	List<Mapper> queryNotStartCourseScheduleIn90Mins();
+	List<Mapper> queryStudentNotStartCourseScheduleIn90Mins();
+	
+	/**
+	 * 查询老师明天的课程数
+	 * @return
+	 */
+	List<Mapper> queryTeacherCoursesTimesOfTomorrow();
+
+	/**
+	 * 查询老师30分钟内未上的课程
+	 * @return
+	 */
+	List<Mapper> queryTeacherNotStartCourseScheduleIn30Mins();
 
 	/**
 	 * @describe 获取课程编号和与之对应教师编号列表

+ 8 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -1,14 +1,16 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
 import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 
@@ -48,7 +50,7 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
      * @param minutes 分钟数
      * @return
      */
-    List<TeacherAttendance> queryNoSignOutListByOverMinutes(Integer minutes);
+    List<Mapper> queryNoSignOutListByOverMinutes(Integer minutes);
 
     /**
      * @describe 根据日期获取部门下异常签到的课程记录

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

@@ -16,7 +16,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_WITHDRAW_SUCCESS("SMS_WITHDRAW_SUCCESS", "提现成功"),
     SMS_MUSIC_GROUP_CLOSE("SMS_MUSIC_GROUP_CLOSE", "乐团关闭(关闭后)"),
 
-    STUDENT_SMS_PAYMENT_RESULT("STUDENT_SMS_PAYMENT_RESULT", "缴费结果"),
+    STUDENT_SMS_PAYMENT_SUCCESS("STUDENT_SMS_PAYMENT_RESULT", "缴费成功结果通知"),
+    STUDENT_SMS_PAYMENT_FAILED("STUDENT_SMS_PAYMENT_RESULT", "缴费失败结果通知"),
     STUDENT_PUSH_PAYMENT_RESULT("STUDENT_PUSH_PAYMENT_RESULT", "缴费结果"),
     STUDENT_PUSH_MUSIC_GROUP_CLOSE("STUDENT_PUSH_MUSIC_GROUP_CLOSE", "乐团关闭(确认后)"),
     STUDENT_PUSH_BASICS_SKILL_APPLY_MESSAGE("STUDENT_PUSH_BASICS_SKILL_APPLY_MESSAGE", "基础技能训练报名通知"),

+ 12 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/CourseHomeworkService.java

@@ -9,13 +9,17 @@ import java.util.Map;
 
 public interface CourseHomeworkService extends BaseService<Long, CourseHomework> {
 
-    /**
-     * @describe 根据班级获取教师布置的作业
-     * @author Joburgess
-     * @date 2019/10/20
-     * @param queryInfo:
-     * @return com.ym.mec.common.page.PageInfo
-     */
-    List<Map<String,Object>> findTeacherCourseHomeworkByClassGroup(CourseHomeworkQueryInfo queryInfo);
+	/**
+	 * @describe 根据班级获取教师布置的作业
+	 * @author Joburgess
+	 * @date 2019/10/20
+	 * @param queryInfo:
+	 * @return com.ym.mec.common.page.PageInfo
+	 */
+	List<Map<String, Object>> findTeacherCourseHomeworkByClassGroup(CourseHomeworkQueryInfo queryInfo);
 
+	/**
+	 * 作业未回复提醒
+	 */
+	void homeworkNoReplyRemind();
 }

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

@@ -19,170 +19,169 @@ import java.util.Map;
 
 public interface CourseScheduleService extends BaseService<Long, CourseSchedule> {
 
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/10
-     * 根据课程ID获取当前课程的信息
-     */
-    TeacherAttendanceDto getCurrentCourseDetail(Long courseID);
-
-    /**
-     * @describe 根据课程编号删除课程计划及对应的学生缴费、教师课酬记录
-     * @author Joburgess
-     * @date 2019/10/31
-     * @param courseScheduleIds:
-     * @return int
-     */
-    void deleteCourseSchedules(List<Long> courseScheduleIds);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/16
-     * @params [teacherAttendanceDto, userId]
-     * @return YesOrNoEnum
-     * @describe 判断该课程是否只能进行正常签到
-     */
-    YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto, Long userId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 批量插入课程计划
-     */
-    void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
-
-    /**
-     * @describe 创建乐团课课程计划
-     * @author Joburgess
-     * @date 2019/10/24
-     * @param courseSchedules: 课程计划列表
-     * @return void
-     */
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/10
+	 * 根据课程ID获取当前课程的信息
+	 */
+	TeacherAttendanceDto getCurrentCourseDetail(Long courseID);
+
+	/**
+	 * @describe 根据课程编号删除课程计划及对应的学生缴费、教师课酬记录
+	 * @author Joburgess
+	 * @date 2019/10/31
+	 * @param courseScheduleIds:
+	 * @return int
+	 */
+	void deleteCourseSchedules(List<Long> courseScheduleIds);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/16
+	 * @params [teacherAttendanceDto, userId]
+	 * @return YesOrNoEnum
+	 * @describe 判断该课程是否只能进行正常签到
+	 */
+	YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto, Long userId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 批量插入课程计划
+	 */
+	void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
+
+	/**
+	 * @describe 创建乐团课课程计划
+	 * @author Joburgess
+	 * @date 2019/10/24
+	 * @param courseSchedules: 课程计划列表
+	 * @return void
+	 */
 	void createCourseSchedules(List<CourseSchedule> courseSchedules);
 
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 批量更新课程计划
-     */
-    void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules,Long musicGroupID);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取当日排课信息
-     */
-    List<CourseScheduleDto> getCourseSchedulesWithDate(Date classDate);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取当日排课信息
-     */
-    Map getStudentCourseSchedulesWithDate(Date classDate);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取当日排课信息
-     */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate,String type);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取当日排课信息
-     */
-    PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据月份获取乐团在该月有课的日期
-     */
-    List<Date> getCourseScheduleDateByMonth(Long musicGroupID, Date month);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据学生获取乐团在该月有课的日期
-     */
-    List<Date> getCourseScheduleDateByStudent(Date month, Integer isAttend);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 获取教师在该月有课的日期
-     */
-    List<Date> getCourseScheduleDateByTeacher(Date month,String type);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/11
-     * @params [month]
-     * @return java.util.List<java.util.Date>
-     * @describe 获取
-     */
-    List<Date> getCourseScheduleDates(Date month);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/23
-     * 课时调整
-     */
-    void classStartDateAdjust(List<CourseSchedule> newCourseSchedules);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/24
-     * 课程交换
-     */
-    void courseSwap(Long courseScheduleId1,Long courseScheduleId2);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/14
-     * @params [day1, day2]
-     * @return void
-     * @describe 对调两天的课程
-     */
-    void courseSwapWithDay(Date day1,Date day2);
-
-    /**
-     * @describe 检测数据库不存在的课程是否存在错误
-     * @author Joburgess
-     * @date 2019/10/31
-     * @param courseSchedules: 课程列表
-     * @return void
-     */
-    void checkNewCourseSchedules(List<CourseSchedule> courseSchedules);
-
-    /**
-     * 获取班级未开始的课程计划
-     *
-     * @param classGroupTeacherMapperList
-     * @return
-     */
-    List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
-
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/30
-     * 获取学生上课记录
-     */
-    Object findStudentCourseScheduleRecords(StudentCourseScheduleRecordQueryInfo queryInfo);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/3
-     * @params [courseScheduleComplaints]
-     * @return void
-     * @describe 课程投诉
-     */
-    void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints);
-
-    /**
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 批量更新课程计划
+	 */
+	void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules, Long musicGroupID);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取当日排课信息
+	 */
+	List<CourseScheduleDto> getCourseSchedulesWithDate(Date classDate);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取当日排课信息
+	 */
+	Map getStudentCourseSchedulesWithDate(Date classDate);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取当日排课信息
+	 */
+	List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId, Date classDate, String type);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取当日排课信息
+	 */
+	PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据月份获取乐团在该月有课的日期
+	 */
+	List<Date> getCourseScheduleDateByMonth(Long musicGroupID, Date month);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据学生获取乐团在该月有课的日期
+	 */
+	List<Date> getCourseScheduleDateByStudent(Date month, Integer isAttend);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 获取教师在该月有课的日期
+	 */
+	List<Date> getCourseScheduleDateByTeacher(Date month, String type);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/11
+	 * @params [month]
+	 * @return java.util.List<java.util.Date>
+	 * @describe 获取
+	 */
+	List<Date> getCourseScheduleDates(Date month);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/23
+	 * 课时调整
+	 */
+	void classStartDateAdjust(List<CourseSchedule> newCourseSchedules);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 课程交换
+	 */
+	void courseSwap(Long courseScheduleId1, Long courseScheduleId2);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/14
+	 * @params [day1, day2]
+	 * @return void
+	 * @describe 对调两天的课程
+	 */
+	void courseSwapWithDay(Date day1, Date day2);
+
+	/**
+	 * @describe 检测数据库不存在的课程是否存在错误
+	 * @author Joburgess
+	 * @date 2019/10/31
+	 * @param courseSchedules: 课程列表
+	 * @return void
+	 */
+	void checkNewCourseSchedules(List<CourseSchedule> courseSchedules);
+
+	/**
+	 * 获取班级未开始的课程计划
+	 *
+	 * @param classGroupTeacherMapperList
+	 * @return
+	 */
+	List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/30
+	 * 获取学生上课记录
+	 */
+	Object findStudentCourseScheduleRecords(StudentCourseScheduleRecordQueryInfo queryInfo);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/3
+	 * @params [courseScheduleComplaints]
+	 * @return void
+	 * @describe 课程投诉
+	 */
+	void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints);
+
+	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/10/3
 	 * @params [id] 申诉编号
@@ -193,18 +192,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @describe 课程投诉审核
 	 */
 	void courseScheduleCommplaintAudit(Long id, Double teacherLiabilityRatio, Double studentLiabilityRatio, AuditStatusEnum status);
-    
-    /**
-     * 更新课程至结束状态
-     * @return
-     */
-    boolean updateCourseScheduleToOverStatus();
 
 	/**
-	 * 推送未签到消息提醒
+	 * 更新课程至结束状态
 	 * @return
 	 */
-	boolean pushNoSignInMessage();
+	boolean updateCourseScheduleToOverStatus();
 
 	/**
 	 * @describe 获取老师指定班级的排课
@@ -222,7 +215,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param courseScheduleId: 课程编号
 	 * @return com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto
 	 */
-    CourseAttendanceDetailHeadInfoDto findCourseAttendanceDetailHeadInfo(Long courseScheduleId);
+	CourseAttendanceDetailHeadInfoDto findCourseAttendanceDetailHeadInfo(Long courseScheduleId);
 
 	/**
 	 * @describe 检测指定乐团下所有班级是否已排课
@@ -240,24 +233,34 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param courseSchedules:
 	 * @return java.util.Map<java.lang.Integer,java.lang.Integer>
 	 */
-	Map<Integer,Integer> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
-
-    /**
-     * 查询班级未开始的课程
-     *
-     * @param classGroupId
-     * @return
-     */
-    List<CourseSchedule> findNoStartCoursesByClassGroupId(Integer classGroupId);
-
-    /**
-     * 有课提醒
-     * @return
-     */
-    void studentCoursesScheduleRemind();
-    
-    /**
-     * 上课提醒
-     */
-    void studentSignInRemind();
+	Map<Integer, Integer> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
+
+	/**
+	 * 查询班级未开始的课程
+	 *
+	 * @param classGroupId
+	 * @return
+	 */
+	List<CourseSchedule> findNoStartCoursesByClassGroupId(Integer classGroupId);
+
+	/**
+	 * 学生有课提醒
+	 * @return
+	 */
+	void studentCoursesScheduleRemind();
+
+	/**
+	 * 学生上课提醒
+	 */
+	void studentSignInRemind();
+
+	/**
+	 * 老师课程提醒
+	 */
+	void teacherCoursesScheduleRemind();
+
+	/**
+	 * 老师上课提醒
+	 */
+	void teacherSignInRemind();
 }

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

@@ -25,7 +25,7 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * 新增教师
      * @param teacher
      */
-    void add(Teacher teacher) throws Exception;
+    int add(Teacher teacher) throws Exception;
 
     /**
      * 修改教师信息

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

@@ -831,7 +831,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Date date = new Date();
         String musicGroupId = classGroup4MixDto.getMusicGroupId();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if (musicGroup != null) {
+        if (musicGroup == null) {
             throw new Exception("乐团不存在");
         }
         Integer schoolId = musicGroup.getSchoolId();
@@ -1037,7 +1037,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Date date = new Date();
         String musicGroupId = classGroup4MixDto.getMusicGroupId();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if (musicGroup != null) {
+        if (musicGroup == null) {
             throw new Exception("乐团不存在");
         }
         ClassGroup classgroup = classGroupDao.get(classGroup4MixDto.getClassGroupId());
@@ -1249,7 +1249,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Date date = new Date();
         String musicGroupId = classGroup4MixDto.getMusicGroupId();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if (musicGroup != null) {
+        if (musicGroup == null) {
             throw new Exception("乐团不存在");
         }
         Integer schoolId = musicGroup.getSchoolId();

+ 38 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java

@@ -1,34 +1,41 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
+import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.entity.CourseHomework;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.service.CourseHomeworkService;
 import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 @Service
-public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomework>  implements CourseHomeworkService {
-	
+public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomework> implements CourseHomeworkService {
+
 	@Autowired
 	private CourseHomeworkDao courseHomeworkDao;
 	@Autowired
 	private CourseScheduleService courseScheduleService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SysMessageService sysMessageService;
 
 	@Override
 	public BaseDAO<Long, CourseHomework> getDAO() {
@@ -36,16 +43,16 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 	}
 
 	@Override
-	public List<Map<String,Object>> findTeacherCourseHomeworkByClassGroup(CourseHomeworkQueryInfo queryInfo) {
+	public List<Map<String, Object>> findTeacherCourseHomeworkByClassGroup(CourseHomeworkQueryInfo queryInfo) {
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 		List<TeacherHomeworkListDto> dataList = null;
-		List<Map<String,Object>> result=new ArrayList<>();
+		List<Map<String, Object>> result = new ArrayList<>();
 		int count = courseHomeworkDao.countByClassGroupAndTeacher(params);
 		if (count > 0) {
 			dataList = courseHomeworkDao.findByClassGroupAndTeacher(params);
 			List<Integer> courseScheduleIds = dataList.stream().map(TeacherHomeworkListDto::getCourseScheduleId).collect(Collectors.toList());
-			if(!CollectionUtils.isEmpty(courseScheduleIds)){
+			if (!CollectionUtils.isEmpty(courseScheduleIds)) {
 				Map<Integer, Integer> courseScheduleCurrentTimes = courseScheduleService.findCourseScheduleCurrentTimes(courseScheduleIds);
 				dataList.forEach(teacherHomeworkListDto -> {
 					teacherHomeworkListDto.setCurrentClassTimes(courseScheduleCurrentTimes.get(teacherHomeworkListDto.getCourseScheduleId()));
@@ -54,13 +61,26 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 		}
 		if (count != 0) {
 			Map<String, List<TeacherHomeworkListDto>> collect = dataList.stream().collect(Collectors.groupingBy(TeacherHomeworkListDto::getDay));
-			for(String key:collect.keySet()){
-				Map<String,Object> r=new HashMap<>();
-				r.put("day",key);
-				r.put("list",collect.get(key));
+			for (String key : collect.keySet()) {
+				Map<String, Object> r = new HashMap<>();
+				r.put("day", key);
+				r.put("list", collect.get(key));
 				result.add(r);
 			}
 		}
 		return result;
 	}
+
+	@Override
+	public void homeworkNoReplyRemind() {
+		List<Mapper> list = courseHomeworkDao.queryTeacerNoReplyNum();
+
+		for (Mapper mapper : list) {
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			Integer userId = (Integer) mapper.getKey();
+			receivers.put(userId, userId + "");
+
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_JOB_WAIT_REPLY, receivers, null, 0, "", mapper.getValue());
+		}
+	}
 }

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

@@ -16,6 +16,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -743,21 +744,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public boolean pushNoSignInMessage() {
-		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));
-
-		List<CourseSchedule> list = courseScheduleDao.queryNoSignInListByBeforeMinutes(minutes);
-
-		Map<Integer, String> receivers = new HashMap<Integer, String>();
-		for (CourseSchedule sf : list) {
-			receivers.put(sf.getTeacherId(), sf.getTeacherId() + "");
-		}
-
-		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_IN_MESSAGE, receivers, null, 0, "");
-		return true;
-	}
-
-	@Override
 	public PageInfo queryTeacherClassCourseSchedule(CourseScheduleQueryInfo queryInfo) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if(null==user){
@@ -861,7 +847,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	public void studentSignInRemind() {
-		List<Mapper> mapperList = courseScheduleDao.queryNotStartCourseScheduleIn90Mins();
+		List<Mapper> mapperList = courseScheduleDao.queryStudentNotStartCourseScheduleIn90Mins();
 		if(mapperList != null && mapperList.size() > 0){
 			for(Mapper mapper : mapperList){
 				Map<Integer, String> receivers = new HashMap<Integer, String>();
@@ -871,4 +857,32 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 		}
 	}
+
+	@Override
+	public void teacherCoursesScheduleRemind() {
+		List<Mapper> mapperList = courseScheduleDao.queryTeacherCoursesTimesOfTomorrow();
+		for (Mapper mapper : mapperList) {
+			Integer userId = (Integer) mapper.getKey();
+			String teacherName = (String) mapper.getValue();
+
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			receivers.put(userId, userId + "");
+
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_HAVE_COURSE_MESSAGE, receivers, null, 0, "", teacherName);
+		}
+	}
+
+	@Override
+	public void teacherSignInRemind() {
+		List<Mapper> mapperList = courseScheduleDao.queryTeacherNotStartCourseScheduleIn30Mins();
+		for (Mapper mapper : mapperList) {
+			Integer userId = (Integer) mapper.getKey();
+			String scheduleName = (String) mapper.getValue();
+
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			receivers.put(userId, userId + "");
+
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_ATTEND_CLASS_MESSAGE, receivers, null, 0, "", scheduleName);
+		}
+	}
 }

+ 36 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -74,8 +74,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Autowired
     private MusicGroupQuitDao musicGroupQuitDao;
 
+//    @Autowired
+//    private StudentRegistrationService studentRegistrationService;
+
     @Autowired
-    private StudentRegistrationService studentRegistrationService;
+    private StudentRegistrationDao studentRegistrationDao;
 
     @Autowired
     private CourseScheduleDao courseScheduleDao;
@@ -146,7 +149,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             subjectRegisters.forEach(e -> {
                     //原来乐团的注册学生
-                List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationService.findStudentListByIdList(e.getRegisterIdList());
+                List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationDao.findStudentListByIdList(e.getRegisterIdList());
                 for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
                     studentRegistration.setId(null);
                     studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
@@ -163,7 +166,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     musicGroupSubjectPlan.setApplyStudentNum(e.getRegisterIdList().size());
                 }
             });
-            studentRegistrationService.batchInsert(studentRegistrationList);
+            studentRegistrationDao.batchInsert(studentRegistrationList);
         }
 
         // 保存乐团声部规划
@@ -324,12 +327,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean cancelMusicGroup(String musicGroupId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
         MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
         }
 
-        if (musicGroup.getStatus() == MusicGroupStatusEnum.APPLY || musicGroup.getStatus() == MusicGroupStatusEnum.PAY) {
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
             musicGroup.setStatus(MusicGroupStatusEnum.CANCELED);
             musicGroup.setUpdateTime(new Date());
             musicGroupDao.update(musicGroup);
@@ -354,13 +361,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysUserCashAccountDetailService.addCashAccountDetail(order.getUserId(), order.getActualAmount(), SysUserCashAccountDetailService.MUSIC_GROUP
                     + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "取消乐团");
         }
+        //获取当前乐团所有已报名学员
+        List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
 
+        //记录建团日志
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
         return true;
     }
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean pauseMusicGroup(String musicGroupId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -376,13 +391,17 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         // 清除下次缴费时间
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, null);
-
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"暂停乐团",sysUser.getId(),""));
         return true;
     }
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean resumeMusicGroup(String musicGroupId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -398,12 +417,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         // 重新设置下次缴费时间
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
-
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"恢复乐团",sysUser.getId(),""));
         return true;
     }
 
     @Override
     public boolean extensionPayment(String musicGroupId, Date expireDate) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -422,7 +445,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setPaymentExpireDate(expireDate);
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);
-
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"延长缴费",sysUser.getId(),""));
         return true;
     }
 
@@ -465,7 +488,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
                 // 判断乐器是否是租赁
-                StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+                StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
                 if (studentRegistration == null) {
                     throw new BizException("用户注册信息不存在");
                 }
@@ -473,7 +496,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
                 studentRegistration.setUpdateTime(date);
 
-                studentRegistrationService.update(studentRegistration);
+                studentRegistrationDao.update(studentRegistration);
 
                 Integer subjectId = studentRegistration.getActualSubjectId();
                 MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
@@ -516,15 +539,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
         // 判断乐器是否是租赁
-        StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         if (studentRegistration == null) {
             throw new BizException("用户注册信息不存在");
         }
         // 退团
         studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
         studentRegistration.setUpdateTime(date);
-        
-        studentRegistrationService.update(studentRegistration);
+
+        studentRegistrationDao.update(studentRegistration);
 
         Integer subjectId = studentRegistration.getActualSubjectId();
         MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
@@ -875,7 +898,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         //给家长发送乐团基础训练课短信
         //获取所有乐团学员列表
-        List<StudentRegistration> students = studentRegistrationService.queryStudentByMusicGroupId(musicGroupId);
+        List<StudentRegistration> students = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupId);
         //获取所有家长电话
         Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
         //获取对应家长的用户编号

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

@@ -49,6 +49,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
     @Autowired
+    private SysMessageConfigDao sysMessageConfigDao;
+    @Autowired
+    private SysMessageService sysMessageService;
+    @Autowired
     private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
     @Autowired
     private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
@@ -67,10 +71,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
-    private SysMessageService sysMessageService;
-    @Autowired
-    private SysMessageConfigDao sysMessageConfigDao;
-    @Autowired
     private MusicGroupDao musicGroupDao;
 
     @Override
@@ -510,6 +510,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
             musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
             musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+            //发送缴费成功通知(短信 + push)
+            String content = sysMessageConfigDao.findContent(MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS.getCode());
+            content = MessageFormatter.arrayFormat(content,studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+            sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.YIMEI,studentPaymentOrder.getUserId(),"",
+                    content,studentRegistration.getUserId().toString(),nowDate,0,"");
+            //push
+            sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,studentPaymentOrder.getUserId(),"",
+                    content,studentRegistration.getUserId().toString(),nowDate,0,"");
         }
 
         //失败减去已收款金额
@@ -518,6 +526,15 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAilED)) {
             musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() - 1);
             musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
+            //发送缴费成功通知(短信 + push)
+            String content = sysMessageConfigDao.findContent(MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED.getCode());
+            String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL + studentRegistration.getMusicGroupId());
+            content = MessageFormatter.arrayFormat(content,studentApplyUrl);
+            sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.YIMEI,studentPaymentOrder.getUserId(),"",
+                    content,studentRegistration.getUserId().toString(),nowDate,0,"");
+            //push
+            sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,studentPaymentOrder.getUserId(),"",
+                    content,studentRegistration.getUserId().toString(),nowDate,0,"");
         }
 
         return studentPaymentOrder;

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

@@ -1,8 +1,25 @@
 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.Objects;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import 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.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
+import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
@@ -10,7 +27,11 @@ import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
 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.*;
+import com.ym.mec.biz.service.CourseHomeworkService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -18,12 +39,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 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;
-
-import java.util.*;
 
 @Service
 public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherAttendance>  implements TeacherAttendanceService {
@@ -224,14 +239,15 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		
 		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));;
 
-		List<TeacherAttendance> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
+		List<Mapper> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
 
-		Map<Integer, String> receivers = new HashMap<Integer, String>();
-		for (TeacherAttendance sf : list) {
-			receivers.put(sf.getTeacherId(), sf.getTeacherId() + "");
-		}
+		for (Mapper mapper : list) {
+			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			Integer userId = (Integer) mapper.getKey();
+			receivers.put(userId, userId + "");
 
-		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0, "");
+			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,"", mapper.getValue());
+		}
 		return true;
 	}
 

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

@@ -70,7 +70,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void add(Teacher teacher) throws Exception {
+	public int add(Teacher teacher) throws Exception {
 		SysUser user = sysUserFeignService.queryUserByMobile(teacher.getPhone());
 		if(user != null && user.getId() != null){
 			Integer id = user.getId();
@@ -82,7 +82,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			}else {
 				throw new Exception("用户已存在");
 			}
-			return;
+			return id;
 		}
 		teacher.setUserType(SysUserType.TEACHER);
 		teacher.setUsername(teacher.getRealName());
@@ -101,6 +101,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			teacher.setImToken(imResult.getToken());
 			teacherDao.updateUser(teacher);
 		}
+		return teacher.getId();
 	}
 
 	@Override

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

@@ -301,6 +301,7 @@
         FROM student_payment_order spo
         LEFT JOIN class_group cg ON cg.id_ = spo.class_group_id_
         <where>
+                spo.status_ = 'SUCCESS'
             <if test="search != null and search != ''">
                 AND cg.name_ LIKE CONCAT('%',#{search},'%')
             </if>

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -37,6 +37,11 @@
 		<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>
+    
+    <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
+    	<result column="key_" property="key"/>
+    	<result column="value_" property="value"/>
+    </resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="CourseHomework" >
@@ -205,4 +210,8 @@
 			LEFT JOIN course_schedule_teacher_salary csts ON ch.course_schedule_id_=csts.course_schedule_id_
 			WHERE ch.id_=#{courseHomeworkId} AND csts.user_id_=#{userId}
 	</select>
+	
+	<select id="queryTeacerNoReplyNum" resultMap="Mapper">
+		select cs.actual_teacher_id_ key_,count(1) value_ from student_course_homework sch left join course_schedule cs on sch.course_schedule_id_ = cs.id_ where csh.is_replied_ = 0 group by cs.actual_teacher_id_
+	</select>
 </mapper>

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

@@ -27,7 +27,6 @@
 		<result column="img_" property="img" />
 		<result column="director_user_id_" property="directorUserId" />
 		<result column="settlement_type_" property="settlementType" />
-		<result column="is_classroom_lessons_" property="isClassroomLessons" />
 		<result column="memo_" property="memo" />
 	</resultMap>
 
@@ -212,7 +211,7 @@
     <select id="countCourseByType" resultType="java.lang.Integer">
 		SELECT SUM(cg.total_class_times_) - SUM(cg.current_class_times_) FROM class_group_student_mapper cgsm
 		LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-		WHERE sr.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_ = 0
+		WHERE cgsm.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_ = 0
 	</select>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.BasicUserDto" id="BasicUserDto">

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

@@ -101,7 +101,8 @@
         <collection property="goodsList" resultMap="com.ym.mec.biz.dal.dao.GoodsDao.Goods" columnPrefix="g_" />
     </resultMap>
     <select id="findGoodsGroup" resultMap="findGoodsGroupMap">
-        SELECT mgs.*, g.id_ g_id_,g.name_ g_name_,g.image_ g_image_,g.brief_ g_brief_, g.group_purchase_price_ g_group_purchase_price_,g.market_price_ g_market_price_,g.complement_goods_id_list_
+        SELECT mgs.*, g.id_ g_id_,g.name_ g_name_,g.image_ g_image_,g.brief_ g_brief_, g.group_purchase_price_ g_group_purchase_price_,
+        g.specification_ g_specification_,g.brand_ g_brand,g.desc_ g_desc, g.market_price_ g_market_price_,g.complement_goods_id_list_
         g_complement_goods_id_list_
         FROM music_group_subject_goods_group mgs,goods g
         WHERE FIND_IN_SET (g.id_ ,mgs.goods_id_list_)

+ 8 - 20
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -118,27 +118,9 @@
         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_
-        WHERE sr.user_id_ IN (
-          (SELECT MAX(user_id_) user_id_ FROM student_registration
-            <where>
-                <if test="search != null and search != ''">
-                    parents_name_ LIKE CONCAT('%',#{search},'%') OR parents_phone_ LIKE CONCAT('%',#{search},'%')
-                </if>
-            </where>
-           GROUP BY parents_phone_))
-        <if test="organId != null">
-            AND su.organ_id_=#{organId}
-        </if>
-        <if test="studentName != null and studentName != ''">
-            AND su.real_name_ LIKE CONCAT('%',#{studentName},'%')
-        </if>
         <include refid="global.limit"/>
     </select>
-
-    <select id="countStudentByOrganId" resultType="java.lang.Integer">
-        SELECT COUNT(DISTINCT sr.user_id_)
-        FROM student_registration sr
-        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+    <sql id="findStudentsByOrganIdSql">
         WHERE sr.user_id_ IN (
         (SELECT MAX(user_id_) user_id_ FROM student_registration
         <where>
@@ -151,8 +133,14 @@
             AND su.organ_id_=#{organId}
         </if>
         <if test="studentName != null and studentName != ''">
-            AND su.real_name_ LIKE CONCAT('%',#{studentName},'%')
+            AND su.username_ LIKE CONCAT('%',#{studentName},'%')
         </if>
+    </sql>
+
+    <select id="countStudentByOrganId" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT sr.user_id_)
+        FROM student_registration sr
+        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
     </select>
     <select id="findStudentBaseInfoByUserID" resultMap="studentManageListDto">
         SELECT su.real_name_,su.gender_,su.birthdate_,sr.parents_name_,su.id_ user_id_,

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

@@ -360,7 +360,11 @@
 
     <!-- 获取班级下的学生 -->
     <select id="findClassGroupStu" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_= #{musicGroupId} AND class_group_id_=#{classGroupId}
+        SELECT * FROM student_registration
+        WHERE music_group_id_= #{musicGroupId}
+        <if test="classGroupId != null">
+            AND class_group_id_=#{classGroupId}
+        </if>
     </select>
 
     <!-- 根据班级和userId查询学生信息-->

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

@@ -19,6 +19,11 @@
         <result column="remark_" property="remark"/>
         <result column="create_time_" property="createTime"/>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
+    	<result column="key_" property="key"/>
+    	<result column="value_" property="value"/>
+    </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="TeacherAttendance">
@@ -227,4 +232,7 @@
         </if>
     </select>
 
+    <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
+        SELECT ta.teacher_id_ key_,u.real_name_ value_ FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ left join sys_user u on ta.teacher_id_ = u.id_ WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now()) and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
+    </select>
 </mapper>

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

@@ -205,6 +205,7 @@
         WHERE su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
+        ORDER BY t.update_time_ DESC
         <include refid="global.limit"/>
     </select>
 

+ 19 - 11
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -14,31 +14,39 @@ public interface TaskRemoteService {
 
 	@GetMapping(value = "task/vipGroupAwardedMonthlyRewards")
 	public void vipGroupAwardedMonthlyRewards();
-	
+
 	@GetMapping(value = "task/updateCourseScheduleToOverStatus")
-    boolean updateCourseScheduleToOverStatus();
-	
-	@GetMapping("task/pushNoSignInMessage")
-	// 推送未签到消息提醒
-	public void pushNoSignInMessage();
-	
+	boolean updateCourseScheduleToOverStatus();
+
 	@GetMapping("task/pushNoSignOutMessage")
 	// 推送未签退消息提醒
 	public void pushNoSignOutMessage();
-	
+
 	@GetMapping("task/vipGroupTeacherSalarySettlement")
 	// vip课课酬结算
 	public void vipGroupTeacherSalarySettlement();
-	
+
 	@GetMapping("task/studentCoursesScheduleRemind")
 	// 学生有课提醒
 	public void studentCoursesScheduleRemind();
-	
+
 	@GetMapping("task/studentSignInRemind")
 	// 学生上课提醒
 	public void studentSignInRemind();
-	
+
 	@GetMapping("task/studentHomeworkRemind")
 	// 学生作业提醒
 	public void studentHomeworkRemind();
+
+	@GetMapping("task/teacherCoursesScheduleRemind")
+	// 老师有课提醒
+	public void teacherCoursesScheduleRemind();
+
+	@GetMapping("task/teacherSignInRemind")
+	// 老师上课提醒
+	public void teacherSignInRemind();
+
+	@GetMapping("task/homeworkNoReplyRemind")
+	// 老师未回复作业提醒
+	public void homeworkNoReplyRemind();
 }

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

@@ -28,11 +28,6 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	}
 
 	@Override
-	public void pushNoSignInMessage() {
-		logger.info("推送未签到消息提醒的服务调用失败");
-	}
-
-	@Override
 	public void pushNoSignOutMessage() {
 		logger.info("推送未签退消息提醒的服务调用失败");
 	}
@@ -57,4 +52,19 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 		logger.info("学生作业提醒的服务调用失败");
 	}
 
+	@Override
+	public void teacherCoursesScheduleRemind() {
+		logger.info("老师有课提醒的服务调用失败");
+	}
+
+	@Override
+	public void teacherSignInRemind() {
+		logger.info("老师上课提醒的服务调用失败");
+	}
+
+	@Override
+	public void homeworkNoReplyRemind() {
+		logger.info("老师未回复作业提醒的服务调用失败");
+	}
+
 }

+ 18 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/HomeworkNoReplyRemaindTask.java

@@ -0,0 +1,18 @@
+package com.ym.mec.task.jobs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+
+public class HomeworkNoReplyRemaindTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.homeworkNoReplyRemind();
+	}
+}

+ 18 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/StudentHomeworkRemaindTask.java

@@ -0,0 +1,18 @@
+package com.ym.mec.task.jobs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+
+public class StudentHomeworkRemaindTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.studentHomeworkRemind();
+	}
+}

+ 18 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/TeacherCoursesScheduleRemaindTask.java

@@ -0,0 +1,18 @@
+package com.ym.mec.task.jobs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+
+public class TeacherCoursesScheduleRemaindTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.teacherCoursesScheduleRemind();
+	}
+}

+ 2 - 2
mec-task/src/main/java/com/ym/mec/task/jobs/PushNoSignInMessage.java → mec-task/src/main/java/com/ym/mec/task/jobs/TeacherSignInRemaindTask.java

@@ -6,13 +6,13 @@ import com.ym.mec.task.TaskRemoteService;
 import com.ym.mec.task.core.BaseTask;
 import com.ym.mec.task.core.TaskException;
 
-public class PushNoSignInMessage  extends BaseTask {
+public class TeacherSignInRemaindTask extends BaseTask {
 
 	@Autowired
 	private TaskRemoteService taskRemoteService;
 
 	@Override
 	public void execute() throws TaskException {
-		taskRemoteService.pushNoSignInMessage();
+		taskRemoteService.teacherSignInRemind();
 	}
 }

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

@@ -92,7 +92,6 @@ public class MusicGroupController extends BaseController {
 		if (sysUser == null) {
 			return failed("用户信息获取失败");
 		}
-		queryInfo.setOrganId(sysUser.getOrganId());
 		return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
 	}
 

+ 26 - 9
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -5,6 +5,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.biz.service.CourseHomeworkService;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
@@ -25,16 +26,19 @@ public class TaskController extends BaseController {
 
 	@Autowired
 	private CourseScheduleService courseScheduleService;
-	
+
 	@Autowired
 	private TeacherAttendanceService teacherAttendanceService;
-	
+
 	@Autowired
 	private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
-	
+
 	@Autowired
 	private StudentCourseHomeworkService studentCourseHomeworkService;
 	
+	@Autowired
+	private CourseHomeworkService courseHomeworkService;
+
 	@GetMapping("/refreshPaymentFeeStatus")
 	// 刷新付费状态
 	public void refreshPaymentFeeStatus() {
@@ -59,12 +63,6 @@ public class TaskController extends BaseController {
 		courseScheduleService.updateCourseScheduleToOverStatus();
 	}
 
-	@GetMapping("/pushNoSignInMessage")
-	// 推送未签到消息提醒
-	public void pushNoSignInMessage() {
-		courseScheduleService.pushNoSignInMessage();
-	}
-
 	@GetMapping("/pushNoSignOutMessage")
 	// 推送未签退消息提醒
 	public void pushNoSignOutMessage() {
@@ -88,4 +86,23 @@ public class TaskController extends BaseController {
 	public void studentHomeworkRemind() {
 		studentCourseHomeworkService.homeworkRemind();
 	}
+
+	@GetMapping("/teacherCoursesScheduleRemind")
+	// 老师有课提醒
+	public void teacherCoursesScheduleRemind() {
+		courseScheduleService.teacherCoursesScheduleRemind();
+	}
+
+	@GetMapping("/teacherSignInRemind")
+	// 老师上课提醒
+	public void teacherSignInRemind() {
+		courseScheduleService.teacherSignInRemind();
+	}
+
+	@GetMapping("/homeworkNoReplyRemind")
+	// 老师未回复作业提醒
+	public void homeworkNoReplyRemind() {
+		courseHomeworkService.homeworkNoReplyRemind();
+	}
+
 }

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -33,8 +33,7 @@ public class TeacherController extends BaseController {
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('teacher/add')")
     public HttpResponseResult add(Teacher teacher) throws Exception {
-        teacherService.add(teacher);
-        return succeed();
+        return succeed(teacherService.add(teacher));
     }
 
     @ApiOperation(value = "分页查询教师列表")
@@ -45,7 +44,7 @@ public class TeacherController extends BaseController {
         if(sysUser == null){
             return failed("用户信息获取失败");
         }
-        queryInfo.setOrganId(sysUser.getOrganId());
+//        queryInfo.setOrganId(sysUser.getOrganId());
         return succeed(teacherService.queryPageDetail(queryInfo));
     }