소스 검색

Merge remote-tracking branch 'origin/master'

Joburgess 5 년 전
부모
커밋
097f013856
33개의 변경된 파일343개의 추가작업 그리고 37개의 파일을 삭제
  1. 1 1
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/PhoneAuthenticationProvider.java
  2. 1 1
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/service/DefaultUserDetailsService.java
  3. 1 1
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/dal/dao/SysUserDao.java
  4. 1 1
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/SysUserService.java
  5. 2 2
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/impl/SysUserServiceImpl.java
  6. 5 1
      edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  7. 2 2
      edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/client/ImFeignService.java
  8. 4 1
      edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/MemberChangedMessage.java
  9. 1 1
      edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/PublishMessageDto.java
  10. 3 0
      edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java
  11. 3 4
      edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/RoomService.java
  12. 12 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamReviewController.java
  13. 3 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRoomStudentRelationController.java
  14. 8 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentExamResultController.java
  15. 17 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamReviewDao.java
  16. 6 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java
  17. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java
  18. 73 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamReviewRecordDto.java
  19. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewQueryInfo.java
  20. 40 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewRecordQueryInfo.java
  21. 14 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamReviewService.java
  22. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRoomStudentRelationService.java
  23. 6 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/StudentExamResultService.java
  24. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java
  25. 41 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java
  26. 7 5
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java
  27. 5 5
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java
  28. 5 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java
  29. 2 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamCertificationMapper.xml
  30. 47 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml
  31. 3 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml
  32. 4 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml
  33. 2 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

+ 1 - 1
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/PhoneAuthenticationProvider.java

@@ -50,7 +50,7 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 			throw new BadCredentialsException("验证码校验失败");
 		}
 
-		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(loginEntity.getPhone());
+		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(loginEntity.getPhone(),loginEntity.getClientId());
 		if (userInfo == null && StringUtils.isNotEmpty(loginEntity.getRegisterFlag())) {
 			sysUserService.initUser(loginEntity);
 		}

+ 1 - 1
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/service/DefaultUserDetailsService.java

@@ -36,7 +36,7 @@ public class DefaultUserDetailsService implements UserDetailsService {
 		SysUserInfo userInfo = null;
 
 		if (StringUtils.startsWith(username, SecurityConstants.PHONE_PRINCIPAL_PREFIX)) {
-			userInfo = sysUserService.queryUserInfoByPhone(StringUtils.substringAfter(username, SecurityConstants.PHONE_PRINCIPAL_PREFIX));
+			userInfo = sysUserService.queryUserInfoByPhone(StringUtils.substringAfter(username, SecurityConstants.PHONE_PRINCIPAL_PREFIX),null);
 		} else if (StringUtils.startsWith(username, SecurityConstants.USERNAME_PRINCIPAL_PREFIX)) {
 			userInfo = sysUserService.queryUserInfoByUsername(StringUtils.substringAfter(username, SecurityConstants.USERNAME_PRINCIPAL_PREFIX));
 		} else {

+ 1 - 1
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/dal/dao/SysUserDao.java

@@ -29,7 +29,7 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @param phone
 	 * @return
 	 */
-	SysUser queryByPhoneAndClient(@Param("phone") String phone, @Param("client") String client);
+	SysUser queryByPhoneAndClient(@Param("phone") String phone, @Param("clientId") String clientId);
 
 	/**
 	 * 修改密码

+ 1 - 1
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/SysUserService.java

@@ -41,7 +41,7 @@ public interface SysUserService extends BaseService<Integer, SysUser> {
 	 * @param phone
 	 * @return
 	 */
-	SysUserInfo queryUserInfoByPhone(String phone);
+	SysUserInfo queryUserInfoByPhone(String phone,String clientId);
 
 	/**
 	 * 根据手机号获取系统用户详细信息

+ 2 - 2
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/impl/SysUserServiceImpl.java

@@ -64,8 +64,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	}
 
 	@Override
-	public SysUserInfo queryUserInfoByPhone(String phone) {
-		return getSysUserInfo(queryByPhone(phone));
+	public SysUserInfo queryUserInfoByPhone(String phone,String clientId) {
+		return getSysUserInfo(queryByPhoneAndClient(phone,clientId));
 	}
 
 	@Override

+ 5 - 1
edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -173,7 +173,11 @@
     </select>
 
     <select id="queryByPhoneAndClient" resultMap="SysUser">
-        select * from sys_user where phone_ = #{phone} AND user_type_ LIKE CONCAT('%',#{client},'%') LIMIT 1 FOR UPDATE
+        SELECT * FROM sys_user WHERE phone_ = #{phone}
+        <if test="clientId != null and clientId != ''">
+            AND user_type_ LIKE CONCAT('%',#{clientId},'%')
+        </if>
+        LIMIT 1 FOR UPDATE
     </select>
     <resultMap id="ImUserModel" type="com.keao.edu.im.api.entity.ImUserModel">
         <result column="id_" property="id"/>

+ 2 - 2
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/client/ImFeignService.java

@@ -110,7 +110,7 @@ public interface ImFeignService {
 	 * @param groupName
 	 */
 	@PostMapping(value = "room/joinGroup")
-	void joinGroup(@RequestParam("userIds") String userIds,@RequestParam("organId") String groupId,@RequestParam("groupName") String groupName);
+	void joinGroup(@RequestParam("userIds") String userIds,@RequestParam("groupId") String groupId,@RequestParam("groupName") String groupName);
 
 	/**
 	 * 退群
@@ -118,7 +118,7 @@ public interface ImFeignService {
 	 * @param groupId
 	 */
 	@PostMapping(value = "room/quitGroup")
-	void quitGroup(@RequestParam("userIds") String userIds,@RequestParam("organId") String groupId);
+	void quitGroup(@RequestParam("userIds") String userIds,@RequestParam("groupId") String groupId);
 
 	/**
 	 * 解散群

+ 4 - 1
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/MemberChangedMessage.java

@@ -2,7 +2,7 @@ package com.keao.edu.im.api.entity;
 
 import java.util.Date;
 
-public class MemberChangedMessage extends BaseMessage {
+public class MemberChangedMessage extends BaseMessage{
     public final static int Action_Join = 1;
     public final static int Action_Leave = 2;
     public final static int Action_Kick = 3;
@@ -23,6 +23,9 @@ public class MemberChangedMessage extends BaseMessage {
 
     private Date timestamp;
 
+    public MemberChangedMessage() {
+    }
+
     public String getAppParamJson() {
         return appParamJson;
     }

+ 1 - 1
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/PublishMessageDto.java

@@ -1,6 +1,6 @@
 package com.keao.edu.im.api.entity;
 
-public class PublishMessageDto {
+public class PublishMessageDto{
     private String userId;
 
     private String roomId;

+ 3 - 0
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -315,6 +315,9 @@ public class RoomServiceImpl implements RoomService {
         roomResult.setUserInfo(userResult);
 //        roomResult.setDisplay(display);
         roomResult.setRoomId(roomId);
+        if (registrationId != null){
+            roomResult.setRegistrationId(registrationId);
+        }
 
         roomResult.setMembers(roomMemberDao.findByRid(roomId));
 //        List<Whiteboard> whiteboardList = whiteboardDao.findByRid(roomId);

+ 3 - 4
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/RoomService.java

@@ -1,14 +1,13 @@
 package com.keao.edu.im.service;
 
-import java.io.IOException;
-import java.util.List;
-
-import com.keao.edu.im.api.entity.MemberChangedMessage;
 import com.keao.edu.im.api.entity.PublishMessageDto;
 import com.keao.edu.im.api.entity.ReqUserData;
 import com.keao.edu.im.common.ApiException;
 import com.keao.edu.im.pojo.*;
 
+import java.io.IOException;
+import java.util.List;
+
 /**
  * Created by super_zou on 2019/11/28.
  */

+ 12 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamReviewController.java

@@ -7,9 +7,11 @@ import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.user.dto.ExamReviewDto;
+import com.keao.edu.user.dto.ExamReviewRecordDto;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.entity.ExamReview;
 import com.keao.edu.user.page.ExamReviewQueryInfo;
+import com.keao.edu.user.page.ExamReviewRecordQueryInfo;
 import com.keao.edu.user.service.EmployeeService;
 import com.keao.edu.user.service.ExamReviewService;
 import io.swagger.annotations.Api;
@@ -45,6 +47,14 @@ public class ExamReviewController extends BaseController {
         return succeed(examReviewService.findExamResult(queryInfo));
     }
 
+    @ApiOperation("监考页面分页查询评审结果")
+    @GetMapping(value = "/queryExamReviewRecordList")
+    public HttpResponseResult<PageInfo<ExamReviewRecordDto>> queryExamReviewRecordList(ExamReviewRecordQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(examReviewService.queryExamReviewRecordList(queryInfo));
+    }
+
     @ApiOperation("修改评审结果")
     @PostMapping(value = "/update")
     public HttpResponseResult update(ExamReview examReview){
@@ -52,10 +62,10 @@ public class ExamReviewController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation("创建评审")
+    @ApiOperation("老师评审")
     @PostMapping(value = "/createExamReview")
     public HttpResponseResult createExamReview(ExamReview examReview){
-        examReviewService.insert(examReview);
+        examReviewService.add(examReview);
         return succeed();
     }
 }

+ 3 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRoomStudentRelationController.java

@@ -56,20 +56,20 @@ public class ExamRoomStudentRelationController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation("监考端去录播")
+    @ApiOperation("监考端指定学员去录播")
     @PostMapping(value = "/webRecorded")
     public HttpResponseResult webRecorded(Long nextExamRoomStudentRelationId,Long examRoomStudentRelationId,Long roomId) {
         examRoomStudentRelationService.recorded(nextExamRoomStudentRelationId,examRoomStudentRelationId,roomId);
         return succeed();
     }
 
-    @ApiOperation("学生去录播")
+    @ApiOperation("学生选择去录播")
     @PostMapping(value = "/stuRecorded")
     public HttpResponseResult<NeedCheckingDetailDto> stuRecorded(Long examRegistrationId) {
         return succeed(examRoomStudentRelationService.stuRecorded(examRegistrationId));
     }
 
-    @ApiOperation("学生重新排队")
+    @ApiOperation("学生选择重新排队")
     @PostMapping(value = "/againQueue")
     public HttpResponseResult<NeedCheckingDetailDto> againQueue(Long examRegistrationId) {
         return succeed(examRoomStudentRelationService.againQueue(examRegistrationId));

+ 8 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentExamResultController.java

@@ -81,4 +81,12 @@ public class StudentExamResultController extends BaseController {
         return succeed(studentExamResultService.getStudentExamResultStatisticsInfo(organId, examId));
     }
 
+    @ApiOperation("确认考生")
+    @PostMapping(value = "/confirmStudent")
+    public HttpResponseResult confirmStudent(Long examRegistrationId) {
+        studentExamResultService.confirmStudent(examRegistrationId);
+        return succeed();
+    }
+
+
 }

+ 17 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamReviewDao.java

@@ -3,7 +3,9 @@ package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.dto.ExamReviewDto;
+import com.keao.edu.user.dto.ExamReviewRecordDto;
 import com.keao.edu.user.entity.ExamReview;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -20,4 +22,19 @@ public interface ExamReviewDao extends BaseDAO<Long, ExamReview> {
     List<ExamReviewDto> findExamResult(Map<String, Object> params);
     int countExamResult(Map<String, Object> params);
 
+    /**
+     * 监考页面评审列表查询
+     * @param params
+     * @return
+     */
+    int countExamReviewRecordList(Map<String, Object> params);
+
+    /**
+     * 监考页面评审列表查询
+     * @param params
+     * @return
+     */
+    List<ExamReviewRecordDto> queryExamReviewRecordList(Map<String, Object> params);
+
+    ExamReview findByRegistrationId(@Param("examRegistrationId") Long examRegistrationId, @Param("teacherId") Integer teacherId);
 }

+ 6 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java

@@ -63,4 +63,10 @@ public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
      * @return
      */
     StudentExamResultApiDto getStudentExamResultApiDto(Long examRegistrationId);
+
+    /**
+     * 确认考生
+     * @param examRegistrationId
+     */
+    void confirmStudent(Long examRegistrationId);
 }

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java

@@ -22,6 +22,9 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "科目")
     private Integer subjectId;
 
+    @ApiModelProperty(value = "学员编号")
+    private Integer studentId;
+
     @ApiModelProperty(value = "级别")
     private Integer level;
 
@@ -37,6 +40,14 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "考试内容")
     private String songJson;
 
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
     public String getSongJson() {
         return songJson;
     }

+ 73 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamReviewRecordDto.java

@@ -0,0 +1,73 @@
+package com.keao.edu.user.dto;
+
+public class ExamReviewRecordDto {
+    private String realName;
+
+    private Integer finishedExam;
+
+    private Integer confirmStatus;
+
+    private Integer recordStartTime;
+
+    private String evaluationContent;
+
+    private Integer evaluationResult;
+
+    private Integer examReviewId;
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public Integer getFinishedExam() {
+        return finishedExam;
+    }
+
+    public void setFinishedExam(Integer finishedExam) {
+        this.finishedExam = finishedExam;
+    }
+
+    public Integer getConfirmStatus() {
+        return confirmStatus;
+    }
+
+    public void setConfirmStatus(Integer confirmStatus) {
+        this.confirmStatus = confirmStatus;
+    }
+
+    public Integer getRecordStartTime() {
+        return recordStartTime;
+    }
+
+    public void setRecordStartTime(Integer recordStartTime) {
+        this.recordStartTime = recordStartTime;
+    }
+
+    public String getEvaluationContent() {
+        return evaluationContent;
+    }
+
+    public void setEvaluationContent(String evaluationContent) {
+        this.evaluationContent = evaluationContent;
+    }
+
+    public Integer getEvaluationResult() {
+        return evaluationResult;
+    }
+
+    public void setEvaluationResult(Integer evaluationResult) {
+        this.evaluationResult = evaluationResult;
+    }
+
+    public Integer getExamReviewId() {
+        return examReviewId;
+    }
+
+    public void setExamReviewId(Integer examReviewId) {
+        this.examReviewId = examReviewId;
+    }
+}

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewQueryInfo.java

@@ -13,6 +13,9 @@ public class ExamReviewQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "学员报名编号")
     private Long registId;
 
+    @ApiModelProperty(value = "考场编号")
+    private Long roomId;
+
     @ApiModelProperty(value = "准考证号")
     private String cardNo;
 
@@ -52,6 +55,14 @@ public class ExamReviewQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "考试结束时间")
     private String examEndTime;
 
+    public Long getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(Long roomId) {
+        this.roomId = roomId;
+    }
+
     public Long getRegistId() {
         return registId;
     }

+ 40 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamReviewRecordQueryInfo.java

@@ -0,0 +1,40 @@
+package com.keao.edu.user.page;
+
+import com.keao.edu.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ExamReviewRecordQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "考场编号")
+    private Long roomId;
+
+    @ApiModelProperty(value = "是否评审1是0否")
+    private Integer reviewFlag;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Long getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(Long roomId) {
+        this.roomId = roomId;
+    }
+
+    public Integer getReviewFlag() {
+        return reviewFlag;
+    }
+
+    public void setReviewFlag(Integer reviewFlag) {
+        this.reviewFlag = reviewFlag;
+    }
+}

+ 14 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamReviewService.java

@@ -4,8 +4,10 @@ package com.keao.edu.user.service;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.dto.ExamReviewDto;
+import com.keao.edu.user.dto.ExamReviewRecordDto;
 import com.keao.edu.user.entity.ExamReview;
 import com.keao.edu.user.page.ExamReviewQueryInfo;
+import com.keao.edu.user.page.ExamReviewRecordQueryInfo;
 
 public interface ExamReviewService extends BaseService<Long, ExamReview> {
 
@@ -18,4 +20,16 @@ public interface ExamReviewService extends BaseService<Long, ExamReview> {
      */
     PageInfo<ExamReviewDto> findExamResult(ExamReviewQueryInfo queryInfo);
 
+    /**
+     * 监考页面评审列表查询
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<ExamReviewRecordDto> queryExamReviewRecordList(ExamReviewRecordQueryInfo queryInfo);
+
+    /**
+     * 老师评审
+     * @param examReview
+     */
+    void add(ExamReview examReview);
 }

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRoomStudentRelationService.java

@@ -76,7 +76,7 @@ public interface ExamRoomStudentRelationService extends BaseService<Long, ExamRo
      */
     void nextBit(Long nextExamRoomStudentRelationId, Long examRoomStudentRelationId, Integer examStatus,Long roomId);
 
-    public void publishMessage(ExamRoomStudentRelation examRoomStudentRelation);
+    public void publishMessage(ExamRoomStudentRelation examRoomStudentRelation,Integer action);
 
     public PublishMessageDto getPublishMessage(Long examRegistrationId);
 

+ 6 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/StudentExamResultService.java

@@ -35,4 +35,10 @@ public interface StudentExamResultService extends BaseService<Long, StudentExamR
      * @return
      */
     StudentExamResultApiDto getStudentExamResultApiDto(Long id);
+
+    /**
+     * 确认考生
+     * @param examRegistrationId
+     */
+    void confirmStudent(Long examRegistrationId);
 }

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java

@@ -81,7 +81,7 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 		ExamCertificationDto examCertificationDto = examCertificationDao.getExamCertificationDto(examRegistrationId);
 		Subject subject = subjectDao.get(examCertificationDto.getSubjectId());
 		examCertificationDto.setSubjectName(subject.getName());
-		Student student = studentService.getStudent(examCertificationDto.getSubjectId());
+		Student student = studentService.getStudent(examCertificationDto.getStudentId());
 		examCertificationDto.setRealName(student.getRealName());
 		examCertificationDto.setGender(student.getGender());
 		examCertificationDto.setCertificatePhoto(student.getCertificatePhoto());

+ 41 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java

@@ -1,19 +1,24 @@
 package com.keao.edu.user.service.impl;
 
 
+import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
+import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.dao.ExamReviewDao;
 import com.keao.edu.user.dto.ExamReviewDto;
+import com.keao.edu.user.dto.ExamReviewRecordDto;
 import com.keao.edu.user.entity.ExamReview;
 import com.keao.edu.user.entity.ExaminationBasic;
 import com.keao.edu.user.entity.Subject;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.page.ExamReviewQueryInfo;
+import com.keao.edu.user.page.ExamReviewRecordQueryInfo;
 import com.keao.edu.user.service.ExamReviewService;
+import com.keao.edu.user.service.ExamRoomStudentRelationService;
 import com.keao.edu.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,7 +36,9 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 	@Autowired
 	private ExamReviewDao examReviewDao;
 	@Autowired
-	private OrganizationServiceImpl organizationService;
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private ExamRoomStudentRelationService examRoomStudentRelationService;
 
 	@Override
 	public BaseDAO<Long, ExamReview> getDAO() {
@@ -73,6 +80,39 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 	}
 
 	@Override
+	public PageInfo<ExamReviewRecordDto> queryExamReviewRecordList(ExamReviewRecordQueryInfo queryInfo) {
+		PageInfo<ExamReviewRecordDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		List<ExamReviewRecordDto> dataList = null;
+		int count = examReviewDao.countExamReviewRecordList(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = examReviewDao.queryExamReviewRecordList(params);
+		}
+		return pageInfo;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void add(ExamReview examReview) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Long examRegistrationId = examReview.getExamRegistrationId();
+		ExamReview byRegistrationId = examReviewDao.findByRegistrationId(examRegistrationId,sysUser.getId());
+		if(byRegistrationId != null){
+			throw new BizException("评审失败,请勿重复操作");
+		}
+		ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationService.getExamRoomStudentRelation(examRegistrationId);
+		examReview.setExaminationBasicId(examRoomStudentRelation.getExaminationBasicId());
+		examReview.setTeacherId(sysUser.getId());
+		examReview.setStudentId(examRoomStudentRelation.getStudentId());
+		examReview.setExamRoomId(examRoomStudentRelation.getExamRoomId());
+		examReview.setTeacherId(Integer.parseInt(examRoomStudentRelation.getTenantId()));
+		examReviewDao.insert(examReview);
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public int update(ExamReview examReview) {
 		if(Objects.isNull(examReview.getId())){

+ 7 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -15,6 +15,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.im.api.client.ImFeignService;
+import com.keao.edu.thirdparty.message.provider.JiguangPushPlugin;
 import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.api.enums.ExamModeEnum;
@@ -445,14 +446,15 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void changeExamRoom(Long examRoomId, Integer openFlag) {
-		ExamRoom examRoom = new ExamRoom();
+		ExamRoom examRoom = examRoomDao.get(examRoomId);
 		examRoom.setId(examRoomId);
 		examRoom.setOpenFlag(openFlag);
 		examRoomDao.update(examRoom);
 		//加群退群
 		if(openFlag == 1){
 			String studentIds = examRoomStudentRelationService.getStudentIds(examRoomId);
-			StringBuffer stringBuffer = new StringBuffer(examRoom.getMainTeacherUserId());
+			StringBuffer stringBuffer = new StringBuffer();
+			stringBuffer.append(examRoom.getMainTeacherUserId());
 			if(StringUtils.isNotEmpty(stringBuffer)){
 				stringBuffer.append(",").append(studentIds);
 			}
@@ -461,15 +463,15 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 			}
 			imFeignService.joinGroup(stringBuffer.toString(),examRoomId.toString(),examRoomId.toString());
 			//推送消息
-			if(StringUtils.isNotEmpty(studentIds)){
+			if(StringUtils.isNotEmpty(stringBuffer)){
 
-				String[] split = studentIds.split(",");
+				String[] split = stringBuffer.toString().split(",");
 				Map<Integer, String> userPhoneMap = new HashMap<>(split.length);
 				for (String s : split) {
 					userPhoneMap.put(Integer.parseInt(s),s);
 				}
 				SysMessageParams sysMessageParams=new SysMessageParams(MessageTypeEnum.STUDENT_EXAM_START,
-						userPhoneMap, null, 0, null, null);
+						userPhoneMap, null, 0, null, JiguangPushPlugin.PLUGIN_NAME);
 				sysMessageFeignService.batchSendMessage(sysMessageParams);
 			}
 		}else {

+ 5 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -278,7 +278,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			//关闭学员房间入口
 			examRoomStudentRelation.setClassroomSwitch(YesOrNoEnum.NO);
 			examRoomStudentRelationDao.update(examRoomStudentRelation);
-			publishMessage(examRoomStudentRelation);
+			publishMessage(examRoomStudentRelation,MemberChangedMessage.Action_Recorded);
 		}
 		nextStudent(nextExamRoomStudentRelationId);
 	}
@@ -334,7 +334,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			//关闭学员房间入口
 			examRoomStudentRelation.setClassroomSwitch(YesOrNoEnum.NO);
 			examRoomStudentRelationDao.update(examRoomStudentRelation);
-			publishMessage(examRoomStudentRelation);
+			publishMessage(examRoomStudentRelation,MemberChangedMessage.Student_Queue);
 		}
 		nextStudent(nextExamRoomStudentRelationId);
 
@@ -353,17 +353,17 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			//开启学员房间入口
 			examRoomStudentRelation.setClassroomSwitch(YesOrNoEnum.YES);
 			examRoomStudentRelationDao.update(examRoomStudentRelation);
-			publishMessage(examRoomStudentRelation);
+			publishMessage(examRoomStudentRelation,MemberChangedMessage.Student_Queue);
 		}
 	}
 
 	@Override
-	public void publishMessage(ExamRoomStudentRelation examRoomStudentRelation){
+	public void publishMessage(ExamRoomStudentRelation examRoomStudentRelation,Integer action){
 		PublishMessageDto publishMessageDto = new PublishMessageDto();
 		String userId = examRoomStudentRelation.getStudentId().toString();
 		publishMessageDto.setUserId(userId);
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
-		MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Student_Queue, userId,3);
+		MemberChangedMessage msg = new MemberChangedMessage(action, userId,3);
 		String jsonString = JSONObject.toJSONString(examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId()));
 		msg.setAppParamJson(jsonString);
 		Map<String,Object> paramMap = new HashMap<>(2);

+ 5 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java

@@ -125,4 +125,9 @@ public class StudentExamResultServiceImpl extends BaseServiceImpl<Long, StudentE
 		resultApiDto.setRoomId(studentExamRoom.getExamRoomId().toString());
 		return resultApiDto;
 	}
+
+	@Override
+	public void confirmStudent(Long examRegistrationId) {
+		studentExamResultDao.confirmStudent(examRegistrationId);
+	}
 }

+ 2 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamCertificationMapper.xml

@@ -115,7 +115,7 @@
 	</select>
 
 	<select id="getExamCertificationDto" resultMap="ExamCertificationDtoMap">
-		SELECT ec.exam_registration_id_,ec.exam_start_time_,ec.subject_id_,ec.level_,ec.exam_address_,er.song_json_,ec.card_no_
+		SELECT ec.exam_registration_id_,ec.exam_start_time_,ec.subject_id_,ec.level_,ec.exam_address_,er.song_json_,ec.card_no_,er.student_id_
 		FROM exam_registration er
 		LEFT JOIN exam_certification ec ON er.id_ = ec.exam_registration_id_
 		WHERE er.id_ = #{examRegistrationId} LIMIT 1
@@ -126,6 +126,7 @@
 		<result column="card_no_" property="cardNo" />
 		<result column="song_json_" property="songJson" />
 		<result column="subject_id_" property="subjectId" />
+		<result column="student_id_" property="studentId" />
 		<result column="level_" property="level" />
 		<result column="address_" property="examAddress" />
 	</resultMap>

+ 47 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -113,6 +113,9 @@
 			<if test="registId!=null">
 				AND er.exam_registration_id_=#{registId}
 			</if>
+			<if test="roomId!=null">
+				AND er.exam_room_id_ = #{roomId}
+			</if>
 			<if test="examinationBaseId!=null">
 				AND er.examination_basic_id_ = #{examinationBaseId}
 			</if>
@@ -172,4 +175,48 @@
 			LEFT JOIN sys_user su ON su.id_=er.teacher_id_
 		<include refid="findExamResultCondition"/>
 	</select>
+	<select id="countExamReviewRecordList" resultType="java.lang.Integer">
+		SELECT COUNT(DISTINCT ser.id_)
+		FROM exam_room_student_relation ersr
+		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
+		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_
+		<include refid="queryExamReviewRecordListSql"/>
+	</select>
+	<resultMap id="ExamReviewRecordDtoMap" type="com.keao.edu.user.dto.ExamReviewRecordDto">
+		<result property="recordStartTime" column=""/>
+		<result property="confirmStatus" column=""/>
+		<result property="realName" column=""/>
+		<result property="evaluationContent" column=""/>
+		<result property="evaluationResult" column=""/>
+		<result property="examReviewId" column=""/>
+		<result property="finishedExam" column=""/>
+	</resultMap>
+	<sql id="queryExamReviewRecordListSql">
+		<where>
+			<if test="reviewFlag == null">
+				AND er.teacher_id_ = #{teacherId} OR er.id_ IS NULL
+			</if>
+			<if test="reviewFlag == 1">
+				AND er.teacher_id_ = #{teacherId}
+			</if>
+			<if test="reviewFlag == 0">
+				AND er.id_ IS NULL
+			</if>
+			<if test="roomId != 0">
+				AND ersr.exam_room_id_ = #{roomId}
+			</if>
+		</where>
+	</sql>
+	<select id="queryExamReviewRecordList" resultMap="ExamReviewRecordDtoMap">
+		SELECT ser.is_finished_exam_,ser.record_flag_,ser.confirm_status_,er.evaluation_content_,er.evaluation_result_,ersr.exam_registration_id_
+		FROM exam_room_student_relation ersr
+		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
+		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_
+		<include refid="queryExamReviewRecordListSql"/>
+		ORDER BY ser.is_finished_exam_ DESC
+		<include refid="global.limit"/>
+	</select>
+	<select id="findByRegistrationId" resultMap="ExamReviewRecordDtoMap">
+		SELECT * FROM exam_review WHERE exam_registration_id_ = #{examRegistrationId} AND teacher_id_ = #{teacherId} LIMIT 1
+	</select>
 </mapper>

+ 3 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml

@@ -85,12 +85,13 @@
 		UPDATE exam_room_student_relation SET classroom_switch_ = #{openFlag},update_time_ = NOW()
 		WHERE examination_basic_id_ = #{examinationBasicId} AND student_id_ = #{studentId}
 	</update>
+
 	<update id="cleanSignInTime">
 		UPDATE exam_room_student_relation SET sign_in_time_ = NULL,update_time_ = NOW()
 		WHERE exam_registration_id_ = #{examRegistrationId}
 	</update>
 
-	<!-- 根据主键删除一条记录 -->
+    <!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM exam_room_student_relation WHERE id_ = #{id} 
 	</delete>
@@ -190,7 +191,7 @@
 		</if>
 	</select>
     <select id="getStudentExamRoom" resultMap="ExamRoomStudentRelation">
-		SELECT * FROM exam_room_student_relation WHERE exam_registration_id_=#{registId}
+		SELECT * FROM exam_room_student_relation WHERE exam_registration_id_ = #{registId}
     </select>
 	<select id="findByStudentIdAndRoomId" resultMap="ExamRoomStudentRelation">
 		SELECT ersr.* FROM exam_room_student_relation ersr

+ 4 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -103,6 +103,10 @@
     <update id="endExam">
 		UPDATE student_exam_result SET is_finished_exam_ = 1 AND update_time_ = NOW() WHERE exam_registration_id_ = #{examRegistrationId}
 	</update>
+    <update id="confirmStudent">
+		UPDATE student_exam_result SET confirm_status_ = 1 AND update_time_ = NOW()
+		WHERE exam_registration_id_ = #{examRegistrationId}
+	</update>
 
     <!-- 根据主键删除一条记录 -->
 	<delete id="delete" >

+ 2 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -33,7 +33,8 @@
         	su.username_ sys_user_username_,
         	su.phone_ sys_user_phone_,
         	su.avatar_ sys_user_avatar_,
-        	su.real_name_ sys_user_real_name_
+        	su.real_name_ sys_user_real_name_,
+        	su.user_type_ sys_user_user_type_
         FROM teacher t
         LEFT JOIN sys_user su ON t.user_id_ = su.id_
         WHERE t.user_id_ = #{id}