wjj 4 tahun lalu
induk
melakukan
bb1fd71814

+ 3 - 0
.gitignore

@@ -29,3 +29,6 @@ HELP.md
 .vscode/
 
 .DS_Store
+
+### apidoc ###
+/src/main/resources/apidoc

+ 0 - 1
src/main/java/edu/nju/BugApplication.java

@@ -11,7 +11,6 @@ public class BugApplication {
 
     public static void main(String[] args) {
         String relativelyPath = System.getProperty("user.dir");
-        System.out.println(relativelyPath);
         // 1. 创建生成文档的配置
         DocsConfig config= new DocsConfig();
         // 项目根目录

+ 93 - 13
src/main/java/edu/nju/controller/AnalyzeController.java

@@ -3,10 +3,7 @@ package edu.nju.controller;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -353,7 +350,7 @@ public class AnalyzeController {
 		}
 	}
 
-	@RequestMapping(value = "/anabootstrap.ymllyseExam")
+	@RequestMapping(value = "/analyseExam")
 	@ResponseBody
 	public void analyseExam(String caseId, String taskId, HttpServletResponse response){
 		try {
@@ -568,14 +565,25 @@ public class AnalyzeController {
 			ShortToken shortToken=aservice.tokenToDetail(token);
 			if(shortToken==null){
 				result.put("result","fail");
-				result.put("cause","no such token");
+				result.put("cause","身份验证失败,请重新点击按钮进入答题页面");
 			}else {
-				result.put("result", "success");
-				result.put("examId",shortToken.getExamId());
-				result.put("caseId",shortToken.getCaseId());
-				result.put("userId",shortToken.getUserId());
-				result.put("beginTime",shortToken.getBeginTime());
-				result.put("endTime",shortToken.getEndTime());
+				//有效
+				if(shortToken.isDisabled()){
+					shortToken.setDisabled(false);
+					aservice.saveShortToken(shortToken);
+					result.put("result", "success");
+					result.put("examId",shortToken.getExamId());
+					result.put("caseId",shortToken.getCaseId());
+					result.put("userId",shortToken.getUserId());
+					result.put("beginTime",shortToken.getBeginTime());
+					result.put("endTime",shortToken.getEndTime());
+				}
+				//无效
+				else{
+					result.put("result","fail");
+					result.put("cause","身份验证失败,请重新点击按钮进入答题页面");
+				}
+
 			}
 			PrintWriter out = response.getWriter();
 			out.print(result);
@@ -603,14 +611,17 @@ public class AnalyzeController {
 			ShortToken shortToken=aservice.findTokenByDetail(examId,caseId,userId);
 			if(shortToken==null){
 //				String token=AESUtil.encrypt(examId+"/"+caseId+"/"+userId);
-				String token= DigestUtils.md5DigestAsHex((examId+"/"+caseId+"/"+userId).getBytes());
+				String token= DigestUtils.md5DigestAsHex((UUID.randomUUID().toString()).getBytes());
 				ShortToken newShortToken=new ShortToken(token,beginTime,endTime,caseId,examId,userId,true);
 				aservice.saveShortToken(newShortToken);
 				result.put("result","success");
 				result.put("token",token);
 			}else{
+				String token= DigestUtils.md5DigestAsHex((UUID.randomUUID().toString()).getBytes());
+				shortToken.setToken(token);
 				shortToken.setBeginTime(beginTime);
 				shortToken.setEndTime(endTime);
+				shortToken.setDisabled(true);
 				aservice.saveShortToken(shortToken);
 				result.put("result","success");
 				result.put("token",shortToken.getToken());
@@ -623,6 +634,75 @@ public class AnalyzeController {
 		return result.toString();
 	}
 
+//  // 修改前版本
+//	/**
+//	 * 根据token获取众测任务具体信息
+//	 * @param token
+//	 * @param response
+//	 */
+//	@RequestMapping(value = "/tokenToDetail")
+//	@ResponseBody
+//	public void tokenToDetailUrl(String token ,HttpServletResponse response){
+//		try {
+//			JSONObject result = new JSONObject();
+//			ShortToken shortToken=aservice.tokenToDetail(token);
+//			if(shortToken==null){
+//				result.put("result","fail");
+//				result.put("cause","no such token");
+//			}else {
+//				result.put("result", "success");
+//				result.put("examId",shortToken.getExamId());
+//				result.put("caseId",shortToken.getCaseId());
+//				result.put("userId",shortToken.getUserId());
+//				result.put("beginTime",shortToken.getBeginTime());
+//				result.put("endTime",shortToken.getEndTime());
+//			}
+//			PrintWriter out = response.getWriter();
+//			out.print(result);
+//			out.flush();
+//			out.close();
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
+//	}
+//
+//	/**
+//	 * 根据众测信息获取对应token
+//	 * @param examId
+//	 * @param caseId
+//	 * @param userId
+//	 * @param beginTime
+//	 * @param endTime
+//	 * @return
+//	 */
+//	@RequestMapping(value = "/detailToToken")
+//	@ResponseBody
+//	public String detailToToken(String examId,String caseId,String userId,String beginTime,String endTime){
+//		JSONObject result = new JSONObject();
+//		try {
+//			ShortToken shortToken=aservice.findTokenByDetail(examId,caseId,userId);
+//			if(shortToken==null){
+////				String token=AESUtil.encrypt(examId+"/"+caseId+"/"+userId);
+//				String token= DigestUtils.md5DigestAsHex((examId+"/"+caseId+"/"+userId).getBytes());
+//				ShortToken newShortToken=new ShortToken(token,beginTime,endTime,caseId,examId,userId,true);
+//				aservice.saveShortToken(newShortToken);
+//				result.put("result","success");
+//				result.put("token",token);
+//			}else{
+//				shortToken.setBeginTime(beginTime);
+//				shortToken.setEndTime(endTime);
+//				aservice.saveShortToken(shortToken);
+//				result.put("result","success");
+//				result.put("token",shortToken.getToken());
+//			}
+//			return result.toString();
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
+//		result.put("result","fail");
+//		return result.toString();
+//	}
+
 
 
 	@RequestMapping(value = "/progress", method = RequestMethod.GET)

+ 8 - 1
src/main/java/edu/nju/controller/OAuthController.java

@@ -4,6 +4,7 @@ import edu.nju.controller.data.UserInfo;
 import edu.nju.controller.interceptor.AuthRequired;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,6 +32,11 @@ public class OAuthController {
     @Autowired
     private RestTemplate restTemplate;
 
+    @Value("${server.ip}")
+    private String serverHost;
+    @Value("${server.port}")
+    private String serverPort;
+
     @RequestMapping(value = "/auth", method = RequestMethod.GET)
     public void auth(@RequestParam("task_id") Long taskId,
                      @RequestParam("case_id") Long caseId,
@@ -52,7 +58,8 @@ public class OAuthController {
         session.setAttribute("caseId", caseId);
         session.setAttribute("taskId", taskId);
         try {
-            response.sendRedirect("http://47.99.140.117:9001/report/detail/"+taskId+"/"+caseId+"/"+userInfoResponse.getBody().getId());
+            response.sendRedirect("http://"+serverHost+":"+serverPort+"/report/detail/"+taskId+"/"+caseId+"/"+userInfoResponse.getBody().getId());
+//            response.sendRedirect("http://47.99.140.117:9001/report/detail/"+taskId+"/"+caseId+"/"+userInfoResponse.getBody().getId());
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 2 - 2
src/main/java/edu/nju/controller/SettingController.java

@@ -23,9 +23,9 @@ public class SettingController {
     private String mainSitePort;
     @Value("${thirdPartTool.mainsite.path}")
     private String mainSitePath;
-    @Value("${this.server.ip}")
+    @Value("${server.ip}")
     private String serverHost;
-    @Value("${this.server.port}")
+    @Value("${server.port}")
     private String serverPort;
 
 

+ 6 - 4
src/main/resources/application.yml

@@ -7,10 +7,10 @@ spring.profiles.active: dev-online
 
 cpSerialNum: cp_mooctest_dev
 
-this:
-  server:
-    ip: 127.0.0.1
-    port: 8090
+server:
+  ip: 127.0.0.1
+  port: 8090
+
 thirdPartTool:
   mainsite:
     host: mooctest.net
@@ -52,6 +52,7 @@ spring:
     mongodb:
       uri: mongodb://121.196.124.158:27017/test
 server:
+  ip: 127.0.0.1
   port: 8090
   servlet:
     context-path: /Bug/api/
@@ -76,6 +77,7 @@ spring:
     mongodb:
       uri: mongodb://121.196.124.158:27017/test
 server:
+  ip: 127.0.0.1
   port: 8090
   servlet:
     context-path: /Bug/api/