mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-12 20:36:50 +08:00
成长路径考试同步
This commit is contained in:
@@ -9,6 +9,7 @@ import com.xboe.module.course.vo.StudyCourseVo;
|
|||||||
import com.xboe.module.course.vo.TeacherInfoVo;
|
import com.xboe.module.course.vo.TeacherInfoVo;
|
||||||
import com.xboe.module.course.vo.TeacherVo;
|
import com.xboe.module.course.vo.TeacherVo;
|
||||||
import com.xboe.module.dict.entity.DictDto;
|
import com.xboe.module.dict.entity.DictDto;
|
||||||
|
import com.xboe.module.exam.entity.AloneExam;
|
||||||
import com.xboe.module.exam.entity.ExamTest;
|
import com.xboe.module.exam.entity.ExamTest;
|
||||||
import com.xboe.school.study.entity.StudyCourse;
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import com.xboe.system.user.dao.UserDao;
|
import com.xboe.system.user.dao.UserDao;
|
||||||
@@ -66,6 +67,9 @@ public class ThirdApi {
|
|||||||
|
|
||||||
@Value("${manageApi.editExam}")
|
@Value("${manageApi.editExam}")
|
||||||
private String editExam;
|
private String editExam;
|
||||||
|
|
||||||
|
@Value("${manageApi.getExamSycn}")
|
||||||
|
private String getExamSync;
|
||||||
//获取例外人员的id
|
//获取例外人员的id
|
||||||
public List<String> getUserId(){
|
public List<String> getUserId(){
|
||||||
String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316
|
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());
|
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AloneExam> 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) {
|
public static void main(String[] args) {
|
||||||
String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893";
|
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().
|
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 {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<AloneExam> result;
|
||||||
|
private int status;
|
||||||
|
private Date timestamp;
|
||||||
|
|
||||||
|
public GetExamSyncResult success() {
|
||||||
|
if (this.status != 200) {
|
||||||
|
log.error("同步考试记录失败----{}", JSONUtil.toJsonPrettyStr(this));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -520,7 +520,7 @@ public class AloneExamApi extends ApiBaseController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/submit")
|
@PostMapping("/submit")
|
||||||
public JsonResponse<Map<String,Object>> saveAnswer(HttpServletRequest request,AloneExamAnswer answer,Integer scoreType) {
|
public JsonResponse<Map<String,Object>> saveAnswer(HttpServletRequest request,AloneExamAnswer answer,Integer scoreType) {
|
||||||
|
|
||||||
if(StringUtils.isBlank(answer.getAnswerJson())) {
|
if(StringUtils.isBlank(answer.getAnswerJson())) {
|
||||||
return badRequest("提交失败,无答卷内容");
|
return badRequest("提交失败,无答卷内容");
|
||||||
}
|
}
|
||||||
@@ -533,11 +533,16 @@ public class AloneExamApi extends ApiBaseController {
|
|||||||
if(answer.getScore()==null) {
|
if(answer.getScore()==null) {
|
||||||
return badRequest("考试分数错误");
|
return badRequest("考试分数错误");
|
||||||
}
|
}
|
||||||
|
String token = request.getHeader("Xboe-Access-Token");
|
||||||
|
if (StringUtils.isEmpty(token)) {
|
||||||
|
token = request.getHeader("token");
|
||||||
|
}
|
||||||
//前台注意计算总分,在后台这里就先不计算了
|
//前台注意计算总分,在后台这里就先不计算了
|
||||||
try {
|
try {
|
||||||
Map<String,Object> map=new HashMap<String,Object>();
|
Map<String,Object> map=new HashMap<String,Object>();
|
||||||
CurrentUser cuser = getCurrent();
|
CurrentUser cuser = getCurrent();
|
||||||
answer.setAid(cuser.getAccountId());
|
answer.setAid(cuser.getAccountId());
|
||||||
|
answer.setAid(cuser.getAccountId());
|
||||||
answer.setName(cuser.getName());
|
answer.setName(cuser.getName());
|
||||||
if(StringUtils.isBlank(answer.getId())) {
|
if(StringUtils.isBlank(answer.getId())) {
|
||||||
if(answer.getTotalScore()==null || answer.getTotalScore()==0) {
|
if(answer.getTotalScore()==null || answer.getTotalScore()==0) {
|
||||||
@@ -552,7 +557,7 @@ public class AloneExamApi extends ApiBaseController {
|
|||||||
//Float realScore=this.calculateScore(answer);
|
//Float realScore=this.calculateScore(answer);
|
||||||
//转化成百分数
|
//转化成百分数
|
||||||
//answer.setScore(this.calculateScore(detail));
|
//answer.setScore(this.calculateScore(detail));
|
||||||
service.submit(answer,scoreType);
|
service.submit(answer,scoreType,token);
|
||||||
return success(map);
|
return success(map);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("提交答卷错误", e);
|
log.error("提交答卷错误", e);
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public interface IAloneExamService {
|
|||||||
* 提交考试
|
* 提交考试
|
||||||
* @param aea
|
* @param aea
|
||||||
*/
|
*/
|
||||||
void submit(AloneExamAnswer aea,Integer scoreType);
|
void submit(AloneExamAnswer aea,Integer scoreType,String token);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新答案
|
* 更新答案
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import java.util.Map;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import com.xboe.api.ThirdApi;
|
||||||
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -37,7 +39,9 @@ public class AloneExamServiceImpl implements IAloneExamService{
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
AloneExamDao aeDao;
|
AloneExamDao aeDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ThirdApi thirdApi;
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void save(AloneExamAnswer aea){
|
public void save(AloneExamAnswer aea){
|
||||||
@@ -54,7 +58,8 @@ public class AloneExamServiceImpl implements IAloneExamService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void submit(AloneExamAnswer aea,Integer scoreType){
|
public void submit(AloneExamAnswer aea,Integer scoreType,String token){
|
||||||
|
|
||||||
//dao.update(aea);
|
//dao.update(aea);
|
||||||
aea.setStatus(AloneExamAnswer.STATUS_FINISH);
|
aea.setStatus(AloneExamAnswer.STATUS_FINISH);
|
||||||
LocalDateTime now=LocalDateTime.now();
|
LocalDateTime now=LocalDateTime.now();
|
||||||
@@ -74,8 +79,8 @@ public class AloneExamServiceImpl implements IAloneExamService{
|
|||||||
UpdateBuilder.create("score", aea.getScore())
|
UpdateBuilder.create("score", aea.getScore())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//更新状态,状态是未完成的,这里会有问题
|
//更新状态,状态是未完成的,这里会有问题
|
||||||
if(scoreType!=null && scoreType==2) {
|
if(scoreType!=null && scoreType==2) {
|
||||||
//最后一次的分数为准
|
//最后一次的分数为准
|
||||||
@@ -101,6 +106,8 @@ public class AloneExamServiceImpl implements IAloneExamService{
|
|||||||
// //这种情况汶是不存在的
|
// //这种情况汶是不存在的
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
thirdApi.getExamList(aea.getAid() ,aea.getTestId(), token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ infrasApi.dict=${boe.domain}/infrasApi/dict/list
|
|||||||
#获取非报名课id
|
#获取非报名课id
|
||||||
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
|
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
|
||||||
manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam
|
manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam
|
||||||
|
manageApi.getExamSycn=${boe.domain}/manageApi/stu/grow/getExamSync
|
||||||
#获取离职教师id
|
#获取离职教师id
|
||||||
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
|
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
|
||||||
coursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus
|
coursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus
|
||||||
Reference in New Issue
Block a user