diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index b9b6155e..28fb33de 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -9,6 +9,7 @@ import com.xboe.module.course.vo.StudyCourseVo; import com.xboe.module.course.vo.TeacherInfoVo; import com.xboe.module.course.vo.TeacherVo; import com.xboe.module.dict.entity.DictDto; +import com.xboe.module.exam.entity.AloneExam; import com.xboe.module.exam.entity.ExamTest; import com.xboe.school.study.entity.StudyCourse; import com.xboe.system.user.dao.UserDao; @@ -66,6 +67,9 @@ public class ThirdApi { @Value("${manageApi.editExam}") private String editExam; + + @Value("${manageApi.getExamSycn}") + private String getExamSync; //获取例外人员的id public List getUserId(){ String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316 @@ -218,6 +222,17 @@ public class ThirdApi { Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success()); } + public List getExamList(String aid, String testId, String token) { + AloneExam aloneExam = new AloneExam(); + aloneExam.setAid(aid); + aloneExam.setTestId(testId); +// String resp = Optional.ofNullable( +// ).orElseThrow(() -> new RuntimeException("token校验失败")); + String token1 = HttpRequest.post(getExamSync).body(JSONUtil.toJsonStr(aloneExam)).header("token", token).execute() + .body(); + GetExamSyncResult getExamSyncResult = JSONUtil.toBean(token1, GetExamSyncResult.class); + return getExamSyncResult.getResult(); + } public static void main(String[] args) { String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893"; String resp = Optional.ofNullable(HttpRequest.post("https://u-pre.boe.com/statApi/xboe/m/stat/userdynamic/list").body(JSONUtil.toJsonStr(UserdynamicParam.builder(). @@ -234,5 +249,4 @@ public class ThirdApi { } - } diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/GetExamSyncResult.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/GetExamSyncResult.java new file mode 100644 index 00000000..1b5b7222 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/GetExamSyncResult.java @@ -0,0 +1,30 @@ +package com.xboe.api.vo; + +import cn.hutool.json.JSONUtil; +import com.xboe.module.course.vo.TeacherVo; +import com.xboe.module.exam.dto.ExamTestDto; +import com.xboe.module.exam.entity.AloneExam; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; +import java.util.List; + +@Data +@Slf4j +public class GetExamSyncResult { + private String error; + private String message; + private String permissions; + private List result; + private int status; + private Date timestamp; + + public GetExamSyncResult success() { + if (this.status != 200) { + log.error("同步考试记录失败----{}", JSONUtil.toJsonPrettyStr(this)); + return null; + } + return this; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamApi.java index 5f81455e..2c8dbe9a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamApi.java @@ -520,7 +520,7 @@ public class AloneExamApi extends ApiBaseController { */ @PostMapping("/submit") public JsonResponse> saveAnswer(HttpServletRequest request,AloneExamAnswer answer,Integer scoreType) { - + if(StringUtils.isBlank(answer.getAnswerJson())) { return badRequest("提交失败,无答卷内容"); } @@ -533,11 +533,16 @@ public class AloneExamApi extends ApiBaseController { if(answer.getScore()==null) { return badRequest("考试分数错误"); } + String token = request.getHeader("Xboe-Access-Token"); + if (StringUtils.isEmpty(token)) { + token = request.getHeader("token"); + } //前台注意计算总分,在后台这里就先不计算了 try { Map map=new HashMap(); CurrentUser cuser = getCurrent(); answer.setAid(cuser.getAccountId()); + answer.setAid(cuser.getAccountId()); answer.setName(cuser.getName()); if(StringUtils.isBlank(answer.getId())) { if(answer.getTotalScore()==null || answer.getTotalScore()==0) { @@ -552,7 +557,7 @@ public class AloneExamApi extends ApiBaseController { //Float realScore=this.calculateScore(answer); //转化成百分数 //answer.setScore(this.calculateScore(detail)); - service.submit(answer,scoreType); + service.submit(answer,scoreType,token); return success(map); } catch (Exception e) { log.error("提交答卷错误", e); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IAloneExamService.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IAloneExamService.java index 0d37f7d5..de945ea9 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IAloneExamService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/IAloneExamService.java @@ -94,7 +94,7 @@ public interface IAloneExamService { * 提交考试 * @param aea */ - void submit(AloneExamAnswer aea,Integer scoreType); + void submit(AloneExamAnswer aea,Integer scoreType,String token); /** * 更新答案 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java index 263f836f..2bc94537 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java @@ -8,6 +8,8 @@ import java.util.Map; import javax.annotation.Resource; +import com.xboe.api.ThirdApi; +import com.xboe.school.study.entity.StudyCourse; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,7 +39,9 @@ public class AloneExamServiceImpl implements IAloneExamService{ @Resource AloneExamDao aeDao; - + + @Resource + ThirdApi thirdApi; @Override @Transactional public void save(AloneExamAnswer aea){ @@ -54,7 +58,8 @@ public class AloneExamServiceImpl implements IAloneExamService{ @Override @Transactional - public void submit(AloneExamAnswer aea,Integer scoreType){ + public void submit(AloneExamAnswer aea,Integer scoreType,String token){ + //dao.update(aea); aea.setStatus(AloneExamAnswer.STATUS_FINISH); LocalDateTime now=LocalDateTime.now(); @@ -74,8 +79,8 @@ public class AloneExamServiceImpl implements IAloneExamService{ UpdateBuilder.create("score", aea.getScore()) ); } - - + + //更新状态,状态是未完成的,这里会有问题 if(scoreType!=null && scoreType==2) { //最后一次的分数为准 @@ -101,6 +106,8 @@ public class AloneExamServiceImpl implements IAloneExamService{ // //这种情况汶是不存在的 // } } + + thirdApi.getExamList(aea.getAid() ,aea.getTestId(), token); } @Override diff --git a/servers/boe-server-all/src/main/resources/application.properties b/servers/boe-server-all/src/main/resources/application.properties index 01a9218f..b4b229d8 100644 --- a/servers/boe-server-all/src/main/resources/application.properties +++ b/servers/boe-server-all/src/main/resources/application.properties @@ -72,6 +72,7 @@ infrasApi.dict=${boe.domain}/infrasApi/dict/list #获取非报名课id manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam +manageApi.getExamSycn=${boe.domain}/manageApi/stu/grow/getExamSync #获取离职教师id userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo coursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus \ No newline at end of file