yonge 5 年 前
コミット
fb5158a31d

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

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

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

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

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

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

+ 0 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -200,12 +200,6 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	boolean updateCourseScheduleToOverStatus();
 
 	/**
-	 * 推送未签到消息提醒
-	 * @return
-	 */
-	boolean pushNoSignInMessage();
-
-	/**
 	 * @describe 获取老师指定班级的排课
 	 * @author Joburgess
 	 * @date 2019/10/18

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

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

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

@@ -744,21 +744,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public boolean pushNoSignInMessage() {
-		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));
-
-		List<CourseSchedule> list = courseScheduleDao.queryNoSignInListByBeforeMinutes(minutes);
-
-		Map<Integer, String> receivers = new HashMap<Integer, String>();
-		for (CourseSchedule sf : list) {
-			receivers.put(sf.getTeacherId(), sf.getTeacherId() + "");
-		}
-
-		sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_IN_MESSAGE, receivers, null, 0, "");
-		return true;
-	}
-
-	@Override
 	public PageInfo queryTeacherClassCourseSchedule(CourseScheduleQueryInfo queryInfo) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if(null==user){

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

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

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

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

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

@@ -861,10 +861,6 @@
         WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
     </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_"/>

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

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

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

@@ -18,10 +18,6 @@ public interface TaskRemoteService {
 	@GetMapping(value = "task/updateCourseScheduleToOverStatus")
 	boolean updateCourseScheduleToOverStatus();
 
-	@GetMapping("task/pushNoSignInMessage")
-	// 推送未签到消息提醒
-	public void pushNoSignInMessage();
-
 	@GetMapping("task/pushNoSignOutMessage")
 	// 推送未签退消息提醒
 	public void pushNoSignOutMessage();
@@ -49,4 +45,8 @@ public interface TaskRemoteService {
 	@GetMapping("task/teacherSignInRemind")
 	// 老师上课提醒
 	public void teacherSignInRemind();
+
+	@GetMapping("task/homeworkNoReplyRemind")
+	// 老师未回复作业提醒
+	public void homeworkNoReplyRemind();
 }

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

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

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

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

+ 10 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -5,6 +5,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.biz.service.CourseHomeworkService;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
@@ -34,6 +35,9 @@ public class TaskController extends BaseController {
 
 	@Autowired
 	private StudentCourseHomeworkService studentCourseHomeworkService;
+	
+	@Autowired
+	private CourseHomeworkService courseHomeworkService;
 
 	@GetMapping("/refreshPaymentFeeStatus")
 	// 刷新付费状态
@@ -59,12 +63,6 @@ public class TaskController extends BaseController {
 		courseScheduleService.updateCourseScheduleToOverStatus();
 	}
 
-	@GetMapping("/pushNoSignInMessage")
-	// 推送未签到消息提醒
-	public void pushNoSignInMessage() {
-		courseScheduleService.pushNoSignInMessage();
-	}
-
 	@GetMapping("/pushNoSignOutMessage")
 	// 推送未签退消息提醒
 	public void pushNoSignOutMessage() {
@@ -101,4 +99,10 @@ public class TaskController extends BaseController {
 		courseScheduleService.teacherSignInRemind();
 	}
 
+	@GetMapping("/homeworkNoReplyRemind")
+	// 老师未回复作业提醒
+	public void homeworkNoReplyRemind() {
+		courseHomeworkService.homeworkNoReplyRemind();
+	}
+
 }