Эх сурвалжийг харах

试卷结构上传-单点登录

xiaof 3 жил өмнө
parent
commit
af893e99ba

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/DataSyncService.java

@@ -19,4 +19,6 @@ public interface DataSyncService {
     void uploadStructure(ExamPaperStructure examPaperStructure);
 
     Map<String, Object> markerLoginInfo();
+
+    Map<String, Object> markerLeaderLoginInfo();
 }

+ 25 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -26,6 +26,7 @@ import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.SysConfigService;
+import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.sync.StmmsUtils;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -56,9 +57,6 @@ public class DataSyncServiceImpl implements DataSyncService {
     @Autowired
     private TBSyncTaskService tbSyncTaskService;
 
-    @Autowired
-    private DictionaryConfig dictionaryConfig;
-
     @Autowired
     private ExamStudentService examStudentService;
 
@@ -80,6 +78,9 @@ public class DataSyncServiceImpl implements DataSyncService {
     @Autowired
     private BasicAttachmentService basicAttachmentService;
 
+    @Autowired
+    private SysUserService sysUserService;
+
     @Autowired
     StmmsUtils stmmsUtils;
 
@@ -250,22 +251,6 @@ public class DataSyncServiceImpl implements DataSyncService {
         }
     }
 
-    @Override
-    public Map<String, Object> markerLoginInfo() {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Map<String, Object> map = new HashMap<>();
-        long time = System.currentTimeMillis();
-        String rootUrl = dictionaryConfig.syncDataDomain().getHostUrl();
-        String markLoginUrl = dictionaryConfig.syncDataDomain().getMarkLoginUrl();
-        map.put("redirectUrl", rootUrl + markLoginUrl);
-        String account = "M_" + sysUser.getLoginName();
-        map.put("account", account);
-        map.put("name", sysUser.getLoginName());
-        map.put("time", time);
-        map.put("authorization", stmmsUtils.createSign(time, markLoginUrl));
-        return map;
-    }
-
     private TimerTask syncData(ExamPrintPlan examPrintPlan, Long thirdRelateId, String thirdRelateName) {
         return new TimerTask() {
             @Override
@@ -427,6 +412,27 @@ public class DataSyncServiceImpl implements DataSyncService {
         }
     }
 
+    @Override
+    public Map<String, Object> markerLoginInfo() {
+        try {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
+            return stmmsUtils.markLogin(sysUser);
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception("评卷员登录失败");
+        }
+    }
+
+    @Override
+    public Map<String, Object> markerLeaderLoginInfo() {
+        try {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            return stmmsUtils.markLeaderLogin(sysUser);
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception("科组长登录失败");
+        }
+    }
+
     private String getTempDir(SyncFileTypeEnum type) {
         return SystemConstant.TEMP_FILES_DIR + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
     }

+ 13 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SsoController.java

@@ -43,9 +43,21 @@ public class SsoController {
      */
     @ApiOperation(value = "评卷员单点登录")
     @RequestMapping(value = "/marker_login", method = RequestMethod.POST)
-    public Result list() {
+    public Result markerLogin() {
         Map<String, Object> map = dataSyncService.markerLoginInfo();
         return ResultUtil.ok(map);
     }
+
+    /**
+     * 评卷员单点登录
+     *
+     * @return
+     */
+    @ApiOperation(value = "评卷员单点登录")
+    @RequestMapping(value = "/marker_leader_login", method = RequestMethod.POST)
+    public Result markerLeaderLogin() {
+        Map<String, Object> map = dataSyncService.markerLeaderLoginInfo();
+        return ResultUtil.ok(map);
+    }
 }
 

+ 4 - 0
distributed-print/src/main/resources/application-dev.properties

@@ -133,12 +133,16 @@ sync.config.studentSaveUrl=/api/exam/student/save
 sync.config.fileUploadUrl=/api/file/{type}/upload
 #\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
 sync.config.markLoginUrl=/open/mark/login
+#科组长登录
+sync.config.markLeaderLoginUrl=/open/subject_header/login
 #\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 sync.config.studentCountUrl=/api/exam/student/count
 #\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
 sync.config.studentScoreUrl=/api/exam/student/score
 # 同步试卷结构
 sync.config.structureUrl=/api/exam/paper/save
+# 用户同步
+sync.config.userSaveUrl=/api/user/save
 
 
 sms.config.smsNormalCode=qmth

+ 6 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SyncDataDomain.java

@@ -15,6 +15,8 @@ public class SyncDataDomain {
 
     String markLoginUrl;
 
+    String markLeaderLoginUrl;
+
     String studentCountUrl;
 
     String studentScoreUrl;
@@ -23,8 +25,6 @@ public class SyncDataDomain {
 
     String userSaveUrl;
 
-    String carduploadurl;
-
     public String getHostUrl() {
         return hostUrl;
     }
@@ -97,11 +97,11 @@ public class SyncDataDomain {
         this.userSaveUrl = userSaveUrl;
     }
 
-    public String getCarduploadurl() {
-        return carduploadurl;
+    public String getMarkLeaderLoginUrl() {
+        return markLeaderLoginUrl;
     }
 
-    public void setCarduploadurl(String carduploadurl) {
-        this.carduploadurl = carduploadurl;
+    public void setMarkLeaderLoginUrl(String markLeaderLoginUrl) {
+        this.markLeaderLoginUrl = markLeaderLoginUrl;
     }
 }

+ 51 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/StmmsUtils.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.common.bean.dto.SyncStructureData;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.SyncFileTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
@@ -219,6 +220,56 @@ public class StmmsUtils {
         return false;
     }
 
+    /**
+     * 评卷员登录
+     * @return
+     */
+    public Map<String, Object> markLogin(SysUser sysUser) {
+        String markLoginUrl = dictionaryConfig.syncDataDomain().getMarkLoginUrl();
+        try {
+            //参数
+            return openLogin(sysUser, markLoginUrl, "M_");
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        }
+    }
+
+    /**
+     * 科组长登录
+     * @return
+     */
+    public Map<String, Object> markLeaderLogin(SysUser sysUser) {
+        String markLeaderLoginUrl = dictionaryConfig.syncDataDomain().getMarkLeaderLoginUrl();
+        try {
+            //参数
+            return openLogin(sysUser, markLeaderLoginUrl, "S_");
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        }
+    }
+
+    /**
+     * 组装登录参数
+     * @param loginUrl
+     * @param prefix
+     * @return
+     */
+    private Map<String, Object> openLogin(SysUser sysUser, String loginUrl, String prefix) {
+        String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
+        validatUrl(hostUrl, loginUrl);
+        String postUrl = hostUrl.concat(loginUrl);
+
+
+        long time = System.currentTimeMillis();
+        Map<String, Object> map = new HashMap<>();
+        map.put("redirectUrl", postUrl);
+        map.put("account", prefix + sysUser.getLoginName());
+        map.put("name", sysUser.getLoginName());
+        map.put("time", time);
+        map.put("authorization", createSign(time, loginUrl));
+        return map;
+    }
+
     /**
      * http请求头
      *