package com.qxueyou.scc.exercise.service; import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSONArray; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.model.ResultJson; import com.qxueyou.scc.exercise.model.ExerciseGroup; import com.qxueyou.scc.exercise.model.ExerciseItem; import com.qxueyou.scc.exercise.model.ExerciseItemOption; import com.qxueyou.scc.exercise.model.ExerciseItemStatistics; import com.qxueyou.scc.exercise.model.ExerciseParseResult; /** * 练习service * @author zhiyong * */ public interface IExerciseService { /** * 新增练习组 * @param name 练习组名称 * @param type 练习组类型 * @param lessonId 课程id * @param chapterId 章节id * @param singleType 练习是否只保存章节练习 * @return */ Result insertExerciseGroup(String name, short type,String lessonId, String chapterId); /** * 新增练习组 * @param name 练习组名称 * @param type 练习组类型 * @param lessonId 课程id * @param chapterId 章节id * @param singleType 练习是否只保存章节练习 * @param 模拟考试 时间设置 * @return */ Result insertExerciseGroup(String groupId,String name, short type,String lessonId, String chapterId,String attribute1,boolean repeatFlag); /**新增机构练习组 * name 练习组名称 * type 练习组类型 * collegeCourseId 科目id * attribute1 模拟练习时间 * **/ Result insertOrgExercise(ExerciseGroup group, boolean repeatFlag); Result insertAppointExercise(String groupId [],String orgId [],String classIds[]); /** * 读取练习组所有习题 * @param groupId 练习组id * @return */ List readExerciseItems(String groupId); /** * 读取练习组所有习题,带编号 * @param groupId 练习组id * @return */ List readExerciseItemsWithNo(String groupId); /** * 插入ExerciseItem * @param item * @param lstOptions * @return */ Result insertExerciseItem(String groupId, ExerciseItem item,List lstOptions,String analysis); /** * 批量保存题目 * @param groupId * @param items * @return */ public Result saveExerciseItemBatch(String groupId,List items); /** * 更新练习 * @param item * @param lstOptions * @return */ Result updateExerciseItem(ExerciseItem item, List lstOptions,String analysis) ; /** * 删除习题 * @param strings 习题id * @return */ Result deleteExerciseItems(String[] exerciceIds,String[] reIds,String groupId); /** * 导入习题 * @param groupId 练习组id * @param file 文件 * @return */ Result doImportItems(String groupId, File file); /** * 组装ExerciseGroup的list * @param groupId 主键 * @return */ List initExerciseGroup(String groupId); /** * 批量删除ExerciseGroup * @param groupId 主键,多个id时以","分隔 * @return */ Result deleteExerciseGroup(String groupId) ; /** * 批量删除ExerciseGroup * @param groupId 主键,多个id时以","分隔 * @param type 多个type时以","分隔 * @return */ Result deleteExerciseGroup(String groupId,String type,String deleteType,Integer delAll, String orgIds[], String classIds[]) ; /** * :后台 * 插入评估模板时调用 * @param name * @param type * @return */ ExerciseGroup insertExerciseGroup(String name,short type) ; /** * 查询练习列表,还需查询联系下面习题个数 * @param hql * @param args * @return */ List queryExerciceGroupList(String hql,List args); /** * 添加练习图片 * @param imgPath * @param imgObjId * @param imgObjType * @return */ List> doAddExerciseObjImg(String[] imgPath, String imgObjId, int imgObjType); /** * 添加练习图片 * @param imgPath * @param imgObjId * @param imgObjType * @return */ List> doAddEvaExerciseObjImg(String[] imgPath, String imgObjId, int imgObjType); /** * 删除练习图片 * @return */ Result dodelExerciseObjImg(String imgObjId); /** * 删除练习图片 问卷 * @return */ ResultJson dodelEvaExerciseObjImg(String imgObjId); /** * 导入习题模块:深度解析word文档 * @param groupId * @param file * @param uuid * @return */ Result doDeepAnalysisDoc(String groupId,String fullPath); /** * 导入习题模块:将解析结果返回到前台 * @param groupId * @param file * @return */ ExerciseParseResult doParseItems(String groupId, String fullPath , String module ); /** * 导入习题模块: 校验习题,将解析结果返回到前台 * @param content * @return */ ExerciseParseResult validateExercise(String content); /** * 复制历史练习 * @param fromClassId * @return */ Result executeCopyExercise(String groupId, String subjectId, String subjectName, String chapterId) ; /** * 学员得分详情列表 * @param groupId * @return */ List> resultList(String groupId); /** * 初始化平均成绩和最高成绩 * @param groupId * @return */ Map initScore(String groupId); /** * 题目得分详情 * @param groupId * @return */ List itemDetailList(String groupId); /** * 加载题目选项详情 - 班级、机构 * @param groupId * @return */ List> loadOptionsList( String exerciseItemId); Result addExerciseGroupExtendTime(String groupId, String exerciseTime,boolean repeatFlag); /** * 评价模块习题修改 * * @param item * @param lstOptions * @return */ ResultJson updateExerciseItem4Evaluate(ExerciseItem item, List lstOptions,String analysis); /** * 评价模块习题新增 * * @param groupId * @param item * @param lstOptions * @return */ ResultJson insertExerciseItem4Evaluate(String groupId, ExerciseItem item, List lstOptions,String analysis,JSONArray titleImgs); /** * 查看问卷详情 * * @param groupId 问题组id * @param evaluateTemId 模板id * @return */ List readExerciseItems4Evaluate(String groupId); /** * 查询问卷用户练习详情 * @param recordId * @param evaluateId * @return */ ResultJson queryUserEvaExerciseDetail(String recordId,String evaluateId); /** * 查询问卷图片 * @param imgObjId * @param imgObjType * @return */ List> queryEvaExerciseObjImg(String imgObjId, int imgObjType); /** * 编辑练习保存 */ Result doSaveEditGroup(String groupId, String groupName); /** * 排序 * * @param ids 排序id * @param index 序号 * @return */ Result doOrder(List ids, List index); /** * 问卷模板练习题排序 * * @param ids 排序id * @param index 序号 * @return */ Result doitemOrder(List ids, List index,String groupId); /** * 拷贝练习 * * @param id * @param subjectId * @param collegeCourseId * @param chapterId * @return * @throws IllegalAccessException * @throws InstantiationException * @throws InvocationTargetException * @throws NoSuchMethodException */ Result doCopyExerciseGroup(String id, String subjectId, String collegeCourseId, String chapterId) throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException; /** * 保存练习接口 * * @param group * @return */ public Result saveExerciseGroup(ExerciseGroup group); /** * (后台管理系统) * 管理员同步习题到班级 * * @param exerciseItemId * @return */ public Result doSynExercise(String[] exerciseItemIds) throws IllegalAccessException, InvocationTargetException; /** * 拷贝练习题 * * @param items * @param newGroupId * @param oldGroupId * @throws NoSuchMethodException * @throws InvocationTargetException * @throws InstantiationException * @throws IllegalAccessException */ public void doCopyExerciseItem(String newGroupId, String oldGroupId, List items, int type) throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException; /** * 数据同步接口,同步下发到班级的数据 * * @param orgId * @param groupId * @return */ public Result doSynExerciseItem(String orgId, String groupId); /** * 问卷评估 复制练习 * @param groupId * @return */ public String doCopyExerciseByEvaluate(String groupId); }