Bläddra i källkod

添加加密url

insomniaLee 4 år sedan
förälder
incheckning
7a33f826da

+ 2 - 0
src/main/java/com/mooctest/controller/TaskController.java

@@ -146,6 +146,7 @@ public class TaskController {
 
         // 从json中获得的task数据保存到TaskDTO中返回
         TaskDTO task = taskService.getByExamIdAndCaseId(examId, caseId);
+        String encodedUrl = taskService.getEncodeTaskReportUrl(examId, caseId) ;
         model.addAttribute("aggregated", aggregated);
         // allReport是ButDTO集合
         model.addAttribute("allReports", allReports);
@@ -156,6 +157,7 @@ public class TaskController {
         model.addAttribute("examId", examId);
         model.addAttribute("caseId", caseId);
         model.addAttribute("reportHost",reportHost);
+        model.addAttribute("encodedUrl",encodedUrl);
         return "task_detail";
     }
 

+ 6 - 1
src/main/java/com/mooctest/service/TaskService.java

@@ -12,6 +12,7 @@ import com.mooctest.dao.MasterReportDao;
 import com.mooctest.dao.TaskDao;
 import com.mooctest.data.TaskDTO;
 import com.mooctest.model.Task;
+import com.mooctest.util.EncodeUtil;
 import com.mooctest.util.TimeUtil;
 import org.bson.Document;
 import org.springframework.beans.BeanUtils;
@@ -250,7 +251,11 @@ public class TaskService {
         return res;
     }
 
-
+    public String getEncodeTaskReportUrl(long examId,long caseId){
+        String url = HTTP + reportHost + "/report/detail/" + examId +"/" +caseId +"/userId";
+        String encodedUrl = EncodeUtil.strConvertBase(url);
+        return encodedUrl;
+    }
 
     public TaskDTO getByExamIdAndCaseId(long examId, long caseId) {
         TaskDTO taskDefault = new TaskDTO();

+ 30 - 0
src/main/java/com/mooctest/util/EncodeUtil.java

@@ -0,0 +1,30 @@
+package com.mooctest.util;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Base64;
+
+public class EncodeUtil {
+
+    public static String strConvertBase(String str) {
+        if(null != str){
+            Base64.Encoder encoder = Base64.getEncoder();
+            return URLEncoder.encode(encoder.encodeToString(str.getBytes()));
+        }
+        return "";
+    }
+
+    public static String baseConvertStr(String str) {
+        if(null != str){
+            Base64.Decoder decoder = Base64.getDecoder();
+            try {
+                return new String(decoder.decode(str.getBytes()), "utf-8");
+            } catch (UnsupportedEncodingException e) {
+                return null;
+            }
+        }
+        return "";
+    }
+
+
+}

+ 35 - 4
src/main/resources/templates/task_detail.html

@@ -228,14 +228,18 @@
 
         <!-- Report List Table -->
         <div class="assign-div pull-right">
-            <button  id="distribute-btn" class="btn btn-sm btn-assign pull-right">
-                <i class="fa fa-coffee" style="margin-right: 3px;"></i>
-                <span>人员分配</span>
-            </button>
+<!--            <button  id="distribute-btn" class="btn btn-sm btn-assign pull-right">-->
+<!--                <i class="fa fa-coffee" style="margin-right: 3px;"></i>-->
+<!--                <span>人员分配</span>-->
+<!--            </button>-->
 <!--            <button  id="blockChain-btn" class="btn btn-sm btn-assign pull-right">-->
 <!--                <i class="fa fa-coffee" style="margin-right: 3px;"></i>-->
 <!--                <span>导入数据到区块链</span>-->
 <!--            </button>-->
+            <button th:if="${!aggregated}" id="taskUrl-btn" class="btn btn-sm btn-assign pull-right" onclick="copyUrl()">
+                <i class="fa fa-coffee" style="margin-right: 3px;"></i>
+                <span>复制任务url</span>
+            </button>
             <button th:if="${!aggregated}" id="assign-btn" class="btn btn-sm btn-assign pull-right">
                 <i class="fa fa-coffee" style="margin-right: 3px;"></i>
                 <span>自动融合</span>
@@ -351,10 +355,13 @@
 <script src="/static/AdminLTE/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
 <script src="/static/AdminLTE/bower_components/select2/dist/js/select2.min.js"></script>
 <script src="/static/js/app_info.js"></script>
+<script src="/static/AdminLTE/bower_components/bootstrap-notify/dist/bootstrap-notify.min.js"></script>
+<script type="text/javascript" src="http://www.jq22.com/demo/clipboard.js-master201703170013/dist/clipboard.min.js"></script>
 <script type="text/javascript" xmlns:th="http://www.thymeleaf.org" th:inline="javascript">
 
     /*<![CDATA[*/
     var reportHost = [[${reportHost}]]
+    var encodedReportDetailUrl = [[${encodedUrl}]]
     /*]]>*/
 
 
@@ -392,4 +399,28 @@
     });
 
 
+    copyUrl = function(){
+        var clipboard = new Clipboard('#taskUrl-btn', {
+            text: function() {
+                return encodedReportDetailUrl;
+            }
+        });
+
+        clipboard.on('success', function(e) {
+            $.notify({
+                // options
+                message: '已成功复制到你的剪切板'
+            },{
+                // settings
+                delay: 100,
+                timer: 3000,
+                type: 'success'
+            });
+        });
+        clipboard.on('error', function(e) {
+            console.log(e);
+        });
+    }
+
+
 </script>