|
@@ -12,7 +12,6 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
import com.qmth.teachcloud.common.enums.SyncFileTypeEnum;
|
|
|
import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
|
import com.qmth.teachcloud.common.util.HttpKit;
|
|
|
-import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -57,7 +56,7 @@ public class StmmsUtils {
|
|
|
* @param examTime 考试时间
|
|
|
* @return
|
|
|
*/
|
|
|
- public Long syncExam(String code, String name, String examTime) {
|
|
|
+ public Long syncExam(Long schoolId, String code, String name, String examTime) {
|
|
|
String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
|
|
|
String examSaveUrl = dictionaryConfig.syncDataDomain().getExamSaveUrl();
|
|
|
validUrl(hostUrl, examSaveUrl);
|
|
@@ -69,7 +68,7 @@ public class StmmsUtils {
|
|
|
map.put("examTime", validParam(examTime, null, true, "考试时间"));
|
|
|
map.put("type", SAVE_EXAM_TYPE);
|
|
|
|
|
|
- String result = HttpKit.sendPost(postUrl, getHeaders(examSaveUrl), map, null, null, null);
|
|
|
+ String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, examSaveUrl), map, null, null, null);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
if (jsonObject.containsKey("id")) {
|
|
|
return Long.valueOf(jsonObject.get("id").toString());
|
|
@@ -81,6 +80,7 @@ public class StmmsUtils {
|
|
|
/**
|
|
|
* 考生创建/更新接口
|
|
|
*
|
|
|
+ * @param schoolId
|
|
|
* @param examId 考试ID
|
|
|
* @param examNumber 准考证号
|
|
|
* @param studentCode 学号
|
|
@@ -95,7 +95,7 @@ public class StmmsUtils {
|
|
|
* @param examSite 考点
|
|
|
* @param examRoom 考场
|
|
|
*/
|
|
|
- public boolean syncStudent(String examId, String examNumber, String studentCode, String name, String college,
|
|
|
+ public boolean syncStudent(Long schoolId, String examId, String examNumber, String studentCode, String name, String college,
|
|
|
String className, String teacher, String subjectCode, String subjectName,
|
|
|
String packageCode, String paperType, String examSite, String examRoom) {
|
|
|
String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
|
|
@@ -119,7 +119,7 @@ public class StmmsUtils {
|
|
|
map.put("examSite", validParam(examSite, null, false, "考点"));
|
|
|
map.put("examRoom", validParam(examRoom, null, false, "考场"));
|
|
|
|
|
|
- String result = HttpKit.sendPost(postUrl, getHeaders(studentSaveUrl), map, null, null, null);
|
|
|
+ String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentSaveUrl), map, null, null, null);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
if (jsonObject.containsKey("updateTime")) {
|
|
|
return true;
|
|
@@ -134,12 +134,13 @@ public class StmmsUtils {
|
|
|
/**
|
|
|
* 文件公共上传接口
|
|
|
*
|
|
|
+ * @param schoolId
|
|
|
* @param examId 考试ID
|
|
|
* @param subjectCode 科目代码
|
|
|
* @param type 文件类型 SyncFileTypeEnum枚举
|
|
|
* @param file 文件
|
|
|
*/
|
|
|
- public boolean syncFile(String examId, String subjectCode, SyncFileTypeEnum type, File file) {
|
|
|
+ public boolean syncFile(Long schoolId, String examId, String subjectCode, SyncFileTypeEnum type, File file) {
|
|
|
String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
|
|
|
String fileUploadUrl = dictionaryConfig.syncDataDomain().getFileUploadUrl();
|
|
|
validUrl(hostUrl, fileUploadUrl);
|
|
@@ -170,7 +171,7 @@ public class StmmsUtils {
|
|
|
formText.put("format", suffix);
|
|
|
formText.put("md5", DigestUtils.md5Hex(new FileInputStream(file)));
|
|
|
|
|
|
- String result = HttpKit.sendPost(postUrl, getHeaders(fileUploadUrl), formText, files, null, null);
|
|
|
+ String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, fileUploadUrl), formText, files, null, null);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
if (jsonObject.containsKey("success")) {
|
|
|
String success = jsonObject.get("success").toString();
|
|
@@ -189,13 +190,14 @@ public class StmmsUtils {
|
|
|
/**
|
|
|
* 试卷结构创建/更新接口
|
|
|
*
|
|
|
+ * @param schoolId
|
|
|
* @param examId 考试ID
|
|
|
* @param subjectCode 科目代码
|
|
|
* @param objective 是否客观题
|
|
|
* @param paperType 试卷类型
|
|
|
* @param questions 试卷结构JSON
|
|
|
*/
|
|
|
- public boolean syncPaperStructure(String examId, String subjectCode, Boolean objective,
|
|
|
+ public boolean syncPaperStructure(Long schoolId, String examId, String subjectCode, Boolean objective,
|
|
|
String paperType, List<SyncStructureData> questions) {
|
|
|
String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
|
|
|
String structureUrl = dictionaryConfig.syncDataDomain().getStructureUrl();
|
|
@@ -212,7 +214,7 @@ public class StmmsUtils {
|
|
|
|
|
|
String jsonData = JSONObject.toJSONString(map);
|
|
|
|
|
|
- String result = HttpKit.sendPost(postUrl, jsonData, getHeaders(structureUrl));
|
|
|
+ String result = HttpKit.sendPost(postUrl, jsonData, getHeaders(schoolId, structureUrl));
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
if (jsonObject.containsKey("updateTime")) {
|
|
|
return true;
|
|
@@ -267,7 +269,7 @@ public class StmmsUtils {
|
|
|
map.put("account", prefix + sysUser.getLoginName());
|
|
|
map.put("name", sysUser.getLoginName());
|
|
|
map.put("time", time);
|
|
|
- map.put("authorization", createSign(time, loginUrl));
|
|
|
+ map.put("authorization", createSign(sysUser.getSchoolId(), time, loginUrl));
|
|
|
return map;
|
|
|
} catch (Exception e) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("登录信息获取失败");
|
|
@@ -279,10 +281,10 @@ public class StmmsUtils {
|
|
|
*
|
|
|
* @param url 请求URL
|
|
|
*/
|
|
|
- private Map<String, String> getHeaders(String url) {
|
|
|
+ private Map<String, String> getHeaders(Long schoolId, String url) {
|
|
|
long time = System.currentTimeMillis();
|
|
|
Map<String, String> header = new HashMap<>();
|
|
|
- header.put(SystemConstant.HEADER_AUTHORIZATION, createSign(time, url));
|
|
|
+ header.put(SystemConstant.HEADER_AUTHORIZATION, createSign(schoolId, time, url));
|
|
|
header.put(SystemConstant.HEADER_TIME, String.valueOf(time));
|
|
|
return header;
|
|
|
}
|
|
@@ -293,8 +295,7 @@ public class StmmsUtils {
|
|
|
* @param time 时间戳
|
|
|
* @param url 请求URL
|
|
|
*/
|
|
|
- private String createSign(long time, String url) {
|
|
|
- Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
+ private String createSign(Long schoolId, long time, String url) {
|
|
|
BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
|
|
|
if (basicSchool == null) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("学校不存在");
|
|
@@ -310,15 +311,15 @@ public class StmmsUtils {
|
|
|
* 校验参数值并返回(字符型)
|
|
|
*
|
|
|
* @param value 参数值
|
|
|
- * @param defaulValue 默认值
|
|
|
+ * @param defaultValue 默认值
|
|
|
* @param require 是否必填(true:是,false:否)
|
|
|
* @param name 参数名称
|
|
|
*/
|
|
|
- private String validParam(String value, String defaulValue, boolean require, String name) {
|
|
|
- if (require && StringUtils.isAnyBlank(value, defaulValue)) {
|
|
|
+ private String validParam(String value, String defaultValue, boolean require, String name) {
|
|
|
+ if (require && StringUtils.isAllBlank(value, defaultValue)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception((StringUtils.isBlank(name) ? "" : name) + "值必填");
|
|
|
}
|
|
|
- return StringUtils.isBlank(value) ? defaulValue : value;
|
|
|
+ return StringUtils.isBlank(value) ? defaultValue : value;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -371,6 +372,8 @@ public class StmmsUtils {
|
|
|
/**
|
|
|
* 考试成绩考生数量查询接口
|
|
|
*
|
|
|
+ *
|
|
|
+ * @param schoolId
|
|
|
* @param examId
|
|
|
* @param examCode
|
|
|
* @param examNumber
|
|
@@ -381,7 +384,7 @@ public class StmmsUtils {
|
|
|
* @param teacher
|
|
|
* @return
|
|
|
*/
|
|
|
- public int getStudentCount(Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher) {
|
|
|
+ public int getStudentCount(Long schoolId, Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher) {
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
|
|
|
map.put("examCode", validParam(examCode, null, false, "考试编码"));
|
|
@@ -400,7 +403,7 @@ public class StmmsUtils {
|
|
|
//请求
|
|
|
String res;
|
|
|
try {
|
|
|
- res = HttpKit.sendPost(postUrl, getHeaders(studentCountUrl), map, null, null, null);
|
|
|
+ res = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentCountUrl), map, null, null, null);
|
|
|
} catch (Exception e) {
|
|
|
log.info("云阅卷:调用考试成绩考生数量查询接口请求异常,{}", e.getMessage());
|
|
|
throw new RuntimeException("云阅卷:调用考试成绩考生数量查询接口请求异常," + e.getMessage());
|
|
@@ -416,6 +419,8 @@ public class StmmsUtils {
|
|
|
/**
|
|
|
* 考试成绩考生查询接口
|
|
|
*
|
|
|
+ *
|
|
|
+ * @param schoolId
|
|
|
* @param examId
|
|
|
* @param examCode
|
|
|
* @param examNumber
|
|
@@ -428,7 +433,7 @@ public class StmmsUtils {
|
|
|
* @param pageSize
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<Map> getStudentScore(Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher, int pageNo, int pageSize) {
|
|
|
+ public List<Map> getStudentScore(Long schoolId, Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher, int pageNo, int pageSize) {
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
|
|
|
map.put("examCode", validParam(examCode, null, false, "考试编码"));
|
|
@@ -448,7 +453,7 @@ public class StmmsUtils {
|
|
|
//请求
|
|
|
String res;
|
|
|
try {
|
|
|
- res = HttpKit.sendPost(postUrl, getHeaders(studentScoreUrl), map, null, null, null);
|
|
|
+ res = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentScoreUrl), map, null, null, null);
|
|
|
} catch (Exception e) {
|
|
|
log.info("云阅卷:调用考试成绩考生查询接口请求异常,{}", e.getMessage());
|
|
|
throw new RuntimeException("云阅卷:调用考试成绩考生查询接口请求异常," + e.getMessage());
|