Selaa lähdekoodia

武大考务数据对接-联调bug修改

xiaof 2 vuotta sitten
vanhempi
commit
006d2cbc06
24 muutettua tiedostoa jossa 144 lisäystä ja 69 poistoa
  1. 3 5
      src/main/java/com/qmth/eds/api/ExamScheduleTaskController.java
  2. 3 3
      src/main/java/com/qmth/eds/bean/dto/CloudMarkingScoreDto.java
  3. 12 0
      src/main/java/com/qmth/eds/common/entity/CloudMarkingExam.java
  4. 0 1
      src/main/java/com/qmth/eds/common/entity/ExamScheduleTask.java
  5. 21 10
      src/main/java/com/qmth/eds/common/tools/CloudMarkingUtil.java
  6. 13 1
      src/main/java/com/qmth/eds/common/util/HttpKit.java
  7. 0 1
      src/main/java/com/qmth/eds/mapper/CloudMarkingExamMapper.java
  8. 1 1
      src/main/java/com/qmth/eds/mapper/ExamDownloadRecordMapper.java
  9. 1 1
      src/main/java/com/qmth/eds/service/ExamScheduleTaskService.java
  10. 13 1
      src/main/java/com/qmth/eds/service/impl/CloudMarkingExamServiceImpl.java
  11. 1 3
      src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java
  12. 26 17
      src/main/java/com/qmth/eds/service/impl/DataSyncServiceImpl.java
  13. 3 2
      src/main/java/com/qmth/eds/service/impl/ExamDownloadRecordServiceImpl.java
  14. 15 5
      src/main/java/com/qmth/eds/service/impl/ExamScheduleTaskServiceImpl.java
  15. 5 4
      src/main/java/com/qmth/eds/service/impl/ExamSyncTotalServiceImpl.java
  16. 5 0
      src/main/java/com/qmth/eds/service/impl/SysUserServiceImpl.java
  17. 4 2
      src/main/java/com/qmth/eds/service/impl/TeachcloudCommonServiceImpl.java
  18. 5 5
      src/main/resources/application-dev.properties
  19. 2 2
      src/main/resources/application-release.properties
  20. 2 2
      src/main/resources/application-test.properties
  21. 2 1
      src/main/resources/db/eds-v1.0.1.sql
  22. 4 0
      src/main/resources/mapper/CloudMarkingExamMapper.xml
  23. 1 0
      src/main/resources/mapper/ExamDownloadRecordMapper.xml
  24. 2 2
      src/main/resources/mapper/TBSyncTaskMapper.xml

+ 3 - 5
src/main/java/com/qmth/eds/api/ExamScheduleTaskController.java

@@ -3,9 +3,9 @@ package com.qmth.eds.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.ExamScheduleTask;
-import com.qmth.eds.service.ExamScheduleTaskService;
 import com.qmth.eds.common.util.Result;
 import com.qmth.eds.common.util.ResultUtil;
+import com.qmth.eds.service.ExamScheduleTaskService;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.validation.BindingResult;
@@ -26,7 +26,6 @@ public class ExamScheduleTaskController {
     /**
      * 查询
      *
-     * @param schoolId   学校ID
      * @param semesterId 学期ID
      * @param examTypeId 考试类型ID
      * @param startTime  定时任务开始时间
@@ -36,14 +35,13 @@ public class ExamScheduleTaskController {
      */
     @ApiOperation(value = "查询")
     @PostMapping("/page")
-    public Result page(@RequestParam(value = "schoolId", required = false) Long schoolId,
-                       @RequestParam(value = "semesterId", required = false) Long semesterId,
+    public Result page(@RequestParam(value = "semesterId", required = false) Long semesterId,
                        @RequestParam(value = "examTypeId", required = false) Long examTypeId,
                        @RequestParam(value = "startTime", required = false) Long startTime,
                        @RequestParam(value = "endTime", required = false) Long endTime,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(examScheduleTaskService.list(schoolId, semesterId, examTypeId, startTime, endTime, pageNumber, pageSize));
+        return ResultUtil.ok(examScheduleTaskService.list(semesterId, examTypeId, startTime, endTime, pageNumber, pageSize));
     }
 
     /**

+ 3 - 3
src/main/java/com/qmth/eds/bean/dto/CloudMarkingScoreDto.java

@@ -31,7 +31,7 @@ public class CloudMarkingScoreDto implements Serializable {
 
     private String teacher;
 
-    private Integer status;
+    private String status;
 
     private String totalScore;
 
@@ -127,11 +127,11 @@ public class CloudMarkingScoreDto implements Serializable {
         this.teacher = teacher;
     }
 
-    public Integer getStatus() {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(Integer status) {
+    public void setStatus(String status) {
         this.status = status;
     }
 

+ 12 - 0
src/main/java/com/qmth/eds/common/entity/CloudMarkingExam.java

@@ -23,6 +23,10 @@ public class CloudMarkingExam implements Serializable {
     @TableId(value = "id")
     private Long id;
 
+    @ApiModelProperty(value = "学校ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
     @ApiModelProperty(value = "考试id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Integer examId;
@@ -47,6 +51,14 @@ public class CloudMarkingExam implements Serializable {
         this.id = id;
     }
 
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
     public Integer getExamId() {
         return examId;
     }

+ 0 - 1
src/main/java/com/qmth/eds/common/entity/ExamScheduleTask.java

@@ -20,7 +20,6 @@ public class ExamScheduleTask extends BaseEntity implements Serializable {
 
     @ApiModelProperty(value = "学校id")
     @JsonSerialize(using = ToStringSerializer.class)
-    @NotNull(message = "请选择学校")
     private Long schoolId;
 
     @ApiModelProperty(value = "学校名称")

+ 21 - 10
src/main/java/com/qmth/eds/common/tools/CloudMarkingUtil.java

@@ -3,9 +3,13 @@ package com.qmth.eds.common.tools;
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
+import com.qmth.eds.common.contant.SystemConstant;
+import com.qmth.eds.common.entity.BasicSchool;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
 import com.qmth.eds.common.util.HttpKit;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.core.config.DictionaryConfig;
+import com.qmth.eds.service.CommonCacheService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -35,6 +39,9 @@ public class CloudMarkingUtil {
     @Resource
     DictionaryConfig dictionaryConfig;
 
+    @Resource
+    CommonCacheService commonCacheService;
+
     /**
      * 考试成绩考生查询接口
      *
@@ -55,12 +62,7 @@ public class CloudMarkingUtil {
 
         Map<String, String> header = createHeader(examUrl);
         //请求
-        String examObject;
-        try {
-            examObject = HttpKit.sendPost(yyjRootUrl + examUrl, paramMap, header);
-        } catch (Exception e) {
-            throw ExceptionResultEnum.ERROR.exception("查询考试接口调用异常");
-        }
+        String examObject = HttpKit.sendPost(yyjRootUrl + examUrl, paramMap, header);
         return JSONObject.parseArray(JSONObject.toJSON(examObject).toString(), JSONObject.class);
     }
 
@@ -122,13 +124,22 @@ public class CloudMarkingUtil {
      * @param url url
      */
     private Map<String, String> createHeader(String url) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+        String accessKey = null;
+        String accessSecret = null;
+        if (basicSchool != null) {
+            accessKey = basicSchool.getAccessKey();
+            accessSecret = basicSchool.getAccessSecret();
+        } else {
+            accessKey = dictionaryConfig.cloudMarkingDomain().getAccessKey();
+            accessSecret = dictionaryConfig.cloudMarkingDomain().getAccessSecret();
+        }
         long time = System.currentTimeMillis();
         Map<String, String> headerMap = new HashMap<>();
-        headerMap.put("time", String.valueOf(time));
-        String accessKey = dictionaryConfig.cloudMarkingDomain().getAccessKey();
-        String accessSecret = dictionaryConfig.cloudMarkingDomain().getAccessSecret();
+        headerMap.put(SystemConstant.HEADER_TIME, String.valueOf(time));
         String signature = SignatureEntity.build(SignatureType.SECRET, "POST", url, time, accessKey, accessSecret);
-        headerMap.put("authorization", signature);
+        headerMap.put(SystemConstant.HEADER_AUTHORIZATION, signature);
 
         return headerMap;
     }

+ 13 - 1
src/main/java/com/qmth/eds/common/util/HttpKit.java

@@ -133,7 +133,19 @@ public class HttpKit {
             out.flush();
             // 定义BufferedReader输入流来读取URL的响应
             responseCode = connection.getResponseCode();
-            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+            if (responseCode >= 400) {
+                Map<String, List<String>> responseProperties = connection.getHeaderFields();
+                if (responseProperties.containsKey("error-info")) {
+                    List<String> strings = responseProperties.get("error-info");
+                    if (!strings.isEmpty()) {
+                        String message = String.join(";", strings);
+                        throw ExceptionResultEnum.ERROR.exception(message);
+                    }
+                }
+                throw ExceptionResultEnum.ERROR.exception("接口调用错误");
+            } else {
+                reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+            }
             String line;
             while ((line = reader.readLine()) != null) {
                 result.append(line);

+ 0 - 1
src/main/java/com/qmth/eds/mapper/CloudMarkingExamMapper.java

@@ -7,5 +7,4 @@ import com.qmth.eds.common.entity.CloudMarkingExam;
  * 云阅卷考试表 Mapper 接口
  */
 public interface CloudMarkingExamMapper extends BaseMapper<CloudMarkingExam> {
-
 }

+ 1 - 1
src/main/java/com/qmth/eds/mapper/ExamDownloadRecordMapper.java

@@ -11,5 +11,5 @@ import org.apache.ibatis.annotations.Param;
  * 用户下载记录表 Mapper 接口
  */
 public interface ExamDownloadRecordMapper extends BaseMapper<ExamDownloadRecord> {
-    IPage<ExamDownloadRecordDto> list(@Param("page") Page<ExamDownloadRecordDto> page, @Param("operateDate") String operateDate, @Param("used") Boolean used, @Param("useScene") String useScene);
+    IPage<ExamDownloadRecordDto> list(@Param("page") Page<ExamDownloadRecordDto> page, @Param("schoolId") Long schoolId, @Param("operateDate") String operateDate, @Param("used") Boolean used, @Param("useScene") String useScene);
 }

+ 1 - 1
src/main/java/com/qmth/eds/service/ExamScheduleTaskService.java

@@ -11,7 +11,7 @@ import java.util.List;
  */
 public interface ExamScheduleTaskService extends IService<ExamScheduleTask> {
 
-    IPage<ExamScheduleTask> list(Long schoolId, Long semesterId, Long examTypeId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
+    IPage<ExamScheduleTask> list(Long semesterId, Long examTypeId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
     boolean saveTask(ExamScheduleTask examScheduleTask);
 

+ 13 - 1
src/main/java/com/qmth/eds/service/impl/CloudMarkingExamServiceImpl.java

@@ -2,14 +2,17 @@ package com.qmth.eds.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.CloudMarkingExam;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
 import com.qmth.eds.common.tools.CloudMarkingUtil;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.CloudMarkingExamMapper;
 import com.qmth.eds.service.CloudMarkingExamService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -23,13 +26,21 @@ public class CloudMarkingExamServiceImpl extends ServiceImpl<CloudMarkingExamMap
 
     @Override
     public List<CloudMarkingExam> listExam() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<CloudMarkingExam> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().orderByDesc(CloudMarkingExam::getExamId);
+        queryWrapper.lambda().eq(CloudMarkingExam::getSchoolId, schoolId)
+                .orderByDesc(CloudMarkingExam::getExamId);
         return this.list(queryWrapper);
     }
 
+    @Transactional
     @Override
     public List<CloudMarkingExam> syncExam() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        UpdateWrapper<CloudMarkingExam> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(CloudMarkingExam::getSchoolId, schoolId);
+        this.remove(updateWrapper);
+
         List<JSONObject> objectList = cloudMarkingUtil.getExam(SystemConstant.PAGE_NUMBER_MIN, SystemConstant.PAGE_SIZE);
         if (objectList.isEmpty()) {
             throw ExceptionResultEnum.ERROR.exception("未查询到考试");
@@ -37,6 +48,7 @@ public class CloudMarkingExamServiceImpl extends ServiceImpl<CloudMarkingExamMap
         List<CloudMarkingExam> markingExams = objectList.stream().map(m -> {
             CloudMarkingExam cloudMarkingExam = new CloudMarkingExam();
             cloudMarkingExam.setId(SystemConstant.getDbUuid());
+            cloudMarkingExam.setSchoolId(schoolId);
             cloudMarkingExam.setExamId(m.getInteger("id"));
             cloudMarkingExam.setExamName(m.getString("name"));
             return cloudMarkingExam;

+ 1 - 3
src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java

@@ -93,7 +93,7 @@ public class CloudMarkingScoreForeignServiceImpl extends ServiceImpl<CloudMarkin
             String fileName = "file-folder" + File.separator + schoolId + File.separator + System.currentTimeMillis() + ".xlsx";
             file = new File(fileName);
             if (!file.exists()) {
-                file.createNewFile();
+                file.getParentFile().mkdirs();
             }
             ExcelWriter excelWriter = EasyExcel.write(file).build();
             //动态表头
@@ -101,8 +101,6 @@ public class CloudMarkingScoreForeignServiceImpl extends ServiceImpl<CloudMarkin
             excelWriter.write(cloudMarkingScoreForeignList, writeSheet1);
             excelWriter.finish();
             FileUtil.outputFile(response, file, file.getName());
-        } catch (IOException e) {
-            throw ExceptionResultEnum.ERROR.exception("下载失败:" + e.getMessage());
         } finally {
             if (file != null && file.exists()) {
                 file.delete();

+ 26 - 17
src/main/java/com/qmth/eds/service/impl/DataSyncServiceImpl.java

@@ -142,6 +142,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                 int subjects = Integer.parseInt(String.valueOf(examSyncStudentTemps.stream().map(ExamSyncStudentTemp::getKch).filter(StringUtils::isNotBlank).distinct().count()));
                 int students = examSyncStudentTemps.size();
                 ExamSyncTotal examSyncTotal = new ExamSyncTotal(syncDate, schoolId, schoolName, semesterId, semesterName, examTypeId, examTypeName, colleges, subjects, students, txtFileMd5);
+                examSyncTotal.setId(examSyncTotalId);
                 examSyncTotalService.save(examSyncTotal);
                 // 生成excel文件
                 File excelFile = createExcel(schoolId, examSyncStudents);
@@ -198,7 +199,6 @@ public class DataSyncServiceImpl implements DataSyncService {
             Map<String, String> mapSource = new HashMap<>();
             mapSource.put("examId", String.valueOf(examId));
             int totalCount = cloudMarkingUtil.getStudentCount(mapSource);
-            log.info("云阅卷:考试成绩考生数量查询接口调用,返回数量:{}", totalCount);
             List<CloudMarkingScore> cloudMarkingScoreList = new ArrayList<>();
             if (totalCount > 0) {
                 int pageSize = SystemConstant.PAGE_SIZE;
@@ -224,13 +224,13 @@ public class DataSyncServiceImpl implements DataSyncService {
                         cloudMarkingScore.setClassName(m.getString("className"));
                         cloudMarkingScore.setTeacher(m.getString("teacher"));
                         cloudMarkingScore.setStatus(m.getInteger("status"));
-                        cloudMarkingScore.setSheetUrls(m.getString("sheetUrls"));
+//                        cloudMarkingScore.setSheetUrls(m.getString("sheetUrls"));
                         cloudMarkingScore.setTotalScore(m.getString("totalScore"));
                         cloudMarkingScore.setObjectiveScore(m.getString("objectiveScore"));
                         cloudMarkingScore.setSubjectiveScore(m.getString("subjectiveScore"));
-                        cloudMarkingScore.setObjectiveScoreDetail(m.getString("objectiveScoreDetail"));
-                        cloudMarkingScore.setSubjectiveScoreDetail(m.getString("subjectiveScoreDetail"));
-                        cloudMarkingScore.setMarkTags(m.getString("markTags"));
+//                        cloudMarkingScore.setObjectiveScoreDetail(m.getString("objectiveScoreDetail"));
+//                        cloudMarkingScore.setSubjectiveScoreDetail(m.getString("subjectiveScoreDetail"));
+//                        cloudMarkingScore.setMarkTags(m.getString("markTags"));
                         return cloudMarkingScore;
                     }).collect(Collectors.toList());
                     cloudMarkingScoreList.addAll(cloudMarkingScores);
@@ -295,23 +295,32 @@ public class DataSyncServiceImpl implements DataSyncService {
                 .eq(ExamSyncTotal::getDownloadStatus, true)
                 .orderByDesc(ExamSyncTotal::getSyncDate);
         List<ExamSyncTotal> examSyncTotalList = examSyncTotalService.list(totalQueryWrapper);
-        if (examSyncTotalList.isEmpty()) {
-            throw ExceptionResultEnum.ERROR.exception("未找到考务数据汇总数据");
-        }
-        ExamSyncTotal examSyncTotal = examSyncTotalList.get(0);
-        List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal.getId());
         List<CloudMarkingScoreForeign> cloudMarkingScoreForeigns = new ArrayList<>();
-        for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
-            Optional<ExamSyncStudent> optional = examSyncStudents.stream().filter(s -> s.getJxbmc().equals(cloudMarkingScore.getClassName()) && s.getKch().equals(cloudMarkingScore.getSubjectCode()) && s.getXh().equals(cloudMarkingScore.getStudentCode())).findFirst();
-            if (!optional.isPresent()) {
-                throw ExceptionResultEnum.ERROR.exception(String.format("未匹配到教学班%s,课程号%s,学号%s的考务数据", cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getStudentCode()));
+        if (!examSyncTotalList.isEmpty()) {
+            ExamSyncTotal examSyncTotal = examSyncTotalList.get(0);
+            List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal.getId());
+            for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
+                Optional<ExamSyncStudent> optional = examSyncStudents.stream().filter(s -> s.getJxbmc().equals(cloudMarkingScore.getClassName()) && s.getKch().equals(cloudMarkingScore.getSubjectCode()) && s.getXh().equals(cloudMarkingScore.getStudentCode())).findFirst();
+                if (!optional.isPresent()) {
+                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
+                } else {
+                    ExamSyncStudent examSyncStudent = optional.get();
+                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
+                }
+            }
+        } else {
+            for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
+                cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
             }
-            ExamSyncStudent examSyncStudent = optional.get();
-            cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
         }
 
         // 删除全量数据
-        cloudMarkingScoreForeignService.remove(new UpdateWrapper<>());
+        UpdateWrapper<CloudMarkingScoreForeign> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId)
+                .eq(CloudMarkingScoreForeign::getSemesterId, semesterId)
+                .eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId)
+                .eq(CloudMarkingScoreForeign::getExamId, examId);
+        cloudMarkingScoreForeignService.remove(updateWrapper);
 
         List<CloudMarkingScoreForeign> foreignData = new ArrayList<>();
         //1000条提交一次

+ 3 - 2
src/main/java/com/qmth/eds/service/impl/ExamDownloadRecordServiceImpl.java

@@ -7,6 +7,7 @@ import com.qmth.eds.bean.dto.ExamDownloadRecordDto;
 import com.qmth.eds.common.entity.ExamDownloadRecord;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
 import com.qmth.eds.common.enums.UseSceneEnum;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.ExamDownloadRecordMapper;
 import com.qmth.eds.service.ExamDownloadRecordService;
 import org.apache.commons.lang3.StringUtils;
@@ -20,9 +21,9 @@ import java.util.StringJoiner;
 public class ExamDownloadRecordServiceImpl extends ServiceImpl<ExamDownloadRecordMapper, ExamDownloadRecord> implements ExamDownloadRecordService {
     @Override
     public IPage<ExamDownloadRecordDto> list(Long operateTime, Boolean used, String useScene, Integer pageNumber, Integer pageSize) {
-        Page<ExamDownloadRecordDto> page = new Page<>(pageNumber, pageSize);
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         String operateDate = operateTime != null ? new SimpleDateFormat("yyyy-MM-dd").format(operateTime) : null;
-        IPage<ExamDownloadRecordDto> examDownloadRecordDtoIPage = this.baseMapper.list(page, operateDate, used, useScene);
+        IPage<ExamDownloadRecordDto> examDownloadRecordDtoIPage = this.baseMapper.list(new Page<>(pageNumber, pageSize),schoolId, operateDate, used, useScene);
         for (ExamDownloadRecordDto record : examDownloadRecordDtoIPage.getRecords()) {
             String scene = record.getUseScene();
             if (StringUtils.isNotBlank(scene)) {

+ 15 - 5
src/main/java/com/qmth/eds/service/impl/ExamScheduleTaskServiceImpl.java

@@ -5,13 +5,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.eds.common.contant.SystemConstant;
+import com.qmth.eds.common.entity.BasicSchool;
 import com.qmth.eds.common.entity.ExamScheduleTask;
 import com.qmth.eds.common.entity.SysUser;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.ExamScheduleTaskMapper;
+import com.qmth.eds.service.CommonCacheService;
 import com.qmth.eds.service.ExamScheduleTaskService;
 import com.qmth.eds.service.SysUserService;
-import com.qmth.eds.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -23,13 +25,15 @@ public class ExamScheduleTaskServiceImpl extends ServiceImpl<ExamScheduleTaskMap
     @Resource
     private SysUserService sysUserService;
 
+    @Resource
+    CommonCacheService commonCacheService;
+
     @Override
-    public IPage<ExamScheduleTask> list(Long schoolId, Long semesterId, Long examTypeId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
+    public IPage<ExamScheduleTask> list(Long semesterId, Long examTypeId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<ExamScheduleTask> queryWrapper = new QueryWrapper<>();
         Page<ExamScheduleTask> page = new Page<>(pageNumber, pageSize);
-        if (schoolId != null) {
-            queryWrapper.lambda().eq(ExamScheduleTask::getSchoolId, schoolId);
-        }
+        queryWrapper.lambda().eq(ExamScheduleTask::getSchoolId, schoolId);
         if (semesterId != null) {
             queryWrapper.lambda().eq(ExamScheduleTask::getSemesterId, semesterId);
         }
@@ -54,12 +58,18 @@ public class ExamScheduleTaskServiceImpl extends ServiceImpl<ExamScheduleTaskMap
     @Override
     public boolean saveTask(ExamScheduleTask examScheduleTask) {
         Long userId = ServletUtil.getRequestUserId();
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         if (examScheduleTask.getId() == null) {
             ExamScheduleTask scheduleTask = this.baseMapper.findBySchoolIdAndSemesterIdAndExamTypeId(examScheduleTask.getSchoolId(), examScheduleTask.getSemesterId(), examScheduleTask.getExamTypeId());
             if (scheduleTask != null) {
                 throw ExceptionResultEnum.ERROR.exception("学校+学期+考试类型 已设置定时任务时间");
             }
             examScheduleTask.setId(SystemConstant.getDbUuid());
+            examScheduleTask.setSchoolId(schoolId);
+            BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+            if(basicSchool != null){
+                examScheduleTask.setSchoolName(basicSchool.getName());
+            }
             examScheduleTask.setCreateId(userId);
             examScheduleTask.setCreateTime(System.currentTimeMillis());
             this.baseMapper.insert(examScheduleTask);

+ 5 - 4
src/main/java/com/qmth/eds/service/impl/ExamSyncTotalServiceImpl.java

@@ -11,12 +11,12 @@ import com.qmth.eds.common.entity.ExamDownloadRecord;
 import com.qmth.eds.common.entity.ExamSyncTotal;
 import com.qmth.eds.common.entity.SysUser;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
+import com.qmth.eds.common.util.FileUtil;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.ExamSyncTotalMapper;
 import com.qmth.eds.service.ExamDownloadRecordService;
 import com.qmth.eds.service.ExamSyncTotalService;
 import com.qmth.eds.service.SysUserService;
-import com.qmth.eds.common.util.FileUtil;
-import com.qmth.eds.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -35,13 +35,14 @@ public class ExamSyncTotalServiceImpl extends ServiceImpl<ExamSyncTotalMapper, E
 
     @Override
     public IPage<ExamSyncTotal> list(Long syncDate, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<ExamSyncTotal> queryWrapper = new QueryWrapper<>();
-        Page<ExamSyncTotal> page = new Page<>(pageNumber, pageSize);
+        queryWrapper.lambda().eq(ExamSyncTotal::getSchoolId, schoolId);
         if (syncDate != null) {
             queryWrapper.lambda().eq(ExamSyncTotal::getSyncDate, syncDate);
         }
         queryWrapper.lambda().orderByDesc(ExamSyncTotal::getCreateTime);
-        return this.baseMapper.selectPage(page, queryWrapper);
+        return this.baseMapper.selectPage(new Page<>(pageNumber, pageSize), queryWrapper);
     }
 
     @Override

+ 5 - 0
src/main/java/com/qmth/eds/service/impl/SysUserServiceImpl.java

@@ -53,6 +53,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         for (SysUser record : sysUserPage.getRecords()) {
             byte[] bytePassword = Base64Util.decode(record.getPassword());
             record.setPassword(new String(bytePassword));
+
+            QueryWrapper<SysUserRole> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.lambda().eq(SysUserRole::getUserId, record.getId());
+            SysUserRole sysUserRole = sysUserRoleService.getOne(queryWrapper1);
+            record.setRoleId(sysUserRole != null ? sysUserRole.getRoleId() : null);
         }
         return sysUserPage;
     }

+ 4 - 2
src/main/java/com/qmth/eds/service/impl/TeachcloudCommonServiceImpl.java

@@ -80,8 +80,10 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
 
         LoginResult loginResult = new LoginResult(sysUser, sessionId, token, roleNames, appSource);
-        BasicSchool basicSchool = commonCacheService.schoolCache(sysUser.getSchoolId());
-        loginResult.setSchoolInfo(Objects.nonNull(basicSchool) ? loginResult.new SchoolNativeBean(basicSchool) : null);
+        if(sysUser.getSchoolId() != null) {
+            BasicSchool basicSchool = commonCacheService.schoolCache(sysUser.getSchoolId());
+            loginResult.setSchoolInfo(Objects.nonNull(basicSchool) ? loginResult.new SchoolNativeBean(basicSchool) : null);
+        }
         loginResult.setTime(System.currentTimeMillis());
         String mobileNumber = sysUser.getMobileNumber();
         int pwdCount = sysUser.getPwdCount();

+ 5 - 5
src/main/resources/application-dev.properties

@@ -10,7 +10,7 @@ spring.application.name=eds
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=eds-v1.0.1
+db.name=a
 db.username=root
 db.password=root
 #redis\u6570\u636E\u6E90\u914D\u7F6E
@@ -116,9 +116,9 @@ whu.config.appSecret=MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAojkSbVqi/6v
 whu.config.tokenUrl=http://120.76.177.81/zfdsb/oauth2/accessToken
 whu.config.kwUrl=http://120.76.177.81/zfdsb/api/kw/ksmd
 
-cloud.marking.config.accessKey=a063f96182164154bf7428b3cb0fadf2
-cloud.marking.config.accessSecret=M6SCQbJELhbtshzG6Kyz8jvh
-cloud.marking.config.rootUrl=http://www.markingcloud.com
-cloud.marking.config.examUrl=/api/exam/query
+cloud.marking.config.accessKey=d81badf113d1450c9f554809e1282ae1
+cloud.marking.config.accessSecret=dmILQXiRESNasxUylMNGl05R0JsaVb9t
+cloud.marking.config.rootUrl=http://192.168.10.225:8080
+cloud.marking.config.examUrl=/api/exams
 cloud.marking.config.studentCountUrl=/api/exam/student/count
 cloud.marking.config.studentScoreUrl=/api/exam/student/score

+ 2 - 2
src/main/resources/application-release.properties

@@ -121,7 +121,7 @@ whu.config.kwUrl=http://120.76.177.81/zfdsb/api/kw/ksmd
 
 cloud.marking.config.accessKey=a063f96182164154bf7428b3cb0fadf2
 cloud.marking.config.accessSecret=M6SCQbJELhbtshzG6Kyz8jvh
-cloud.marking.config.rootUrl=http://www.markingcloud.com/
-cloud.marking.config.examUrl=/api/exam/query
+cloud.marking.config.rootUrl=http://www.markingcloud.com
+cloud.marking.config.examUrl=/api/exams
 cloud.marking.config.studentCountUrl=/api/exam/student/count
 cloud.marking.config.studentScoreUrl=/api/exam/student/score

+ 2 - 2
src/main/resources/application-test.properties

@@ -132,7 +132,7 @@ whu.config.kwUrl=http://120.76.177.81/zfdsb/api/kw/ksmd
 
 cloud.marking.config.accessKey=a063f96182164154bf7428b3cb0fadf2
 cloud.marking.config.accessSecret=M6SCQbJELhbtshzG6Kyz8jvh
-cloud.marking.config.rootUrl=http://www.markingcloud.com/
-cloud.marking.config.examUrl=/api/exam/query
+cloud.marking.config.rootUrl=http://192.168.10.225:8080
+cloud.marking.config.examUrl=/api/exams
 cloud.marking.config.studentCountUrl=/api/exam/student/count
 cloud.marking.config.studentScoreUrl=/api/exam/student/score

+ 2 - 1
src/main/resources/db/eds-v1.0.1.sql

@@ -117,6 +117,7 @@ CREATE TABLE `basic_verify_code`  (
 DROP TABLE IF EXISTS `cloud_marking_exam`;
 CREATE TABLE `cloud_marking_exam`  (
   `id` bigint(20) NOT NULL,
+  `school_id` bigint(20) NULL DEFAULT NULL COMMENT '学校ID',
   `exam_id` int(5) NULL DEFAULT NULL COMMENT '云阅卷ID',
   `exam_name` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '云阅卷考试名称',
   `create_id` bigint(20) NULL DEFAULT NULL,
@@ -721,7 +722,7 @@ CREATE TABLE `sys_user`  (
 -- ----------------------------
 -- Records of sys_user
 -- ----------------------------
-INSERT INTO `sys_user` VALUES (1, 1, '18800000000', 'admin', NULL, 'MTIzNDU2', '18800000000', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, 1653272598854);
+INSERT INTO `sys_user` VALUES (1, NULL, '13207165630', '李翔', NULL, 'YXV0dW1uMTIz', '13207165630', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, 1653272598854);
 -- ----------------------------
 -- Table structure for sys_user_role
 -- ----------------------------

+ 4 - 0
src/main/resources/mapper/CloudMarkingExamMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.qmth.eds.mapper.CloudMarkingExamMapper">
+</mapper>

+ 1 - 0
src/main/resources/mapper/ExamDownloadRecordMapper.xml

@@ -23,6 +23,7 @@
                 JOIN
             exam_sync_total b ON a.sync_total_id = b.id
         <where>
+            and b.school_id = #{schoolId}
             <if test="operateDate != null and operateDate != ''">
                 and FROM_UNIXTIME(a.operate_time / 1000, '%Y-%m-%d') = #{operateDate}
             </if>

+ 2 - 2
src/main/resources/mapper/TBSyncTaskMapper.xml

@@ -29,8 +29,8 @@
             <if test="result != null">
                 and tbt.result = #{result}
             </if>
-            <if test="createId != null">
-                and tbt.create_id = #{createId}
+            <if test="userId != null">
+                and tbt.create_id = #{userId}
             </if>
         </where>
         order by tbt.create_time desc