xiatian пре 5 година
родитељ
комит
2add59614e

+ 16 - 5
examcloud-core-oe-student-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/student/api/controller/ExamControlController.java

@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.core.oe.student.api.controller;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import javax.validation.Valid;
@@ -16,13 +17,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.google.common.collect.Maps;
 import com.mysql.cj.util.StringUtils;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.util.Util;
 import cn.com.qmth.examcloud.core.oe.student.base.utils.Check;
-import cn.com.qmth.examcloud.core.oe.student.bean.AliyunSignatureInfo;
 import cn.com.qmth.examcloud.core.oe.student.bean.BatchGetUpyunSignDomain;
 import cn.com.qmth.examcloud.core.oe.student.bean.BatchGetUpyunSignDomainQuery;
 import cn.com.qmth.examcloud.core.oe.student.bean.CheckExamInProgressInfo;
@@ -41,7 +42,6 @@ import cn.com.qmth.examcloud.core.oe.student.bean.SaveUploadedFileAcknowledgeSta
 import cn.com.qmth.examcloud.core.oe.student.bean.SaveUploadedFileReq;
 import cn.com.qmth.examcloud.core.oe.student.bean.StartExamInfo;
 import cn.com.qmth.examcloud.core.oe.student.bean.UpyunSignatureInfo;
-import cn.com.qmth.examcloud.core.oe.student.bean.YunSignatureInfo;
 import cn.com.qmth.examcloud.core.oe.student.service.ExamControlService;
 import cn.com.qmth.examcloud.core.oe.student.service.ExamFileAnswerService;
 import cn.com.qmth.examcloud.core.oe.student.service.ExamRecordDataService;
@@ -54,6 +54,7 @@ import cn.com.qmth.examcloud.support.examing.ExamRecordData;
 import cn.com.qmth.examcloud.support.examing.ExamingSession;
 import cn.com.qmth.examcloud.support.filestorage.FileStorageUtil;
 import cn.com.qmth.examcloud.support.redis.RedisKeyHelper;
+import cn.com.qmth.examcloud.web.filestorage.FileStorageHelper;
 import cn.com.qmth.examcloud.web.filestorage.FileStoragePathEnvInfo;
 import cn.com.qmth.examcloud.web.filestorage.FileStorageType;
 import cn.com.qmth.examcloud.web.filestorage.YunHttpRequest;
@@ -196,10 +197,20 @@ public class ExamControlController extends ControllerSupport {
      */
     @ApiOperation(value = "获取文件上传签名(微信小程序调用)")
     @PostMapping("/yunSignature")
-    public YunSignatureInfo getYunSignature(@ModelAttribute @Valid GetYunSignatureReq req) {
+    public GetYunSignDomain getYunSignature(@ModelAttribute @Valid GetYunSignatureReq req) {
         
         if(FileStorageType.UPYUN.equals(FileStorageUtil.getFileStorageType())) {
-        	return examControlService.getUpyunSignature(req);
+        	GetUpyunSignDomain result = new GetUpyunSignDomain();
+        	Map<String, String> params = Maps.newHashMap();
+        	UpyunSignatureInfo info=examControlService.getUpyunSignature(req);
+        	String signIdentifier = String.valueOf(System.currentTimeMillis());
+        	params.put("authorization", info.getSignature());
+        	params.put("policy", info.getPolicy());
+        	result.setAccessUrl(FileStorageHelper.getUrl(info.getUpyunFileDomain(), info.getFilePath()));
+            result.setFormUrl(info.getUploadUrl());
+            result.setFormParams(params);
+            result.setSignIdentifier(signIdentifier);
+        	return result;
         }
         if(FileStorageType.ALIYUN.equals(FileStorageUtil.getFileStorageType())) {
         	String fileSuffix = req.getFileSuffix();
@@ -224,7 +235,7 @@ public class ExamControlController extends ControllerSupport {
             }
             filePath.append(".").append(req.getFileSuffix());
 
-            AliyunSignatureInfo result = new AliyunSignatureInfo();
+            GetAliyunSignDomain result = new GetAliyunSignDomain();
             String signIdentifier = String.valueOf(System.currentTimeMillis());
             FileStoragePathEnvInfo env = new FileStoragePathEnvInfo();
             env.setRelativePath(filePath.toString());