|
@@ -6,16 +6,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.qmth.themis.business.annotation.ApiJsonObject;
|
|
|
import com.qmth.themis.business.annotation.ApiJsonProperty;
|
|
|
import com.qmth.themis.business.base.BasePage;
|
|
|
+import com.qmth.themis.business.bean.mobile.MobileAuthorizationMonitorBean;
|
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
|
+import com.qmth.themis.business.dto.AuthDto;
|
|
|
import com.qmth.themis.business.dto.MqDto;
|
|
|
+import com.qmth.themis.business.entity.TBSession;
|
|
|
+import com.qmth.themis.business.entity.TBUser;
|
|
|
import com.qmth.themis.business.entity.TIeExamInvigilateCall;
|
|
|
import com.qmth.themis.business.entity.TIeExamInvigilateCallLog;
|
|
|
import com.qmth.themis.business.enums.*;
|
|
|
import com.qmth.themis.business.service.MqDtoService;
|
|
|
import com.qmth.themis.business.service.TIeExamInvigilateCallService;
|
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
|
+import com.qmth.themis.business.util.ServletUtil;
|
|
|
+import com.qmth.themis.business.util.TencentYunUtil;
|
|
|
import com.qmth.themis.common.enums.ExceptionResultEnum;
|
|
|
import com.qmth.themis.common.exception.BusinessException;
|
|
|
import com.qmth.themis.common.util.Result;
|
|
@@ -28,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
@@ -53,6 +60,9 @@ public class TIeInvigilateCallMobileController {
|
|
|
@Resource
|
|
|
TIeExamInvigilateCallService tIeExamInvigilateCallService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TencentYunUtil tencentYunUtil;
|
|
|
+
|
|
|
@ApiOperation(value = "监考监控通话查询接口")
|
|
|
@RequestMapping(value = "/call/list", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = TIeExamInvigilateCall.class)})
|
|
@@ -107,4 +117,26 @@ public class TIeInvigilateCallMobileController {
|
|
|
//监考监控通话信息 发送mq end
|
|
|
return ResultUtil.ok(Collections.singletonMap("success", true));
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "监考获取monitorKey接口")
|
|
|
+ @RequestMapping(value = "/getMonitorKey", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "获取监考monitorKey", response = MobileAuthorizationMonitorBean.class)})
|
|
|
+ public Result getMonitorKey(@ApiParam(value = "考试记录id", required = true) @RequestParam Long recordId) {
|
|
|
+ TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
|
|
|
+ TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
|
|
|
+ String monitorKey = ExamRecordCacheUtil.getMonitorKey(recordId);
|
|
|
+ AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
|
|
|
+ String monitorUserId = null;
|
|
|
+ if (Objects.nonNull(authDto) && authDto.toString().contains(RoleEnum.STUDENT.name())) {
|
|
|
+ monitorUserId = "s_" + tbSession.getId();
|
|
|
+ } else {
|
|
|
+ monitorUserId = "m_" + tbSession.getId();
|
|
|
+ }
|
|
|
+ String monitorUserSig = tencentYunUtil.getSign(monitorUserId, SystemConstant.TENCENT_EXPIRE_TIME);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("monitorKey", monitorKey);
|
|
|
+ map.put("monitorUserId", monitorUserId);
|
|
|
+ map.put("monitorUserSig", monitorUserSig);
|
|
|
+ return ResultUtil.ok(map);
|
|
|
+ }
|
|
|
}
|