zouxuan 5 лет назад
Родитель
Сommit
01f26016d1

+ 1 - 1
edu-common/src/main/java/com/keao/edu/common/dao/SysMessageDao.java

@@ -33,7 +33,7 @@ public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 	 * @param userId
 	 * @return
 	 */
-	public List<Mapper> queryCountOfUnread(@Param("type") MessageSendMode type, @Param("userId") Integer userId);
+	Integer queryCountOfUnread(@Param("type") MessageSendMode type, @Param("userId") Integer userId);
 
 	/**
 	 * 修改用户所有消息阅读状态

+ 5 - 5
edu-common/src/main/java/com/keao/edu/common/service/impl/SysMessageServiceImpl.java

@@ -326,13 +326,13 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public Map<String, Integer> queryCountOfUnread(MessageSendMode type, Integer userId) {
-		List<Mapper> mappers = sysMessageDao.queryCountOfUnread(type, userId);
+		Integer num = sysMessageDao.queryCountOfUnread(type, userId);
 
-		Map<String, Integer> map = new HashMap<String, Integer>();
-
-		for (Mapper mapper : mappers) {
+		Map<String, Integer> map = new HashMap<>(1);
+		map.put("num",num);
+		/*for (Mapper mapper : mappers) {
 			map.put(mapper.getKey().toString(), Integer.parseInt(mapper.getValue().toString()));
-		}
+		}*/
 
 		return map;
 	}

+ 6 - 7
edu-common/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -174,17 +174,16 @@
 		INTERVAL #{recentMin} MINUTE) >= date(send_time_)]]>
 	</select>
 
-	<select id="queryCountOfUnread" resultMap="Mapper" parameterType="map">
-		SELECT group_ key_,COUNT(*) value_ FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0
-		<if test="type != null">
-		and type_ = #{type,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
-		</if>
-		group by group_
-	</select>
 
 	<select id="queryUserInRecentMinList" resultMap="message" parameterType="map">
 		select *
 		from sys_message where receiver_ = #{mobile} and type_ = #{type,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler} and <![CDATA[DATE_ADD(send_time_,
 		INTERVAL #{recentMin} MINUTE) >= now()]]>
 	</select>
+	<select id="queryCountOfUnread" resultType="java.lang.Integer">
+		SELECT COUNT(id_) FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0
+		<if test="type != null">
+			and type_ = #{type,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+		</if>
+	</select>
 </mapper>

+ 7 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamReviewDao.java

@@ -46,4 +46,11 @@ public interface ExamReviewDao extends BaseDAO<Long, ExamReview> {
      * @return java.util.List<com.keao.edu.user.entity.ExamReview>
      */
     List<ExamReview> getWithExamRoom(@Param("examRoomId") Long examRoomId);
+
+    /**
+     * 是否有未评审的学员
+     * @param examRoomId
+     * @return
+     */
+    int getCloseFlag(Long examRoomId);
 }

+ 6 - 5
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -844,12 +844,13 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 				throw new BizException("操作失败:当前还有学员未考试");
 			}
 			//没有未评审的学员
-			HashMap<String,Object> map = new HashMap();
-			map.put("reviewFlag",0);
-			map.put("teacherId",examRoom.getMainTeacherUserId());
-			int i = examReviewDao.countExamReviewRecordList(map);
+//			HashMap<String,Object> map = new HashMap();
+//			map.put("reviewFlag",0);
+//			map.put("teacherId",examRoom.getMainTeacherUserId());
+//			examReviewDao.countExamReviewRecordList(map);
+			int i = examReviewDao.getCloseFlag(examRoomId);
 			if(i > 0){
-				throw new BizException("操作失败:存在未评审的学员");
+				throw new BizException("操作失败:还有老师没完成评审");
 			}
 //			imFeignService.dismissGroup(sysUser.getId().toString(),examRoomId.toString());
 			studentExamResultService.calculateStudentExamAvgScore(examRoomId);

+ 8 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -231,4 +231,12 @@
     <select id="getWithExamRoom" resultMap="ExamReview">
 		SELECT * FROM exam_review WHERE exam_room_id_=#{examRoomId}
 	</select>
+    <select id="getCloseFlag" resultType="java.lang.Integer">
+		SELECT
+		IF(((SELECT COUNT(id) FROM rongyun_room_member WHERE role != 3 AND rid = #{examRoomId}) *
+		(SELECT COUNT(id_) FROM student_exam_result ser WHERE exam_room_id_ = #{examRoomId} AND ser.is_finished_exam_ = 5)) &lt; COUNT(DISTINCT er.id_),0,1) closeFlag
+		FROM rongyun_room_member rrm
+		LEFT JOIN exam_review er ON er.exam_room_id_ = rrm.rid
+		WHERE rrm.uid = er.teacher_id_ AND rrm.role != 3 AND rrm.rid = #{examRoomId};
+	</select>
 </mapper>