zouxuan 5 vuotta sitten
vanhempi
commit
f5959d1334

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -143,4 +143,12 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @return
      * @return
      */
      */
     StudentAttendance findByStatusAndCourseScheduleId(@Param("userId") Integer userId, @Param("courseScheduleId") int courseScheduleId);
     StudentAttendance findByStatusAndCourseScheduleId(@Param("userId") Integer userId, @Param("courseScheduleId") int courseScheduleId);
+
+
+    /**
+     * 封装未签到学员列表
+     * @param courseScheduleId
+     * @return
+     */
+    List<StudentAttendance> queryNoSignStudentRecord(Integer courseScheduleId);
 }
 }

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

@@ -89,10 +89,4 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
                                              @Param("date") Date date,
                                              @Param("date") Date date,
                                              @Param("signInStatus") Integer signInStatus);
                                              @Param("signInStatus") Integer signInStatus);
 
 
-    /**
-     * 封装未签到学员列表
-     * @param courseScheduleId
-     * @return
-     */
-    List<StudentAttendance> queryNoSignStudentRecord(Integer courseScheduleId);
 }
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -52,6 +52,14 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<Map<Integer, String>> queryNameByIds(@Param("userIds") String userIds);
     List<Map<Integer, String>> queryNameByIds(@Param("userIds") String userIds);
 
 
     /**
     /**
+     * 根据用户编号列表获取手机号
+     *
+     * @param userIds
+     * @return
+     */
+    List<Map<Integer, String>> queryPhoneByIds(@Param("userIds") String userIds);
+
+    /**
      * 根据用户编号获取用户名称
      * 根据用户编号获取用户名称
      *
      *
      * @param userId
      * @param userId

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
@@ -65,6 +66,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private ClassGroupService classGroupService;
 	private ClassGroupService classGroupService;
 	@Autowired
 	@Autowired
 	private ClassGroupDao classGroupDao;
 	private ClassGroupDao classGroupDao;
+	@Autowired
+	private TeacherDao teacherDao;
 
 
 	@Override
 	@Override
 	public BaseDAO<Long, CourseSchedule> getDAO() {
 	public BaseDAO<Long, CourseSchedule> getDAO() {
@@ -465,7 +468,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 
 		//课程对应助教集合
 		//课程对应助教集合
 		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
 		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
-		Map<Long, List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+		Map<Long,List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
 
 
 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
 		newCourseSchedules.forEach(newCourseSchedule -> {
 		newCourseSchedules.forEach(newCourseSchedule -> {
@@ -570,6 +573,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){
 		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){
 			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
 			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
 		}
 		}
+		//推送课时调整
+		Set<Integer> teacherIds = newCourseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet());
+		if(teacherIds == null){
+			teacherIds = new HashSet<>();
+		}
+		teacherIds.addAll(oldCourseScheduleList.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()));
+		HashMap<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(teacherIds, ",")))), HashMap.class);
+		if(map != null && map.size() > 0){
+			sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
+					map,null,0,"","");
+		}
 	}
 	}
 
 
 	@Transactional(rollbackFor = Exception.class)
 	@Transactional(rollbackFor = Exception.class)

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

@@ -220,7 +220,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				teacherAttendanceDao.update(teacherAttendance);
 				teacherAttendanceDao.update(teacherAttendance);
 				//教师签退后,给未签到学员添加旷课记录
 				//教师签退后,给未签到学员添加旷课记录
 				//封装未签到学员签到列表
 				//封装未签到学员签到列表
-				List<StudentAttendance> studentAttendances = teacherAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
+				List<StudentAttendance> studentAttendances = studentAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
 				if(studentAttendances != null && studentAttendances.size() > 0){
 				if(studentAttendances != null && studentAttendances.size() > 0){
 					studentAttendances.forEach(e->{
 					studentAttendances.forEach(e->{
 						e.setTeacherId(userId);
 						e.setTeacherId(userId);

+ 17 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -1,15 +1,20 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
 import com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord.CoursesScheduleHistory;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord.CoursesScheduleHistory;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.TeacherLeaveRecordService;
 import com.ym.mec.biz.service.TeacherLeaveRecordService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
 import com.ym.mec.util.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -19,10 +24,7 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 @Service
 @Service
@@ -30,10 +32,15 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 
 
 	@Autowired
 	@Autowired
 	private TeacherLeaveRecordDao teacherLeaveRecordDao;
 	private TeacherLeaveRecordDao teacherLeaveRecordDao;
+	@Autowired
+	private TeacherDao teacherDao;
 
 
 	@Autowired
 	@Autowired
 	private CourseScheduleService courseScheduleService;
 	private CourseScheduleService courseScheduleService;
 
 
+	@Autowired
+	private SysMessageService sysMessageService;
+
 	@Override
 	@Override
 	public BaseDAO<Long, TeacherLeaveRecord> getDAO() {
 	public BaseDAO<Long, TeacherLeaveRecord> getDAO() {
 		return teacherLeaveRecordDao;
 		return teacherLeaveRecordDao;
@@ -110,7 +117,12 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 				courseScheduleService.classStartDateAdjust(list);
 				courseScheduleService.classStartDateAdjust(list);
 			}
 			}
 		}
 		}
-
+		//教师请假结果通知
+		Map<Integer,String> map = new HashMap<>(1);
+		Teacher teacher = teacherDao.get(teacherLeaveRecord.getUserId());
+		map.put(teacher.getId(),teacher.getPhone());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.TEACHER_PUSH_LEAVE_RESULT,
+				map,null,0,"",status.getCode());
 		return true;
 		return true;
 	}
 	}
 
 

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

@@ -297,4 +297,11 @@
     <select id="findByStatusAndCourseScheduleId" resultMap="StudentAttendance">
     <select id="findByStatusAndCourseScheduleId" resultMap="StudentAttendance">
         SELECT * FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND user_id_ = #{userId} LIMIT 1
         SELECT * FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND user_id_ = #{userId} LIMIT 1
     </select>
     </select>
+
+    <select id="queryNoSignStudentRecord" resultMap="StudentAttendance">
+        SELECT cg.music_group_id_,cg.id_ class_group_id_,cssp.course_schedule_id_,cssp.user_id_,cg.current_class_times_
+        FROM course_schedule_student_payment cssp LEFT JOIN class_group cg ON cg.id_ = cssp.class_group_id_
+        WHERE cssp.user_id_ NOT IN (SELECT DISTINCT sa.user_id_ FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId})
+        AND cssp.course_schedule_id_ = #{courseScheduleId}
+    </select>
 </mapper>
 </mapper>

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

@@ -235,10 +235,4 @@
     <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
     <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 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>
     </select>
-    <select id="queryNoSignStudentRecord" resultMap="TeacherAttendance">
-        SELECT cg.music_group_id_,cg.id_ class_group_id_,cssp.course_schedule_id_,cssp.user_id_,cg.current_class_times_
-        FROM course_schedule_student_payment cssp LEFT JOIN class_group cg ON cg.id_ = cssp.class_group_id_
-        WHERE cssp.user_id_ NOT IN (SELECT DISTINCT sa.user_id_ FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId})
-        AND cssp.course_schedule_id_ = #{courseScheduleId}
-    </select>
 </mapper>
 </mapper>

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

@@ -255,6 +255,10 @@
         select id_ `key`,real_name_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds})
         select id_ `key`,real_name_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds})
     </select>
     </select>
 
 
+    <select id="queryPhoneByIds" resultType="java.util.Map" parameterType="list">
+        select id_ `key`,phone_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds}) AND s.phone_ IS NOT NULL
+    </select>
+
     <select id="findTeachers" resultMap="Teacher">
     <select id="findTeachers" resultMap="Teacher">
         SELECT su.* FROM teacher t
         SELECT su.* FROM teacher t
         LEFT JOIN sys_user su on t.id_ = su.id_ WHERE 1=1
         LEFT JOIN sys_user su on t.id_ = su.id_ WHERE 1=1

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

@@ -31,7 +31,7 @@ public class HereWhiteServiceImpl implements HereWhiteService {
         JSONObject json = new JSONObject();
         JSONObject json = new JSONObject();
         json.put("name",name);
         json.put("name",name);
         json.put("limit",userNum);
         json.put("limit",userNum);
-        json.put("mode","transitory");
+        json.put("mode","persistent");
         String url = "/room?token=" + hereWhiteToken;
         String url = "/room?token=" + hereWhiteToken;
         JSONObject jsonObject = JSONObject.parseObject(requestParam(json, url));
         JSONObject jsonObject = JSONObject.parseObject(requestParam(json, url));
         if(jsonObject.getString("code").equals("200")){
         if(jsonObject.getString("code").equals("200")){