| | |
| | | import com.qxueyou.scc.exercise.service.IExerciseExtendService; |
| | | |
| | | /** |
| | | * 练习扩展控制 |
| | | * 如收藏 错题 笔记 |
| | | * 练习扩展控制 |
| | | * 如收藏 错题 笔记 |
| | | * @author zhiyong |
| | | * |
| | | */ |
| | | @Controller |
| | | @RequestMapping(value = "/exercise/Extend") |
| | | public class ExerciseExtendController { |
| | | /** 日志 */ |
| | | /** 日志 */ |
| | | private static final Logger log = LogManager.getLogger("ExerciseExtendController"); |
| | | |
| | | /** commonDAO */ |
| | | @Autowired |
| | | private CommonDAO commonDAO; |
| | | |
| | | /** 练习扩展service */ |
| | | /** 练习扩展service */ |
| | | @Autowired |
| | | private IExerciseExtendService exerciseExtendService; |
| | | |
| | | /**-----------------------------------------APP V2.0 接口 start----------------------------------------------------------- */ |
| | | /**-----------------------------------------APP V2.0 接口 start----------------------------------------------------------- */ |
| | | |
| | | /** |
| | | * APP2.0: 查询错题本ListItem |
| | | * APP2.0: 查询错题本ListItem |
| | | * URL: /exercise/Extend/faultList |
| | | * |
| | | * 请求参数={ |
| | | subjectId:课程id,//可选,用于高校版 |
| | | exerType:练习类型,//必传 |
| | | page:当前页,//必传,大于0 |
| | | limit:每页限制条数,//必传,大于0 |
| | | * 请求参数={ |
| | | subjectId:课程id,//可选,用于高校版 |
| | | exerType:练习类型,//必传 |
| | | page:当前页,//必传,大于0 |
| | | limit:每页限制条数,//必传,大于0 |
| | | } |
| | | 返回参数=[ |
| | | 返回参数=[ |
| | | { |
| | | "groupId":"组id", |
| | | "classId":班级id, |
| | | "courseId":科目id, |
| | | "orgId":机构id, |
| | | "subjectId":课程id, |
| | | "name":"组名", |
| | | "type":组类型 , |
| | | "updateTime":更新时间, |
| | | "answerUpdateTime":本套题答题更新时间, |
| | | "allCount":题目总数, |
| | | "exerciseTime":"考试时间", |
| | | "exerciseRecordId":"记录id", |
| | | "doCount": 做题个数, |
| | | "correctCount": 正确个数, |
| | | "submitNumber":已提交人数(家庭作业), |
| | | "currTitleNumber":当前做题序号, |
| | | "status":做题状态(0:未提交 1:已提交), |
| | | "completionRate": 完成率, |
| | | "accuracy": 正确率, |
| | | "score": 分数, |
| | | "extendAllCount":错题本、收藏本总数 |
| | | "groupId":"组id", |
| | | "classId":班级id, |
| | | "courseId":科目id, |
| | | "orgId":机构id, |
| | | "subjectId":课程id, |
| | | "name":"组名", |
| | | "type":组类型 , |
| | | "updateTime":更新时间, |
| | | "answerUpdateTime":本套题答题更新时间, |
| | | "allCount":题目总数, |
| | | "exerciseTime":"考试时间", |
| | | "exerciseRecordId":"记录id", |
| | | "doCount": 做题个数, |
| | | "correctCount": 正确个数, |
| | | "submitNumber":已提交人数(家庭作业), |
| | | "currTitleNumber":当前做题序号, |
| | | "status":做题状态(0:未提交 1:已提交), |
| | | "completionRate": 完成率, |
| | | "accuracy": 正确率, |
| | | "score": 分数, |
| | | "extendAllCount":错题本、收藏本总数 |
| | | }, |
| | | ...循环多个 |
| | | ...循环多个 |
| | | ] |
| | | * |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "faultList", method = RequestMethod.GET) |
| | | public @ResponseBody List<ExerGroupResponseData> queryFaultList( |
| | | @RequestParam(value="exerType") int exerType,// 0 表示全部错题 |
| | | @RequestParam(value="exerType") int exerType,// 0 表示全部错题 |
| | | @RequestParam(value="subjectId", required = false) String subjectId, |
| | | @RequestParam(value="page", required = false) Integer page, |
| | | @RequestParam(value="limit", required = false) Integer limit) { |
| | | |
| | | // 得到分页数据 |
| | | // 得到分页数据 |
| | | Pager pager = getPager(page, limit); |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | List<ExerGroupResponseData> lstResult = exerciseExtendService. |
| | | queryExerciseFaultListData(exerType, null, pager); |
| | | |
| | | if(null == lstResult){// 结果转换成 [] |
| | | if(null == lstResult){// 结果转换成 [] |
| | | lstResult = new ArrayList<ExerGroupResponseData>(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 查询收藏本ListItem |
| | | * APP2.0: 查询收藏本ListItem |
| | | * URL: /exercise/Extend/favorList |
| | | * |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "favorList", method = RequestMethod.GET) |
| | | public @ResponseBody List<ExerGroupResponseData> queryFavorList( |
| | | @RequestParam(value="exerType") int exerType,// 0全部收藏 |
| | | @RequestParam(value="exerType") int exerType,// 0全部收藏 |
| | | @RequestParam(value="subjectId", required = false) String subjectId, |
| | | @RequestParam(value="page", required = false) Integer page, |
| | | @RequestParam(value="limit", required = false) Integer limit) { |
| | | |
| | | // 得到分页数据 |
| | | // 得到分页数据 |
| | | Pager pager = getPager(page, limit); |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | List<ExerGroupResponseData> lstResult = exerciseExtendService. |
| | | queryExerciseFavorListData(exerType, null, pager); |
| | | |
| | | if(null == lstResult){// 结果转换成 [] |
| | | if(null == lstResult){// 结果转换成 [] |
| | | lstResult = new ArrayList<ExerGroupResponseData>(); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 获取错题练习题目数据 |
| | | * APP2.0: 获取错题练习题目数据 |
| | | * URL: /exercise/Exercise/faultExercise |
| | | * @param groupId 组id |
| | | * @param exerciseRecordId 练习记录id |
| | | * @param groupId 组id |
| | | * @param exerciseRecordId 练习记录id |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "faultExercise", method = RequestMethod.GET) |
| | | public @ResponseBody ExerItemResponseData getFaultExerciseData( |
| | | @RequestParam(value = "groupId") String groupId) { |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | ExerItemResponseData resultData = exerciseExtendService.queryExerciseFaultData(groupId); |
| | | |
| | | return resultData; |
| | | } |
| | | |
| | | /** |
| | | * 查询多套题收藏题目 |
| | | * @param groupId 格式"111,222,333...." |
| | | * 查询多套题收藏题目 |
| | | * @param groupId 格式"111,222,333...." |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "faultMutiExercise", method = RequestMethod.GET) |
| | |
| | | |
| | | for(String exerGroupId:groupIds){ |
| | | try{ |
| | | // 查询结果 |
| | | // 查询结果 |
| | | resultDataLst.add(exerciseExtendService.queryExerciseMutiFaultData(exerGroupId)); |
| | | |
| | | }catch(Exception e){ |
| | | |
| | | log.error("查询多套题faultMutiExercise结果失败,groupId="+exerGroupId,e); |
| | | log.error("查询多套题faultMutiExercise结果失败,groupId="+exerGroupId,e); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 获取全部错题练习题目数据 |
| | | * APP2.0: 获取全部错题练习题目数据 |
| | | * URL: /exercise/Extend/allFaultExercise |
| | | * @return |
| | | */ |
| | |
| | | @RequestParam(value="limit", required = false) Integer limit, |
| | | @RequestParam(value="page", required = false) Integer page) { |
| | | |
| | | // 得到分页数据 |
| | | // 得到分页数据 |
| | | Pager pager = getPager(page, limit); |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | ExerItemResponseData resultData = exerciseExtendService.queryAllExerciseFaultData(pager); |
| | | |
| | | return resultData; |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 获取收藏练习题目数据 |
| | | * APP2.0: 获取收藏练习题目数据 |
| | | * URL: /exercise/Exercise/favorExercise |
| | | * |
| | | 返回数据={ |
| | | "items":[// 题目集合 |
| | | 返回数据={ |
| | | "items":[// 题目集合 |
| | | { |
| | | "exerciseId":练习id, |
| | | "exerciseId":练习id, |
| | | "chapterId":null, |
| | | "lessonId":null, |
| | | "title":标题, |
| | | "type":题目类型, |
| | | "answer":正确答案, |
| | | "title":标题, |
| | | "type":题目类型, |
| | | "answer":正确答案, |
| | | "options":[ |
| | | { |
| | | "optionId":选项id, |
| | | "optionId":选项id, |
| | | "checked":true, |
| | | "content":内容, |
| | | "optionOrder":题目序号, |
| | | "exerciseItemId":"练习id", |
| | | "content":内容, |
| | | "optionOrder":题目序号, |
| | | "exerciseItemId":"练习id", |
| | | "imgs":[ |
| | | { |
| | | "imgId":"ͼƬid", |
| | | "imgId":"图片id", |
| | | "exerciseObjectId":null, |
| | | "imgPath":图片路径, |
| | | "imgOrder":排序, |
| | | "objectType":图片类型 1:题目 2:选项 |
| | | "imgPath":图片路径, |
| | | "imgOrder":排序, |
| | | "objectType":图片类型 1:题目 2:选项 |
| | | }, |
| | | ... 循环多个 |
| | | ... 循环多个 |
| | | ] |
| | | }, |
| | | ... 循环多个 |
| | | ... 循环多个 |
| | | ], |
| | | "scores":null, |
| | | "itemNo":null, |
| | | "analisisResult":{ |
| | | "allAccuracy":全站统计 正确率, |
| | | "analysis":"解析", |
| | | "submitAllNumber":全站 提交总数, |
| | | "usualFaultAnswers":易错题, |
| | | "allAccuracy":全站统计 正确率, |
| | | "analysis":"解析", |
| | | "submitAllNumber":全站 提交总数, |
| | | "usualFaultAnswers":易错题, |
| | | "exerciseAnalisisUId":null, |
| | | "accuracy":个人统计 正确率, |
| | | "submitNumber":个人统计 提交总数, |
| | | "submitErrorNumber":个人统计 提交错误总数, |
| | | "accuracy":个人统计 正确率, |
| | | "submitNumber":个人统计 提交总数, |
| | | "submitErrorNumber":个人统计 提交错误总数, |
| | | }, |
| | | "imgs":[ |
| | | { |
| | | "imgId":"ͼƬid", |
| | | "imgId":"图片id", |
| | | "exerciseObjectId":null, |
| | | "imgPath":图片路径, |
| | | "imgOrder":排序, |
| | | "objectType":图片类型 1:题目 2:选项 |
| | | "imgPath":图片路径, |
| | | "imgOrder":排序, |
| | | "objectType":图片类型 1:题目 2:选项 |
| | | }, |
| | | ... 循环多个 |
| | | ... 循环多个 |
| | | ], |
| | | "commentFlag": null, |
| | | } |
| | | ], |
| | | "answers":[// 个人答案集合 |
| | | "answers":[// 个人答案集合 |
| | | { |
| | | "answerUId":"主键id", |
| | | "answer":选择答案 如:多选为(A,B,C), |
| | | "answerUId":"主键id", |
| | | "answer":选择答案 如:多选为(A,B,C), |
| | | "correct":0, |
| | | "exerciseItemId":练习id, |
| | | "exerciseRecordId":记录id, |
| | | "userId":用户id |
| | | "exerciseItemId":练习id, |
| | | "exerciseRecordId":记录id, |
| | | "userId":用户id |
| | | }, |
| | | ... 循环多个 |
| | | ... 循环多个 |
| | | ] |
| | | } |
| | | * |
| | | * @param groupId 组id |
| | | * @param exerciseRecordId 练习记录id |
| | | * @param groupId 组id |
| | | * @param exerciseRecordId 练习记录id |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "favorExercise", method = RequestMethod.GET) |
| | | public @ResponseBody ExerItemResponseData getFavorExerciseData( |
| | | @RequestParam(value = "groupId") String groupId) { |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | ExerItemResponseData resultData = exerciseExtendService.queryExerciseFavorData(groupId); |
| | | |
| | | return resultData; |
| | | } |
| | | |
| | | /** |
| | | * 查询多套题收藏题目 |
| | | * @param groupId 格式"111,222,333...." |
| | | * 查询多套题收藏题目 |
| | | * @param groupId 格式"111,222,333...." |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "favorMutiExercise", method = RequestMethod.GET) |
| | |
| | | |
| | | for(String exerGroupId:groupIds){ |
| | | try{ |
| | | // 查询结果 |
| | | // 查询结果 |
| | | resultDataLst.add(exerciseExtendService.queryExerciseMutiFavorData(exerGroupId)); |
| | | |
| | | }catch(Exception e){ |
| | | |
| | | log.error("查询多套题favorMutiExercise结果失败,groupId="+exerGroupId,e); |
| | | log.error("查询多套题favorMutiExercise结果失败,groupId="+exerGroupId,e); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 获取全部收藏练习题目数据 |
| | | * APP2.0: 获取全部收藏练习题目数据 |
| | | * URL: /exercise/Exercise/allFavorExercise |
| | | * @return |
| | | */ |
| | |
| | | @RequestParam(value="limit", required = false) Integer limit, |
| | | @RequestParam(value="page", required = false) Integer page) { |
| | | |
| | | // 得到分页数据 |
| | | // 得到分页数据 |
| | | Pager pager = getPager(page, limit); |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | ExerItemResponseData resultData = exerciseExtendService.queryAllExerciseFavorData(pager); |
| | | |
| | | return resultData; |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 提交错题本的记录到DB |
| | | * APP2.0: 提交错题本的记录到DB |
| | | * URL: /exercise/Extend/submitFaultData |
| | | * |
| | | * 返回数据={ |
| | | "exerciseGroupType": 练习类型, |
| | | "exerciseGroupId": 练习组id, |
| | | * 返回数据={ |
| | | "exerciseGroupType": 练习类型, |
| | | "exerciseGroupId": 练习组id, |
| | | "items":[ |
| | | { |
| | | "exerciseId": 练习id, |
| | | "flag": 状态, // (true:添加 false:移除) |
| | | "exerciseId": 练习id, |
| | | "flag": 状态, // (true:添加 false:移除) |
| | | |
| | | }, |
| | | ..... |
| | |
| | | |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExciseExtendReqData recordResult = mapper.readValue(records, ExciseExtendReqData.class); |
| | | List<ExerciseExtendRecordData> lstRecords = recordResult.getItems(); |
| | | |
| | |
| | | return result; |
| | | } |
| | | |
| | | // 提交结果 |
| | | // 提交结果 |
| | | Map<String,Object> resultMap = exerciseExtendService.doOperExerciseFaultRecordData(null, recordResult); |
| | | result.setResult(true); |
| | | result.setData(resultMap); |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 提交错题本的记录到DB |
| | | * APP2.0: 提交错题本的记录到DB |
| | | * URL: /exercise/Extend/submitFaultData |
| | | * |
| | | * 返回数据={ |
| | | "exerciseGroupType": 练习类型, |
| | | "exerciseGroupId": 练习组id, |
| | | * 返回数据={ |
| | | "exerciseGroupType": 练习类型, |
| | | "exerciseGroupId": 练习组id, |
| | | "items":[ |
| | | { |
| | | "exerciseId": 练习id, |
| | | "flag": 状态, // (true:添加 false:移除) |
| | | "exerciseId": 练习id, |
| | | "flag": 状态, // (true:添加 false:移除) |
| | | |
| | | }, |
| | | ..... |
| | |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExciseExtendReqListData recordData = mapper.readValue(records, ExciseExtendReqListData.class); |
| | | |
| | | //String subjectId = recordData.getSubjectId(); |
| | | List<ExciseExtendReqData> recordResults = recordData.getDatas(); |
| | | |
| | | resultList = new ArrayList<Map<String,Object>>(recordResults.size()); |
| | | // 循环记录 |
| | | // 循环记录 |
| | | List<ExerciseExtendRecordData> lstRecords = null; |
| | | for(ExciseExtendReqData recordResult:recordResults){ |
| | | |
| | |
| | | continue; |
| | | } |
| | | |
| | | // 提交结果 |
| | | // 提交结果 |
| | | returnMap = exerciseExtendService.doOperExerciseFaultRecordData(null, recordResult); |
| | | |
| | | resultList.add(returnMap); |
| | |
| | | |
| | | resultMap.put("success", true); |
| | | resultMap.put("attrs", resultList); |
| | | resultMap.put("msg", "提交成功"); |
| | | resultMap.put("msg", "提交成功"); |
| | | } catch (Exception e) { |
| | | resultMap.put("msg", "提交失败"); |
| | | resultMap.put("msg", "提交失败"); |
| | | log.error(e); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 提交收藏本的记录到DB |
| | | * APP2.0: 提交收藏本的记录到DB |
| | | * URL: /exercise/Extend/submitFavorData |
| | | * |
| | | * @param records json字符串 |
| | | * @param records json字符串 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "submitFavorData", method = RequestMethod.POST) |
| | |
| | | Result result = new Result(false); |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExciseExtendReqData recordResult = mapper.readValue(records, ExciseExtendReqData.class); |
| | | List<ExerciseExtendRecordData> lstRecords = recordResult.getItems(); |
| | | |
| | |
| | | return result; |
| | | } |
| | | |
| | | // 提交结果 |
| | | // 提交结果 |
| | | Map<String,Object> resultMap = exerciseExtendService.doOperExerciseFavorRecordData(null, recordResult); |
| | | result.setResult(true); |
| | | result.setData(resultMap); |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 提交收藏本的记录到DB |
| | | * APP2.0: 提交收藏本的记录到DB |
| | | * URL: /exercise/Extend/submitFavorData |
| | | * |
| | | * @param records json字符串 |
| | | * @param records json字符串 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "submitFavorMutiData", method = RequestMethod.POST) |
| | |
| | | |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExciseExtendReqListData recordData = mapper.readValue(records, ExciseExtendReqListData.class); |
| | | |
| | | //String subjectId = recordData.getSubjectId(); |
| | | List<ExciseExtendReqData> recordResults = recordData.getDatas(); |
| | | resultList = new ArrayList<Map<String,Object>>(recordResults.size()); |
| | | |
| | | // 循环记录 |
| | | // 循环记录 |
| | | List<ExerciseExtendRecordData> lstRecords = null; |
| | | for(ExciseExtendReqData recordResult:recordResults){ |
| | | |
| | |
| | | continue; |
| | | } |
| | | |
| | | // 提交结果 |
| | | // 提交结果 |
| | | returnMap = exerciseExtendService.doOperExerciseFavorRecordData(null, recordResult); |
| | | |
| | | resultList.add(returnMap); |
| | | } |
| | | resultMap.put("success", true); |
| | | resultMap.put("attrs", resultList); |
| | | resultMap.put("msg", "提交成功"); |
| | | resultMap.put("msg", "提交成功"); |
| | | |
| | | } catch (Exception e) { |
| | | log.error(e); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获得多套题答案 |
| | | * @param groupId 格式"111,222,333...." |
| | | * 获得多套题答案 |
| | | * @param groupId 格式"111,222,333...." |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "getExtendAnswers", method = RequestMethod.GET) |
| | |
| | | for(String exerGroupId:groupIds){ |
| | | try{ |
| | | |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | resultDataLst.add(exerciseExtendService.queryExerciseFaultAnswerData(exerGroupId)); |
| | | |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | // 查询结果 |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | // 查询结果 |
| | | resultDataLst.add(exerciseExtendService.queryExerciseFavorAnswerData(exerGroupId)); |
| | | }else{ |
| | | return null; |
| | |
| | | |
| | | }catch(Exception e){ |
| | | |
| | | log.error("获得多套题答案getExtendAnswers结果失败,groupId="+exerGroupId,e); |
| | | log.error("获得多套题答案getExtendAnswers结果失败,groupId="+exerGroupId,e); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 提交练习答案 |
| | | * APP2.0: 提交练习答案 |
| | | * URL: /exercise/Extend/exerExtendAnswers |
| | | * |
| | | * 请求数据= answers={ |
| | | "exerciseGroupId": 组id, |
| | | "exerciseRecordId": 记录id, |
| | | * 请求数据= answers={ |
| | | "exerciseGroupId": 组id, |
| | | "exerciseRecordId": 记录id, |
| | | "exerciseExtendId": null, |
| | | "currTitleNum": "当前题号", |
| | | "status": ״̬, |
| | | "type": 练习类型,// 整型 |
| | | "doCount": 练习类型, |
| | | "correctCount": 正确个数, |
| | | "allCount":题目总数, |
| | | "currTitleNum": "当前题号", |
| | | "status": 状态, |
| | | "type": 练习类型,// 整型 |
| | | "doCount": 练习类型, |
| | | "correctCount": 正确个数, |
| | | "allCount":题目总数, |
| | | "items": [ |
| | | { |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型,// 整数型 |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型,// 整数型 |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | }, |
| | | { |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型, |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型, |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | } |
| | | ] |
| | | } |
| | | |
| | | 返回数据= {"success":true,//true:成功 false:失败 |
| | | "attrs":{"exerciseRecordId":练习记录id, |
| | | "updateTime":修改时间 |
| | | 返回数据= {"success":true,//true:成功 false:失败 |
| | | "attrs":{"exerciseRecordId":练习记录id, |
| | | "updateTime":修改时间 |
| | | }, |
| | | "msg":"提交成功",//结果信息 |
| | | "msg":"提交成功",//结果信息 |
| | | } |
| | | * |
| | | * @param answers |
| | |
| | | @RequestMapping(value = "exerExtendAnswers", method = RequestMethod.POST) |
| | | public @ResponseBody Result doSubmitExerExtendAnswer( |
| | | @RequestParam(value = "answers") String answers) { |
| | | // 用户本次做题提交的数据 |
| | | // 用户本次做题提交的数据 |
| | | Result result = new Result(false); |
| | | String initExerciseRecordId = ""; |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExerciseSubmitAnswerData answerResult = mapper.readValue(answers, ExerciseSubmitAnswerData.class); |
| | | |
| | | // 1.---------记录提交的数据日志 |
| | | // 记录id |
| | | // 1.---------记录提交的数据日志 |
| | | // 记录id |
| | | initExerciseRecordId = answerResult.getExerciseRecordId(); |
| | | |
| | | if(answerResult.getItems().isEmpty() |
| | | && !ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus()) |
| | | && answerResult.getSubmitType() != 1){// 提交状态 |
| | | && answerResult.getSubmitType() != 1){// 提交状态 |
| | | |
| | | exerciseExtendService.doSaveExerciseDataSubmitLog(answers, |
| | | initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER, |
| | |
| | | return result; |
| | | } |
| | | |
| | | // 2.提交答案 |
| | | // 2.提交答案 |
| | | result = exerciseExtendService.doSubmitExerciseAnswerData(answerResult); |
| | | |
| | | int status = 0; |
| | |
| | | status = ExerciseDataSubmitLog.STATUS_FAILED; |
| | | } |
| | | |
| | | // 记录提交的数据日志 |
| | | // 记录提交的数据日志 |
| | | String exerciseDataLogId = exerciseExtendService.doSaveExerciseDataSubmitLog(answers, |
| | | initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER, |
| | | status,"/exercise/Extend/exerExtendAnswers"); |
| | | |
| | | if(StringUtils.isBlank(initExerciseRecordId) |
| | | && result.getData("exerciseRecordId") != null){// 为空 说明第一次提交 更新日志记录id |
| | | && result.getData("exerciseRecordId") != null){// 为空 说明第一次提交 更新日志记录id |
| | | exerciseExtendService.doUpdateExerciseDataSubmitLog(exerciseDataLogId, |
| | | String.valueOf(result.getData("exerciseRecordId"))); |
| | | |
| | |
| | | result = new Result(false); |
| | | log.error(e); |
| | | |
| | | // 记录提交的数据日志 |
| | | // 记录提交的数据日志 |
| | | exerciseExtendService.doSaveExerciseDataSubmitLog(answers, |
| | | initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER, |
| | | ExerciseDataSubmitLog.STATUS_FAILED,"/exercise/Extend/exerExtendAnswers"); |
| | |
| | | |
| | | |
| | | /** |
| | | * APP2.0: 提交练习答案 |
| | | * APP2.0: 提交练习答案 |
| | | * URL: /exercise/Extend/exerExtendMutiAnswers |
| | | * |
| | | * 请求数据= answers=[{ |
| | | "exerciseGroupId": 组id, |
| | | "exerciseRecordId": 记录id, |
| | | * 请求数据= answers=[{ |
| | | "exerciseGroupId": 组id, |
| | | "exerciseRecordId": 记录id, |
| | | "exerciseExtendId": null, |
| | | "currTitleNum": "当前题号", |
| | | "status": ״̬, |
| | | "type": 练习类型,// 整型 |
| | | "doCount": 练习类型, |
| | | "correctCount": 正确个数, |
| | | "allCount":题目总数, |
| | | "currTitleNum": "当前题号", |
| | | "status": 状态, |
| | | "type": 练习类型,// 整型 |
| | | "doCount": 练习类型, |
| | | "correctCount": 正确个数, |
| | | "allCount":题目总数, |
| | | "items": [ |
| | | { |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型,// 整数型 |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型,// 整数型 |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | }, |
| | | { |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型, |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | "exerciseId": "练习id", |
| | | "type": 练习类型, |
| | | "answer": "选择答案", |
| | | "correct": 是否正确(0:错误 1:正确 2:未知) |
| | | } |
| | | ] |
| | | }] |
| | | |
| | | 返回数据= {"success":true,//true:成功 false:失败 |
| | | "attrs":{"exerciseRecordId":练习记录id, |
| | | "updateTime":修改时间 |
| | | 返回数据= {"success":true,//true:成功 false:失败 |
| | | "attrs":{"exerciseRecordId":练习记录id, |
| | | "updateTime":修改时间 |
| | | }, |
| | | "msg":"提交成功",//结果信息 |
| | | "msg":"提交成功",//结果信息 |
| | | } |
| | | * |
| | | * @param answers |
| | |
| | | @RequestMapping(value = "exerExtendMutiAnswers", method = RequestMethod.POST) |
| | | public @ResponseBody Object doSubmitExerExtendMutiAnswer( |
| | | @RequestParam(value = "answers") String answers) { |
| | | // 用户本次做题提交的数据 |
| | | // 用户本次做题提交的数据 |
| | | Map<String,Object> resultMap = new HashMap<String,Object>(2); |
| | | resultMap.put("success", false); |
| | | resultMap.put("attrs", null); |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | // 装换json到对象 |
| | | // 装换json到对象 |
| | | ExerciseSubmitAnswerDataList answerDataList = mapper.readValue(answers, ExerciseSubmitAnswerDataList.class); |
| | | |
| | | // 提交答案 |
| | | // 提交答案 |
| | | resultMap = exerciseExtendService.doSubmitMutiExerciseAnswerData(answerDataList); |
| | | |
| | | } catch (Exception e) { |
| | | log.error(e); |
| | | resultMap.put("msg", "提交练习答案请求异常"); |
| | | resultMap.put("msg", "提交练习答案请求异常"); |
| | | |
| | | exerciseExtendService.doSaveExerciseDataSubmitLog(answers, |
| | | "exerExtendMutiAnswers", ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER, |
| | |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: app端重新开始做题 更新状态 |
| | | * APP2.0: app端重新开始做题 更新状态 |
| | | * URL: /exercise/Extend/updateNewExerRecordNew |
| | | * |
| | | * @param groupId 习题组ID 如果为All时,表示全部错题 |
| | | * @param groupId 习题组ID 如果为All时,表示全部错题 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "updateNewExerRecordNew", method = RequestMethod.GET) |
| | | public @ResponseBody Result doUpdateExerItemNumber( |
| | | @RequestParam(value = "groupId") String groupId,// 习题组ID 如果为All时,表示全部错题、全部收藏 |
| | | @RequestParam(value = "groupId") String groupId,// 习题组ID 如果为All时,表示全部错题、全部收藏 |
| | | @RequestParam(value = "exerciseType") String exerciseType) { |
| | | |
| | | Map<String,Object> map = null; |
| | | Result result = new Result(true, "状态更新成功"); |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | Result result = new Result(true, "状态更新成功"); |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | |
| | | map = exerciseExtendService.doUpdateFaultExerRecordNew(groupId); |
| | | |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | |
| | | map = exerciseExtendService.doUpdateFavortExerRecordNew(groupId); |
| | | }else{ |
| | | |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | } |
| | | |
| | | result.setData(map); |
| | |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 更新练习作业题号 app端重新开始做题 |
| | | * APP2.0: 更新练习作业题号 app端重新开始做题 |
| | | * URL: /exercise/Extend/updateExerciseRecord |
| | | * |
| | | * @param groupId 习题组ID |
| | | * @param groupId 习题组ID |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "updateExerciseRecord", method = RequestMethod.GET) |
| | | public @ResponseBody Result doUpdateExerciseRecord( |
| | | @RequestParam(value = "groupId") String groupId,// all 表示全部错误或收藏 |
| | | @RequestParam(value = "groupId") String groupId,// all 表示全部错误或收藏 |
| | | @RequestParam(value = "exerciseType") String exerciseType, |
| | | @RequestParam(value = "exerciseRecordId") String exerciseRecordId, |
| | | @RequestParam(value = "currTitleNum", required = false) String currTitleNum) { |
| | | |
| | | |
| | | Result result = new Result(true, "状态更新成功"); |
| | | Result result = new Result(true, "状态更新成功"); |
| | | |
| | | if(StringUtils.isBlank(exerciseRecordId) && !"All".equals(groupId)){ |
| | | return new Result(false, "更新失败,exerciseRecordId为空"); |
| | | return new Result(false, "更新失败,exerciseRecordId为空"); |
| | | } |
| | | |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | |
| | | if("All".equals(groupId)){// 全部错题 |
| | | if("All".equals(groupId)){// 全部错题 |
| | | return exerciseExtendService.doUpdateExerciseFaultBook(currTitleNum); |
| | | } |
| | | |
| | |
| | | |
| | | result = exerciseExtendService.doUpdateExerciseFaultRecord(record); |
| | | |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | |
| | | if("All".equals(groupId)){// 全部收藏 |
| | | if("All".equals(groupId)){// 全部收藏 |
| | | return exerciseExtendService.doUpdateExerciseFavorBook(currTitleNum); |
| | | } |
| | | |
| | |
| | | result = exerciseExtendService.doUpdateExerciseFavorRecord(record); |
| | | }else{ |
| | | |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 查询错题 收藏笔记个数 |
| | | * APP2.0: 查询错题 收藏笔记个数 |
| | | * URL: /exercise/Extend/queryExerCount |
| | | * @return 键值对:iFavor 收藏个数 iFault 错误个数 |
| | | * @return 键值对:iFavor 收藏个数 iFault 错误个数 |
| | | */ |
| | | @RequestMapping(value = "exerBookInfo", method = RequestMethod.GET) |
| | | public @ResponseBody Result queryExtendListCount( |
| | |
| | | |
| | | Map<String, Object> map = null; |
| | | Result result = new Result(false); |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本 |
| | | |
| | | map = exerciseExtendService.queryExerFaultInfo(); |
| | | |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | }else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏 |
| | | |
| | | map = exerciseExtendService.queryExerFavorInfo(); |
| | | }else{ |
| | | |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | result = new Result(false, "exerciseType传值错误:exerciseType="+exerciseType); |
| | | } |
| | | |
| | | result = new Result(true, "查询成功"); |
| | | result = new Result(true, "查询成功"); |
| | | result.setData(map); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * APP2.0: 题目答案分析 |
| | | * APP2.0: 题目答案分析 |
| | | * URL: /exercise/Extend/itemstatisics |
| | | * |
| | | * |
| | | * |
| | | * @param groupId 习题组ID |
| | | * @param groupId 习题组ID |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "itemStatisics", method = RequestMethod.GET) |
| | | public @ResponseBody List<Map<String, Object>> doQueryExerciseItemStatisics( |
| | | @RequestParam(value = "exerciseType") String exerciseType) { |
| | | |
| | | // 查询结果 |
| | | // 查询结果 |
| | | List<Map<String, Object>> resultLst = exerciseExtendService.queryExerciseItemStatisics(exerciseType); |
| | | |
| | | return resultLst; |
| | | } |
| | | |
| | | /** |
| | | * 错题统计接口 |
| | | * 错题统计接口 |
| | | * URL: /exercise/Extend/faultStatis |
| | | * |
| | | * @return |
| | |
| | | } |
| | | |
| | | /** |
| | | *得到 错题统计信息 |
| | | *得到 错题统计信息 |
| | | * URL: /exercise/Extend/faultStatis |
| | | * |
| | | * type :week 最近一周 month:最近一月 year:最近一年 |
| | | * type :week 最近一周 month:最近一月 year:最近一年 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "getfaultStatis", method = RequestMethod.GET) |
| | |
| | | return exerciseExtendService.doGetFaultStatisInfo(type); |
| | | } |
| | | |
| | | /**-----------------------------------------APP V2.0 接口 end----------------------------------------------------------- */ |
| | | /**-----------------------------------------APP V2.0 接口 end----------------------------------------------------------- */ |
| | | |
| | | @RequestMapping(value = "initFaultStatisData", method = RequestMethod.GET) |
| | | public @ResponseBody Result doInitExerRecentRecord() { |
| | |
| | | |
| | | List<Object[]> lstData2 =commonDAO.findwithRawResult(sql2, new ArrayList<Object>()); |
| | | |
| | | if(lstData2.isEmpty()){//抛异常回滚 |
| | | return new Result(false,"错题数据为空2222"); |
| | | if(lstData2.isEmpty()){//抛异常回滚 |
| | | return new Result(false,"错题数据为空2222"); |
| | | } |
| | | |
| | | String hql_existRecord = "from ExerciseFaultRecord where resumeBookId=? and exerciseGroupId=? "; |
| | |
| | | i++; |
| | | } |
| | | |
| | | return new Result(true, "更新ExerciseFault条数:"+i); |
| | | return new Result(true, "更新ExerciseFault条数:"+i); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | List<Object[]> lstData2 =commonDAO.findwithRawResult(sql2, new ArrayList<Object>()); |
| | | |
| | | if(lstData2.isEmpty()){//抛异常回滚 |
| | | return new Result(false,"收藏数据为空2222"); |
| | | if(lstData2.isEmpty()){//抛异常回滚 |
| | | return new Result(false,"收藏数据为空2222"); |
| | | } |
| | | |
| | | String hql_existRecord = "from ExerciseFavoriteRecord where favoriteBookId=? and exerciseGroupId=? "; |
| | |
| | | i++; |
| | | } |
| | | |
| | | return new Result(true,"|更新ExerciseFavorite条数:"+i); |
| | | return new Result(true,"|更新ExerciseFavorite条数:"+i); |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | |
| | | } |
| | | } |
| | | |
| | | return new Result(true,"|更新ExerciseItemAnswerU条数:"+j); |
| | | return new Result(true,"|更新ExerciseItemAnswerU条数:"+j); |
| | | }*/ |
| | | } |