Selaa lähdekoodia

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

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
yonge 5 vuotta sitten
vanhempi
commit
2ab9e0f6fd
41 muutettua tiedostoa jossa 536 lisäystä ja 304 poistoa
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java
  5. 18 12
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  6. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  7. 7 4
      mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupService.java
  8. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java
  9. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java
  10. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  11. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  12. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  13. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  14. 8 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  15. 8 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java
  16. 46 27
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  17. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  19. 24 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  20. 3 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  21. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  22. 59 31
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  23. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  24. 51 44
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  25. 10 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  26. 54 53
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  27. 4 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  28. 7 3
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  29. 10 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  30. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  31. 20 16
      mec-im/src/main/java/com/ym/service/Impl/HereWhiteServiceImpl.java
  32. 2 2
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  33. 10 21
      mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java
  34. 21 6
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  35. 3 2
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/DemoGroupController.java
  36. 0 15
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  37. 71 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSchoolController.java
  38. 12 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSubjectController.java
  39. 4 6
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  40. 1 1
      mec-util/src/main/java/com/ym/mec/util/collection/MapUtil.java
  41. 8 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

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

@@ -385,4 +385,13 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     List<ImUserModel> findGroupTeacher(Integer groupId);
+
+    /**
+     * @describe 根据课程获取班级信息
+     * @author Joburgess
+     * @date 2019/11/4
+     * @param courseScheduleId: 课程编号
+     * @return com.ym.mec.biz.dal.entity.ClassGroup
+     */
+    ClassGroup findByCourseSchedule(Integer courseScheduleId);
 }

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

@@ -38,6 +38,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 	int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
 
 	/**
+	 * @describe 修改课程的状态
+	 * @author Joburgess
+	 * @date 2019/11/4
+	 * @param courseScheduleId: 课程编号
+	 * @param status: 状态
+	 * @return int
+	 */
+	int updateCourscheduleStatus(@Param("courseScheduleId") Integer courseScheduleId,
+								 @Param("status") String status);
+
+	/**
 	 * @describe 批量删除课程计划
 	 * @author Joburgess
 	 * @date 2019/10/31
@@ -381,6 +392,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 	 */
 	void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("schoolId") Integer schoolId);
 
+
+
 	/**
 	 * 获取班级某时间后相应节数的课程
 	 *

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -28,7 +28,8 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * 根据学生vip课获取缴费订单
      */
     StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId,
-                                              @Param("userId") Integer userId);
+                                              @Param("userId") Integer userId,
+                                              @Param("status") String status);
 
     /**
      * 查询乐团报名的订单
@@ -73,4 +74,4 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     List<UserGoodsDto> findGoodsIds(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
-}
+}

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

@@ -73,7 +73,7 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
      * @Date: 2019/9/26
      * 获取教师所属科目列表
      */
-    List<Subject> findTeacherSubjects(Long teacherId);
+    List<Subject> findTeacherSubjects(Integer teacherId);
 
     List<ConditionDto> findSubjectConditions();
 

+ 18 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -1,19 +1,14 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto;
-import com.ym.mec.biz.dal.dto.MusicGroupTeachersDto;
-import com.ym.mec.biz.dal.dto.TeacherCloseDto;
-import com.ym.mec.biz.dal.dto.musicGroupStudentApplyDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
@@ -159,7 +154,18 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     List<BasicUserDto> queryMusicGroupStudents(@Param("teacherIds") String teacherIds,@Param("search") String search);
-    
+
+    /**
+     * @describe 根据声部获取部门下的老师
+     * @author Joburgess
+     * @date 2019/11/4
+     * @param organId: 部门编号
+     * @param subjectId: 声部编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.Teacher>
+     */
+    List<Teacher> findOrganTeacherBySubject(@Param("organId") Integer organId,
+                                            @Param("subjectId") Integer subjectId);
+
     /**
      * 根据分部查询老师数
      * @param organId

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

@@ -16,15 +16,15 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_WITHDRAW_SUCCESS("SMS_WITHDRAW_SUCCESS", "提现成功"),
     SMS_MUSIC_GROUP_CLOSE("SMS_MUSIC_GROUP_CLOSE", "乐团关闭(关闭后)"),
 
-    STUDENT_SMS_PAYMENT_SUCCESS("STUDENT_SMS_PAYMENT_RESULT", "缴费成功结果通知"),
-    STUDENT_SMS_PAYMENT_FAILED("STUDENT_SMS_PAYMENT_RESULT", "缴费失败结果通知"),
+    STUDENT_SMS_PAYMENT_SUCCESS("STUDENT_SMS_PAYMENT_SUCCESS", "缴费成功结果通知"),
+    STUDENT_SMS_PAYMENT_FAILED("STUDENT_SMS_PAYMENT_FAILED", "缴费失败结果通知"),
     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", "基础技能训练报名通知"),
     STUDENT_SMS_WAIT_RENEW_MESSAGE("STUDENT_SMS_WAIT_RENEW_MESSAGE", "待续费通知"),
     STUDENT_PUSH_WAIT_RENEW_MESSAGE("STUDENT_PUSH_WAIT_RENEW_MESSAGE", "待续费通知"),
-    STUDENT_SMS_MUSIC_GROUP_RENEW_RESULT("STUDENT_SMS_MUSIC_GROUP_RENEW_RESULT", "乐团续费结果"),
-    STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT("STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT", "乐团续费结果"),
+    STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS("STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS", "乐团续费成功结果"),
+    STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED("STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED", "乐团续费失败结果"),
     STUDENT_SMS_BALANCE_CONSUME("STUDENT_SMS_BALANCE_CONSUME", "余额消费"),
     STUDENT_PUSH_BALANCE_CONSUME("STUDENT_PUSH_BALANCE_CONSUME", "余额消费"),
     STUDENT_PUSH_VIP_BUY("STUDENT_PUSH_VIP_BUY", "VIP课购买"),

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

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.page.TeacherManageDemoGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -56,11 +57,13 @@ public interface DemoGroupService extends BaseService<Long, DemoGroup> {
     List<EducationDemoGroupListDto> findDemoGroupStartClassTimesWithWeekByTeacherId(Long teacherID);
 
     /**
-     * @describe 获取试老师下周的试听课
+     * @describe 获取试老师指定时间段内的试听课
      * @author Joburgess
-     * @date 2019/10/28
-     * @param teacherId:
+     * @date 2019/11/4
+     * @param teacherId: 教师编号
+     * @param startTime: 开始时间
+     * @param endTime: 结束时间
      * @return java.util.Map<java.lang.String,java.lang.Object>
      */
-    Map<String,Object> findByTeacherId(Integer teacherId);
+    Map<String,Object> findByTeacherId(Integer teacherId, Date startTime, Date endTime);
 }

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

@@ -37,6 +37,7 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
     boolean updateReplyStatus(Integer teacherId,Long courseHomeworkId,Integer studentId);
 
     /**
+     * @author Gaoyong
      * 课程作业提醒
      * @return
      */

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

@@ -7,7 +7,6 @@ import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -65,7 +64,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
      * @Date: 2019/9/26
      * 获取教师所属科目列表
      */
-    List<Subject> findTeacherSubjects();
+    List<Subject> findTeacherSubjects(Integer userId);
 
     List<ConditionDto> findSubjectConditions();
 
@@ -85,4 +84,4 @@ public interface SubjectService extends BaseService<Integer, Subject> {
     List<Subject> findSubSubjects();
 
     List<Subject> findBySubjectByIdList(List<Integer> subjectIdList);
-}
+}

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

@@ -96,6 +96,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
 	String MUSIC_GROUP_SETTLEMENT_SINGLE_CLASS_MINUTES="music_group_settlement_single_class_minutes";
 
+	String REFUND_PERIOD = "refund_period";
+
 	/**
 	 * @params paramName
 	 * @return com.ym.mec.biz.dal.entity.SysConfig

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
@@ -21,6 +22,21 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	Map<String, Object> addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto);
 
 	/**
+	 * @describe 调价教师签到记录
+	 * @author Joburgess
+	 * @date 2019/11/4
+	 * @param courseScheduleId: 课程编号
+	 * @param userId: 用户编号
+	 * @param signStatus: 签到or签退
+	 * @param updateCourseScheduleStatus: 是否更新课程状态
+	 * @return void
+	 */
+	void addTeacherAttendanceRecord(Integer courseScheduleId,
+									Integer userId,
+									SignStatusEnum signStatus,
+									boolean updateCourseScheduleStatus);
+
+	/**
 	 * 获取教师个人的签到记录
 	 * @return
 	 */

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

@@ -78,6 +78,17 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     List<Teacher> findTeachers(@Param("organId") Integer organId);
 
     /**
+     * @describe 根据科目获取部门下的教师
+     * @author Joburgess
+     * @date 2019/11/4
+     * @param organId: 部门编号
+     * @param subjectId: 科目编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.Teacher>
+     */
+    List<Teacher> findOrganTeacherBySubject(@Param("organId") Integer organId,
+                                            @Param("subjectId") Integer subjectId);
+
+    /**
      * 获取教师上课结算列表
      * @param queryInfo
      * @return
@@ -121,4 +132,4 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @return
      */
     PageInfo<musicGroupStudentApplyDto> queryMusicGroupStudentApply(queryMusicGroupStudentQueryInfo queryInfo);
-}
+}

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

@@ -704,9 +704,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 teacherClassGroupDto.setStudentNames(StringUtils.join(studentNums, ","));
                 if (teacherClassGroupDto.getOffLineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() <= 0) {
                     teacherClassGroupDto.setClassMode(1);
-                } else if (teacherClassGroupDto.getOffLineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
+                } else if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
                     teacherClassGroupDto.setClassMode(3);
-                } else if (teacherClassGroupDto.getOnlineClassesNum() < 0 && teacherClassGroupDto.getOffLineClassesNum() >= 0) {
+                } else if (teacherClassGroupDto.getOnlineClassesNum() <= 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
                     teacherClassGroupDto.setClassMode(2);
                 } else {
                     teacherClassGroupDto.setClassMode(0);

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

@@ -773,14 +773,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				dataList = courseScheduleDao.queryTeacherClassCourseSchedule(params);
 			}else{
 				dataList = courseScheduleDao.queryTeacherHistoryClassCourseSchedule(params);
-				List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
-				List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
-				if(!CollectionUtils.isEmpty(currentClassTimesByCourses)){
-					Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertMybatisMap(currentClassTimesByCourses);
-					dataList.forEach(e->{
-						e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
-					});
-				}
+			}
+			List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
+			List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
+			if(!CollectionUtils.isEmpty(currentClassTimesByCourses)){
+				Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertMybatisMap(currentClassTimesByCourses);
+				dataList.forEach(e->{
+					e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
+				});
 			}
 		}
 		if (count == 0) {

+ 8 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -260,17 +260,19 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 	}
 
 	@Override
-	public Map<String,Object> findByTeacherId(Integer teacherId) {
+	public Map<String,Object> findByTeacherId(Integer teacherId,Date startTime,Date endTime) {
 		Date now=new Date();
-		//下周一日期
-		Date nextMonday= DateUtil.getNextWeekMonday(now);
-		//下周日日期
-		Date nextSunday=DateUtil.getNextWeekSunday(now);
+		if(Objects.isNull(startTime)||Objects.isNull(endTime)){
+			//下周一日期
+			startTime= DateUtil.getNextWeekMonday(now);
+			//下周日日期
+			endTime=DateUtil.getNextWeekSunday(now);
+		}
 
 		Map<String,Object> result=new HashMap<>();
 
 		//当前教师下周的试听课计划
-		List<DemoGroupCoursesPlan> nextWeekDemoGroupCoursePlan = demoGroupCoursesPlanDao.findByDateZone(nextMonday, nextSunday, teacherId);
+		List<DemoGroupCoursesPlan> nextWeekDemoGroupCoursePlan = demoGroupCoursesPlanDao.findByDateZone(startTime, endTime, teacherId);
 		if(CollectionUtils.isEmpty(nextWeekDemoGroupCoursePlan)){
 			result.put("baseInfo",new Object());
 			result.put("list",new ArrayList<>());

+ 46 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -19,6 +19,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 com.ym.mec.util.string.MessageFormatter;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -110,6 +111,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private SysMessageConfigDao sysMessageConfigDao;
 
+	@Autowired
+	private SysConfigDao sysConfigDao;
+
     @Override
     public BaseDAO<String, MusicGroup> getDAO() {
         return musicGroupDao;
@@ -195,7 +199,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //乐团状态是否正确
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if(musicGroup != null){
-            if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT || musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
+            if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
                 throw new Exception("当前乐团状态不支持此操作");
             }
             //记录日志信息
@@ -363,7 +367,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         //获取当前乐团所有已报名学员
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
-
+        Map<Integer,String> map = new HashMap<>(registrations.size());
+        registrations.forEach(e->{
+            map.put(e.getUserId(),e.getParentsPhone());
+        });
+        String content = sysMessageConfigDao.findContent(MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE.getCode());
+        content = MessageFormatter.arrayFormat(content,sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
+        sysMessageService.batchSendMessage(MessageSender.JIGUANG,"",content,map,new Date(),0,"");
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
         return true;
@@ -633,26 +643,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(musicGroupStudentFee == null){
             throw new BizException("系统数据异常,找不到学员预缴费信息");
         }
-
         Date date = new Date();
-
-        musicGroupStudentFee.setUpdateTime(date);
-        musicGroupStudentFee.setLatestPaidTime(date);
-        musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
-        musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-        musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
-
-        musicGroupStudentFeeDao.update(musicGroupStudentFee);
-        
-		SysUser user = sysUserFeignService.queryUserById(userId);
-        Map<Integer, String> receivers = new HashMap<Integer, String>();
-        receivers.put(user.getId(), userId + "");
-
-		// 发送续费结果通知
-		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT, receivers, null, 0, "",
-				user.getRealName());
-
-        return true;
+        Map<Integer, String> receivers = new HashMap<Integer, String>(1);
+        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+        receivers.put(userId, studentRegistration.getParentsPhone());
+        if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
+            musicGroupStudentFee.setUpdateTime(date);
+            musicGroupStudentFee.setLatestPaidTime(date);
+            musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+            musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
+            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+            musicGroupStudentFeeDao.update(musicGroupStudentFee);
+            // 发送续费结果通知
+
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
+                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
+                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+            return true;
+        }
+        if(studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAilED){
+            String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL + musicGroupId);
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "",
+                    studentApplyUrl);
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "",
+                    studentApplyUrl);
+            return false;
+        }
+        return false;
     }
 
     @Override
@@ -743,9 +761,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new Exception("用户信息获取失败");
         }
         String musicGroupId = subFeeSettingDto.getMusicGroup().getId();
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.DRAFT);
-        if(musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
-            throw new Exception("当前乐团状态不支持此操作");
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if(musicGroup == null){
+            throw new Exception("乐团信息不存在");
         }
 
         Date date = new Date();
@@ -902,8 +920,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //获取所有家长电话
         Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
         //获取对应家长的用户编号
-//        Map<Integer,String> userIds = MapUtil.convertMybatisMap(studentRegistrationService.findParentId(StringUtils.join(parentsPhones,",")));
-//        String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
-//        sysMessageService.batchSendMessage(MessageSender.YIMEI,"",content,userIds,date,0,"");
+        Map<Integer,String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones,",")));
+        userIds = JSONObject.parseObject(JSONObject.toJSONString(userIds),HashMap.class);
+        String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
+        sysMessageService.batchSendMessage(MessageSender.YIMEI,"",content,userIds,new Date(),0,"");
     }
 }

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

@@ -109,6 +109,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
 		Integer studentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();
 		Integer leaveStudentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE).size();
+		courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
 		courseSchedule.setStudentNum(studentNum);
 		courseSchedule.setLeaveStudentNum(leaveStudentNum);
 		courseScheduleDao.update(courseSchedule);

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

@@ -110,7 +110,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 		List<StudentCourseHomework> list = studentCourseHomeworkDao.queryNotDoneHomeworkList();
 
 		for (StudentCourseHomework sch : list) {
-			Map<Integer, String> receivers = new HashMap<Integer, String>();
+			Map<Integer, String> receivers = new HashMap<Integer, String>(1);
 			receivers.put(sch.getUserId(), sch.getUserId() + "");
 
 			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_JOB_MESSAGE, receivers, null, 0, "", sch.getCourseHomework()

+ 24 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -195,14 +195,15 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 //        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
         //报名成功后,发送短信
         String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL + studentRegistration.getMusicGroupId());
-        String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_APPLY_MESSAGE.getCode());
+        String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
         Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
         MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
-        String format = DateUtil.format(musicGroup.getApplyExpireDate(), DateUtil.DATE_FORMAT_MIN);
-        sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.YIMEI,sysUser.getId(),"",
-                MessageFormatter.arrayFormat(content, studentRegistration.getParentsName(),subject.getName(),
-                        studentApplyUrl,musicGroup.getApplyExpireDate(),format,sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE)),
-                studentRegistration.getParentsPhone(),date,0,null);
+
+        Map<Integer,String> map = new HashMap<>(1);
+        map.put(studentRegistration.getUserId(),studentRegistration.getParentsPhone());
+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
+                MessageTypeEnum.SMS_APPLY_MESSAGE,map,null,0,"",
+                studentRegistration.getParentsName(),subject.getName(),studentApplyUrl,musicGroup.getApplyExpireDate(),serverPhone);
         return studentRegistration;
     }
 
@@ -511,13 +512,15 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             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,"");
+            Map<Integer,String> map = new HashMap<>(1);
+            map.put(studentPaymentOrder.getUserId(),studentRegistration.getParentsPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS,map,null,0,"",
+                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
             //push
-            sysMessageService.sendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,studentPaymentOrder.getUserId(),"",
-                    content,studentRegistration.getUserId().toString(),nowDate,0,"");
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS,map,null,0,"",
+                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
         }
 
         //失败减去已收款金额
@@ -527,14 +530,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             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,"");
+
+            Map<Integer,String> map = new HashMap<>(1);
+            map.put(studentPaymentOrder.getUserId(),studentRegistration.getParentsPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED,map,null,0,"",
+                    studentApplyUrl);
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED,map,null,0,"",
+                    studentApplyUrl);
         }
 
         return studentPaymentOrder;

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

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.SubjectGoodsMapperDao;
@@ -32,8 +31,6 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private SubjectGoodsMapperDao subjectGoodsMapperDao;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
 
     @Override
     public BaseDAO<Integer, Subject> getDAO() {
@@ -140,8 +137,8 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     }
 
     @Override
-    public List<Subject> findTeacherSubjects() {
-        return subjectDao.findTeacherSubjects(sysUserFeignService.queryUserInfo().getId().longValue());
+    public List<Subject> findTeacherSubjects(Integer userId) {
+        return subjectDao.findTeacherSubjects(userId);
     }
 
     @Override
@@ -172,4 +169,4 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     public List<Subject> findBySubjectByIdList(List<Integer> subjectIdList) {
         return subjectDao.findBySubjectByIdList(StringUtils.join(subjectIdList,","));
     }
-}
+}

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

@@ -268,7 +268,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (debugMode == false) {
 			code = getRandomCode(messageType, receiver);
 		}
-		Map<Integer, String> receivers = new HashMap<Integer, String>();
+		Map<Integer, String> receivers = new HashMap<>(1);
 		receivers.put(userId, receiver);
 		batchSendMessage(messageSender, messageType, receivers, null, 1, "", code);
 		redisCache.put(key, code, CODE_EXPIRE);

+ 59 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -1,42 +1,16 @@
 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.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;
-import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.ParamEnum;
-import com.ym.mec.biz.dal.enums.SignStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
-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.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -44,6 +18,12 @@ 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 {
@@ -66,6 +46,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	private SysConfigDao sysConfigDao;
 	@Autowired
 	private SysMessageService sysMessageService;
+	@Autowired
+	private ClassGroupDao classGroupDao;
 
 	@Override
 	public BaseDAO<Long, TeacherAttendance> getDAO() {
@@ -174,6 +156,52 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	}
 
 	@Override
+	public void addTeacherAttendanceRecord(Integer courseScheduleId, Integer userId, SignStatusEnum signStatus, boolean updateCourseScheduleStatus) {
+		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(userId.longValue(),courseScheduleId.longValue());
+		ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
+		boolean isAttendance=false;
+		Date now=new Date();
+
+		if(Objects.isNull(teacherAttendance)){
+			teacherAttendance=new TeacherAttendance();
+			teacherAttendance.setTeacherId(userId);
+			teacherAttendance.setClassGroupId(classGroup.getId());
+			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
+			teacherAttendance.setCourseScheduleId(courseScheduleId.longValue());
+		}else{
+			isAttendance=true;
+		}
+		switch (signStatus){
+			case SIGN_IN:
+				teacherAttendance.setSignInTime(now);
+				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+				int currentClassTimes = teacherAttendanceDao.countClassTime(classGroup.getId().longValue());
+				classGroup.setCurrentClassTimes(currentClassTimes);
+				if(updateCourseScheduleStatus){
+					courseScheduleDao.updateCourscheduleStatus(courseScheduleId,CourseStatusEnum.UNDERWAY.getCode());
+				}
+				break;
+			case SIGN_OUT:
+				teacherAttendance.setSignOutTime(now);
+				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+				if(updateCourseScheduleStatus){
+					courseScheduleDao.updateCourscheduleStatus(courseScheduleId,CourseStatusEnum.OVER.getCode());
+				}
+				break;
+			default:
+
+				break;
+		}
+		if(isAttendance){
+			if(SignStatusEnum.SIGN_OUT.equals(signStatus)){
+				teacherAttendanceDao.update(teacherAttendance);
+			}
+		}else{
+			teacherAttendanceDao.insert(teacherAttendance);
+		}
+	}
+
+	@Override
 	public PageInfo getTeacherPersonalAttendances(TeacherCloseQueryInfo queryInfo) {
 		PageInfo<TeacherPersonalAttendanceDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();

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

@@ -11,7 +11,6 @@ import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.dal.page.queryMusicGroupStudentQueryInfo;
-import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -202,6 +201,11 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
     }
 
 	@Override
+	public List<Teacher> findOrganTeacherBySubject(Integer organId, Integer subjectId) {
+		return teacherDao.findOrganTeacherBySubject(organId,subjectId);
+	}
+
+	@Override
 	public PageInfo<TeacherCloseDto> queryCloses(TeacherCloseQueryInfo queryInfo) {
 		PageInfo<TeacherCloseDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
@@ -359,4 +363,4 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		return teacher;
 	}
 
-}
+}

+ 51 - 44
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -17,6 +17,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -88,6 +89,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Autowired
 	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
 	@Autowired
+	private SysMessageService sysMessageService;
+	@Autowired
 	private VipGroupDefaultClassesCycleDao vipGroupDefaultClassesCycleDao;
 
 	@Override
@@ -726,20 +729,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("该课程已结束报名!");
 		}
 
-		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(), user.getId());
+		StudentPaymentOrder successOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.SUCCESS.getMsg());
 
-		if(Objects.nonNull(byStudentVipGroup)){
+		if(Objects.nonNull(successOrder)){
+			throw new BizException("您已购买过此课程");
+		}
 
-			//生成回调地址
-			Map payMap = payService.getPayMap(
-					vipGroup.getTotalPrice(),
-					byStudentVipGroup.getOrderNo(),
-					"https://47.99.212.176:8000/api-student/studentOrder/notify",
-					"http://mstudev.dayaedu.com/#/paymentResult",
-					"vip课购买",
-					vipGroup.getName());
+		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.ING.getMsg());
 
-			return payMap;
+		if(Objects.nonNull(byStudentVipGroup)){
+			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
+			studentPaymentOrderDao.update(byStudentVipGroup);
 		}
 
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
@@ -788,8 +792,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map payMap = payService.getPayMap(
 				vipGroup.getTotalPrice(),
 				orderNo,
-				"https://dyme.utools.club/api-student/studentOrder/notify",
-				"https://dyme.utools.club/paymentresult",
+				"http://mstudev.dayaedu.com/api-student/studentOrder/notify",
+				"http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
 				"vip课购买",
 				vipGroup.getName());
 		//将学员加入vip班级群组
@@ -810,6 +814,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Integer userId = order.getUserId();
 		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
 
+		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
 		studentPaymentOrderDao.update(order);
 
 		//将学生加入到班级,更新班级报名状态及人数信息
@@ -839,10 +844,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 			sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
 			sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
+			Map<Integer,String> map = new HashMap<>(1);
+			map.put(userId,userId.toString());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_VIP_BUY, map, null, 0, "",
+					vipGroup.getName());
 		}
 
-		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
-
 		//生成学生单课缴费信息
 		courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,userId);
 
@@ -866,7 +873,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public void applyRefund(Long vipGroupId,Integer studentId) {
 
 		StudentApplyRefunds studentApplyRefunds=new StudentApplyRefunds();
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId);
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getMsg());
 		if(null==studentPaymentOrder){
 			throw new BizException("未找到相关订单信息!");
 		}
@@ -885,9 +892,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
 		studentApplyRefunds.setUserId(studentId.intValue());
 		studentApplyRefundsDao.insert(studentApplyRefunds);
-		//学员退出班级群
-//		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentId.toString())};
-//		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 	}
 
 	@Transactional(rollbackFor = Exception.class)
@@ -913,30 +917,33 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setRemark(remark);
 		studentApplyRefundsDao.update(studentApplyRefunds);
 		switch (studentApplyRefunds.getStatus()) {
-		case PASS:
-			sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
-			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
-			SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
-			sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-			sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserCashAccountDetail.setAmount(amount);
-			sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
-			sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
-			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
-
-			ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
-					studentPaymentOrder.getClassGroupId());
-
-			classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
-			classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
-
-			break;
-		case REJECT:
-
-			break;
-		default:
-			throw new BizException("审核状态错误!");
+			case PASS:
+				sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
+				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
+				SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
+				sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
+				sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+				sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+				sysUserCashAccountDetail.setAmount(amount);
+				sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+				sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
+				sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
+
+				ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
+						studentPaymentOrder.getClassGroupId());
+
+				classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
+				classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
+
+				//学员退出班级群
+				ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
+				imFeignService.groupJoin(new ImGroupModel(studentPaymentOrder.getClassGroupId().toString(), imGroupMembers, null));
+				break;
+			case REJECT:
+
+				break;
+			default:
+				throw new BizException("审核状态错误!");
 		}
 	}
 
@@ -1028,7 +1035,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
     	for(Integer userId:studentSurplusClassFees.keySet()){
-			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,userId);
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,userId,DealStatusEnum.SUCCESS.getMsg());
 			if(null==studentPaymentOrder){
 				throw new BizException("未找到相关订单信息!");
 			}

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -254,7 +254,7 @@
         </where>
     </select>
     <select id="findVipStuNames" resultType="map">
-        SELECT cg.music_group_id_ 'key',GROUP_CONCAT(su.real_name_) 'value'
+        SELECT cg.music_group_id_ 'key',GROUP_CONCAT(su.username_) 'value'
         FROM class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
@@ -612,7 +612,7 @@
         <result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <select id="queryStudentVipCourses" resultMap="CourseListDto">
-        SELECT cg.id_ class_group_id_,vg.name_ music_group_name_,su.real_name_,
+        SELECT cg.id_ class_group_id_,vg.name_ music_group_name_,su.username_,
         cg.current_class_times_,cg.total_class_times_,vg.single_class_minutes_,
         IF(vg.online_classes_num_ IS NULL,0,vg.online_classes_num_) online_classes_num_,
         IF(vg.offline_classes_num_ IS NULL,0,vg.offline_classes_num_) offline_classes_num_,
@@ -671,4 +671,12 @@
                 #{classGroupId}
             </foreach>
     </select>
+    <select id="findByCourseSchedule" resultMap="ClassGroup">
+        SELECT
+            cg.*
+        FROM
+            course_schedule cs
+            LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        WHERE cs.id_=#{courseScheduleId}
+    </select>
 </mapper>

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

@@ -811,49 +811,49 @@
     
     <update id="batchUpdate" parameterType="java.util.List">
     	<foreach collection="list" item="item" index="index" open="" close="" separator=";">
-        UPDATE course_schedule
-        <set>
-            <if test="item.classDate != null">
-                class_date_ = #{item.classDate},
-            </if>
-            <if test="item.endClassTime != null">
-                end_class_time_ = #{item.endClassTime},
-            </if>
-            <if test="item.status != null">
-                status_ = #{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="item.type != null">
-                type_ = #{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="item.actualTeacherId != null">
-                actual_teacher_id_ = #{item.actualTeacherId},
-            </if>
-            <if test="item.subsidy != null">
-                subsidy_ = #{item.subsidy},
-            </if>
-            <if test="item.classGroupId != null">
-                class_group_id_ = #{item.classGroupId},
-            </if>
-            <if test="item.startClassTime != null">
-                start_class_time_ = #{item.startClassTime},
-            </if>
-            <if test="item.teacherId != null">
-                teacher_id_ = #{item.teacherId},
-            </if>
-            <if test="item.updateTime != null">
-                update_time_ = #{item.updateTime},
-            </if>
-            <if test="item.studentNum != null">
-                student_num_ = #{item.studentNum},
-            </if>
-            <if test="item.leaveStudentNum != null">
-                leave_student_num_ = #{item.leaveStudentNum},
-            </if>
-            <if test="item.schoolId != null">
-                school_id_ = #{item.choolId},
-            </if>
-        </set>
-        WHERE id_ = #{item.id}
+            UPDATE course_schedule
+            <set>
+                <if test="item.classDate != null">
+                    class_date_ = #{item.classDate},
+                </if>
+                <if test="item.endClassTime != null">
+                    end_class_time_ = #{item.endClassTime},
+                </if>
+                <if test="item.status != null">
+                    status_ = #{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                </if>
+                <if test="item.type != null">
+                    type_ = #{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                </if>
+                <if test="item.actualTeacherId != null">
+                    actual_teacher_id_ = #{item.actualTeacherId},
+                </if>
+                <if test="item.subsidy != null">
+                    subsidy_ = #{item.subsidy},
+                </if>
+                <if test="item.classGroupId != null">
+                    class_group_id_ = #{item.classGroupId},
+                </if>
+                <if test="item.startClassTime != null">
+                    start_class_time_ = #{item.startClassTime},
+                </if>
+                <if test="item.teacherId != null">
+                    teacher_id_ = #{item.teacherId},
+                </if>
+                <if test="item.updateTime != null">
+                    update_time_ = #{item.updateTime},
+                </if>
+                <if test="item.studentNum != null">
+                    student_num_ = #{item.studentNum},
+                </if>
+                <if test="item.leaveStudentNum != null">
+                    leave_student_num_ = #{item.leaveStudentNum},
+                </if>
+                <if test="item.schoolId != null">
+                    school_id_ = #{item.choolId},
+                </if>
+            </set>
+            WHERE id_ = #{item.id}
         </foreach>
     </update>
     <update id="updateByMusicGroupId">
@@ -861,6 +861,15 @@
         WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
     </update>
 
+    <update id="updateCourscheduleStatus">
+        UPDATE course_schedule SET status_ = #{status}
+        WHERE id_=#{courseScheduleId}
+    </update>
+
+    <select id="queryNoSignInListByBeforeMinutes" resultMap="CourseSchedule">
+        SELECT cs.* FROM course_schedule cs left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ WHERE ta.sign_in_time_ is null and SUBTIME(start_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
+    </select>
+
     <resultMap id="teacherClassCourseSchedule" type="com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto">
         <result property="classGroupId" column="class_group_id_"/>
         <result property="courseScheduleId" column="course_schedule_id_"/>
@@ -911,7 +920,7 @@
             LEFT JOIN class_group cg ON  cs.class_group_id_=cg.id_
             LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="teacherClassCourseScheduleQueryCondition"/>
-        ORDER BY cs.id_
+        ORDER BY start_class_time_
         <include refid="global.limit"/>
     </select>
 
@@ -1095,17 +1104,9 @@
     	select cssp.user_id_ key_,count(1) value_ from course_schedule cs right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_ where class_date_ = date(DATE_ADD(now(),INTERVAL 1 DAY)) group by cssp.user_id_
     </select>
     
-    <select id="queryStudentNotStartCourseScheduleIn90Mins" resultMap="Mapper">
+    <select id="queryNotStartCourseScheduleIn90Mins" resultMap="Mapper">
     	select cssp.user_id_ key_,cs.name_ value_ from course_schedule cs right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_ where CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_ADD(now(),INTERVAL 90 MINUTE) and cs.status_ = 'NOT_START'
     </select>
-    
-    <select id="queryTeacherCoursesTimesOfTomorrow" resultMap="Mapper">
-    	select csts.user_id_ key_,u.real_name_ value_ from course_schedule cs right join course_schedule_teacher_salary csts on cs.id_ = csts.course_schedule_id_ left join sys_user u on csts.user_id_ = u.id_ where class_date_ = date(DATE_ADD(now(),INTERVAL 1 DAY)) group by csts.user_id_
-    </select>
-    
-    <select id="queryTeacherNotStartCourseScheduleIn30Mins" resultMap="Mapper">
-    	select csts.user_id_ key_,cs.name_ value_ from course_schedule cs right join course_schedule_teacher_salary csts on cs.id_ = csts.course_schedule_id_ where CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_ADD(now(),INTERVAL 30 MINUTE) and cs.status_ = 'NOT_START'
-    </select>
 
     <resultMap id="IntegerAndIntegerListDto" type="com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto">
         <result property="id" column="id_"/>

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

@@ -192,7 +192,10 @@
         FROM
         student_vip_group_payment svgp
         LEFT JOIN student_payment_order spo ON svgp.student_payment_order_id_=spo.id_
-        WHERE svgp.user_id_=#{userId} AND svgp.vip_group_id_=#{vipGroupId} AND spo.status_='ING' and spo.type_ = 'SMALL_CLASS_TO_BUY'
+        WHERE svgp.user_id_=#{userId}
+        AND svgp.vip_group_id_=#{vipGroupId}
+        AND spo.status_=#{status}
+        and spo.type_ = 'SMALL_CLASS_TO_BUY'
     </select>
     <!-- 查询报名订单 -->
     <select id="findMusicGroupApplyOrderByStatus" resultMap="StudentPaymentOrder">

+ 7 - 3
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -432,8 +432,7 @@
         WHERE sr.music_group_id_ = #{musicGroupId}
         GROUP BY actual_subject_id_
     </select>
-
-    <select id="findParentId" resultType="java.util.Map">
+    <select id="findParentId" resultType="map">
         SELECT MAX(sr.user_id_) `key`,sr.parents_phone_ `value`
         FROM student_registration sr
         WHERE FIND_IN_SET(sr.parents_phone_,#{parentPhones})
@@ -453,6 +452,11 @@
     </update>
     
     <select id="queryStudentNum" resultType="map">
-        SELECT count(*) total_num_,sum(case when create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when music_group_status_ = 'QUIT' and update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_ FROM student_registration 
+        SELECT count(sr.id_) total_num_,sum(case when sr.create_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_,sum(case when sr.music_group_status_ = 'QUIT' and sr.update_time_ >= timestamp(date_add(curdate(), interval - day(curdate()) + 1 day)) then 1 else 0 end) new_num_ FROM student_registration sr left join music_group mg on sr.music_group_id_ = mg.id_
+        <where>
+    		<if test="organId != null">
+    			mg.organ_id_ = #{organId}
+    		</if>
+    	</where> 
     </select>
 </mapper>

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

@@ -454,6 +454,16 @@
         </if>
         GROUP BY t.id_
     </select>
+    <select id="findOrganTeacherBySubject" resultType="com.ym.mec.biz.dal.entity.Teacher">
+        SELECT su.* FROM teacher t
+        LEFT JOIN sys_user su on t.id_ = su.id_ WHERE 1=1
+        <if test="organId != null">
+            AND t.organ_id_ = #{organId}
+        </if>
+        <if test="subjectId != null">
+            AND FIND_IN_SET(#{subjectId},t.subjectId)
+        </if>
+    </select>
 
     <sql id="queryCloses">
         <where>

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

@@ -270,7 +270,7 @@
             vg.status_!=3
             AND vg.audit_status_='PASS'
             AND vg.status_=1
-            AND (select count(1) as num from student_vip_group_payment where vg.id_ = vip_group_id_ AND user_id_=#{userId}) = 0
+            AND (select count(1) as num from student_payment_order where vg.id_ = music_group_id_ AND user_id_=#{userId} AND status_='SUCCESS') = 0
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>

+ 20 - 16
mec-im/src/main/java/com/ym/service/Impl/HereWhiteServiceImpl.java

@@ -35,22 +35,26 @@ public class HereWhiteServiceImpl implements HereWhiteService {
         String url = "/room?token=" + hereWhiteToken;
         JSONObject jsonObject = JSONObject.parseObject(requestParam(json, url));
         if(jsonObject.getString("code").equals("200")){
-            JSONObject room = jsonObject.getJSONObject("msg").getJSONObject("room");
-            HereWhite hereWhite = new HereWhite();
-            Date date = new Date();
-            hereWhite.setCourseScheduleId(courseScheduleId);
-            hereWhite.setName(room.getString("name"));
-            hereWhite.setLimit(room.getInteger("limit"));
-            hereWhite.setTeamId(room.getInteger("teamId"));
-            hereWhite.setAdminId(room.getInteger("adminId"));
-            hereWhite.setMode(room.getString("mode"));
-            hereWhite.setTemplate(room.getString("template"));
-            hereWhite.setRegion(room.getString("region"));
-            hereWhite.setUuid(room.getString("uuid"));
-            hereWhite.setRoomToken(jsonObject.getJSONObject("msg").getString("roomToken"));
-            hereWhite.setUpdatedAt(date);
-            hereWhite.setCreatedAt(date);
-            return hereWhiteDao.save(hereWhite);
+            HereWhite hereWhite = hereWhiteDao.findByCourseScheduleId(courseScheduleId);
+            if(hereWhite == null){
+                JSONObject room = jsonObject.getJSONObject("msg").getJSONObject("room");
+                hereWhite = new HereWhite();
+                Date date = new Date();
+                hereWhite.setCourseScheduleId(courseScheduleId);
+                hereWhite.setName(room.getString("name"));
+                hereWhite.setLimit(room.getInteger("limit"));
+                hereWhite.setTeamId(room.getInteger("teamId"));
+                hereWhite.setAdminId(room.getInteger("adminId"));
+                hereWhite.setMode(room.getString("mode"));
+                hereWhite.setTemplate(room.getString("template"));
+                hereWhite.setRegion(room.getString("region"));
+                hereWhite.setUuid(room.getString("uuid"));
+                hereWhite.setRoomToken(jsonObject.getJSONObject("msg").getString("roomToken"));
+                hereWhite.setUpdatedAt(date);
+                hereWhite.setCreatedAt(date);
+                hereWhiteDao.save(hereWhite);
+            }
+            return hereWhite;
         }else {
             throw new Exception(jsonObject.getString("msg"));
         }

+ 2 - 2
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -240,8 +240,8 @@ public class MusicGroupController extends BaseController {
         Map payMap = payService.getPayMap(
                 orderAmount,
                 orderNo,
-                "http://47.99.212.176:8000/studentOrder/notify",
-                "http://mstudev.dayaedu.com/#/paymentResult",
+                "http://mstudev.dayaedu.com/api-student/studentOrder/notify",
+                "http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
                 "测试订单",
                 "测试订单");
 

+ 10 - 21
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -1,11 +1,17 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysSuggestion;
+import com.ym.mec.biz.dal.entity.SysUserBankCard;
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.util.upload.UploadUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-
-import java.util.Date;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -17,22 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.CashAccountDetail;
-import com.ym.mec.biz.dal.entity.SysSuggestion;
-import com.ym.mec.biz.dal.entity.SysUserBankCard;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.StudentManageService;
-import com.ym.mec.biz.service.StudentWithdrawService;
-import com.ym.mec.biz.service.SysSuggestionService;
-import com.ym.mec.biz.service.SysUserBankCardService;
-import com.ym.mec.biz.service.SysUserCashAccountDetailService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
-import com.ym.mec.biz.service.UploadFileService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.UploadReturnBean;
-import com.ym.mec.util.upload.UploadUtil;
+import java.util.Date;
 
 @Api(tags = "学生管理")
 @RestController
@@ -49,8 +40,6 @@ public class StudentManageController extends BaseController {
     @Autowired
     private ClassGroupService classGroupService;
     @Autowired
-    private StudentWithdrawService studentWithdrawService;
-    @Autowired
     private SysUserBankCardService sysUserBankCardService;
     @Autowired
     private StudentManageService studentManageService;

+ 21 - 6
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -7,20 +7,22 @@ import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.thirdparty.union.NotifyMsg;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
 
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
 @RestController
-public class StudentOrderController {
+public class StudentOrderController extends BaseController {
     private static final Logger logger = LoggerFactory.getLogger(StudentOrderController.class);
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
@@ -71,9 +73,22 @@ public class StudentOrderController {
         }else if(order.getType().equals(OrderTypeEnum.RENEW)){
         	musicGroupService.renewForCallback(order);
         }
-
         return "SUCCESS";
     }
 
 
+    @ApiOperation(value = "查询订单状态")
+    @GetMapping("/checkOrderStatus")
+    public Object checkOrderStatus(String orderNo){
+        if(StringUtils.isBlank(orderNo)){
+            return failed("请指定订单");
+        }
+        StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        if(Objects.isNull(orderByOrderNo)){
+            return failed("未找到指定订单");
+        }
+        return succeed(orderByOrderNo.getStatus());
+    }
+
+
 }

+ 3 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/DemoGroupController.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.Objects;
 
 /**
@@ -58,12 +59,12 @@ public class DemoGroupController extends BaseController {
 
     @ApiOperation(value = "获取指定老师试听课")
     @GetMapping("/findByTeacherId")
-    public Object findByTeacherId(){
+    public Object findByTeacherId(Date startTime, Date endTime){
         SysUser user = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return succeed(demoGroupService.findByTeacherId(user.getId()));
+        return succeed(demoGroupService.findByTeacherId(user.getId(),startTime,endTime));
     }
 
 }

+ 0 - 15
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -8,7 +8,6 @@ import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.biz.dal.page.queryMusicGroupStudentQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.SchoolService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
@@ -16,7 +15,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -37,9 +35,6 @@ public class TeacherController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
-    @Autowired
-    private SchoolService schoolService;
-
     @ApiOperation(value = "修改教师个人中心信息")
     @PostMapping("/update")
     public Object update(Teacher teacher) {
@@ -118,16 +113,6 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.findTeacherNoPay(teacherId));
     }
 
-    @ApiOperation(value = "获取教师vip课教学点")
-    @GetMapping("/findVipSchoolByTeacher")
-    public Object findVipSchoolByTeacher(){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed(HttpStatus.FORBIDDEN,"请登录");
-        }
-        return succeed(schoolService.findVipSchoolByTeacher(sysUser.getId()));
-    }
-
     @ApiOperation(value = "获取乐团学院学员报名列表")
     @GetMapping("queryStudentApply")
     public Object queryMusicGroupStudentApply(queryMusicGroupStudentQueryInfo queryInfo) {

+ 71 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSchoolController.java

@@ -0,0 +1,71 @@
+package com.ym.mec.teacher.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.service.SchoolService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/11/4
+ */
+
+@RequestMapping("school")
+@Api(tags = "教师教学点服务")
+@RestController
+public class TeacherSchoolController extends BaseController {
+
+    @Autowired
+    private SchoolService schoolService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "新增学校")
+    @PostMapping("/add")
+    public Object add(School school){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        school.setUserId(sysUser.getId());
+        schoolService.insert(school);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除学校")
+    @PostMapping("/del")
+    public Object del(@ApiParam(value = "学校编号", required = true) Integer id){
+        schoolService.delete(id);
+        return succeed();
+    }
+
+    @ApiOperation(value = "修改学校")
+    @PostMapping("/update")
+    public Object update(School school){
+        school.setUpdateTime(new Date());
+        schoolService.update(school);
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取教师vip课教学点")
+    @GetMapping("/findVipSchoolByTeacher")
+    public Object findVipSchoolByTeacher(){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        return succeed(schoolService.findVipSchoolByTeacher(sysUser.getId()));
+    }
+}

+ 12 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSubjectController.java

@@ -1,14 +1,19 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Objects;
+
 /**
  * @Author Joburgess
  * @Date 2019/9/26
@@ -20,11 +25,17 @@ public class TeacherSubjectController extends BaseController {
 
     @Autowired
     private SubjectService subjectService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "获取教师所在科目列表")
     @GetMapping("/findTeacherSubjets")
     public Object findTeacherSubjets(){
-        return succeed(subjectService.findTeacherSubjects());
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        return succeed(subjectService.findTeacherSubjects(sysUser.getId()));
     }
 
     @ApiOperation(value = "获取子集科目列表")

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

@@ -4,18 +4,14 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
+import com.ym.mec.biz.service.SchoolService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Objects;
 
@@ -33,6 +29,8 @@ public class TeacherVipGroupController extends BaseController {
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SchoolService schoolService;
 
 	@ApiOperation("vip课申请")
 	@PostMapping("/vipGroupApply")

+ 1 - 1
mec-util/src/main/java/com/ym/mec/util/collection/MapUtil.java

@@ -116,4 +116,4 @@ public class MapUtil {
 		});
 		return result;
 	}
-}
+}

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -73,6 +73,14 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.findTeachers(organId));
     }
 
+    @ApiOperation(value = "根据科目获取部门下的教师")
+    @GetMapping("/findOrganTeacherBySubject")
+    @PreAuthorize("@pcs.hasPermissions('teacher/findOrganTeacherBySubject')")
+    public HttpResponseResult findOrganTeacherBySubject(Integer subjecId) {
+        Integer organId = sysUserFeignService.queryUserInfo().getOrganId();
+        return succeed(teacherService.findOrganTeacherBySubject(organId,subjecId));
+    }
+
     @ApiOperation(value = "获取乐团所有老师")
     @GetMapping("/findMusicGroupTeachers")
     @PreAuthorize("@pcs.hasPermissions('teacher/findMusicGroupTeachers')")