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<ExerciseItem> readExerciseItems(String groupId);
|
|
|
/**
|
* 读取练习组所有习题,带编号
|
* @param groupId 练习组id
|
* @return
|
*/
|
List<ExerciseItem> readExerciseItemsWithNo(String groupId);
|
|
/**
|
* 插入ExerciseItem
|
* @param item
|
* @param lstOptions
|
* @return
|
*/
|
Result insertExerciseItem(String groupId, ExerciseItem item,List<ExerciseItemOption> lstOptions,String analysis);
|
|
|
/**
|
* 批量保存题目
|
* @param groupId
|
* @param items
|
* @return
|
*/
|
public Result saveExerciseItemBatch(String groupId,List<ExerciseItem> items);
|
|
|
/**
|
* 更新练习
|
* @param item
|
* @param lstOptions
|
* @return
|
*/
|
Result updateExerciseItem(ExerciseItem item, List<ExerciseItemOption> 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<ExerciseGroup> 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<ExerciseGroup> queryExerciceGroupList(String hql,List<Object> args);
|
|
/**
|
* 添加练习图片
|
* @param imgPath
|
* @param imgObjId
|
* @param imgObjType
|
* @return
|
*/
|
List<Map<String,Object>> doAddExerciseObjImg(String[] imgPath, String imgObjId, int imgObjType);
|
|
|
/**
|
* 添加练习图片
|
* @param imgPath
|
* @param imgObjId
|
* @param imgObjType
|
* @return
|
*/
|
List<Map<String,Object>> 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<Map<String, Object>> resultList(String groupId);
|
|
/**
|
* 初始化平均成绩和最高成绩
|
* @param groupId
|
* @return
|
*/
|
Map<String, Object> initScore(String groupId);
|
|
/**
|
* 题目得分详情
|
* @param groupId
|
* @return
|
*/
|
List<ExerciseItemStatistics> itemDetailList(String groupId);
|
|
/**
|
* 加载题目选项详情 - 班级、机构
|
* @param groupId
|
* @return
|
*/
|
List<Map<String,Object>> loadOptionsList( String exerciseItemId);
|
|
Result addExerciseGroupExtendTime(String groupId, String exerciseTime,boolean repeatFlag);
|
|
/**
|
* 评价模块习题修改
|
*
|
* @param item
|
* @param lstOptions
|
* @return
|
*/
|
ResultJson updateExerciseItem4Evaluate(ExerciseItem item, List<ExerciseItemOption> lstOptions,String analysis);
|
|
/**
|
* 评价模块习题新增
|
*
|
* @param groupId
|
* @param item
|
* @param lstOptions
|
* @return
|
*/
|
ResultJson insertExerciseItem4Evaluate(String groupId, ExerciseItem item,
|
List<ExerciseItemOption> lstOptions,String analysis,JSONArray titleImgs);
|
|
/**
|
* 查看问卷详情
|
*
|
* @param groupId 问题组id
|
* @param evaluateTemId 模板id
|
* @return
|
*/
|
List<ExerciseItem> readExerciseItems4Evaluate(String groupId);
|
|
/**
|
* 查询问卷用户练习详情
|
* @param recordId
|
* @param evaluateId
|
* @return
|
*/
|
ResultJson queryUserEvaExerciseDetail(String recordId,String evaluateId);
|
|
/**
|
* 查询问卷图片
|
* @param imgObjId
|
* @param imgObjType
|
* @return
|
*/
|
List<Map<String,Object>> queryEvaExerciseObjImg(String imgObjId, int imgObjType);
|
|
/**
|
* 编辑练习保存
|
*/
|
Result doSaveEditGroup(String groupId, String groupName);
|
|
/**
|
* 排序
|
*
|
* @param ids 排序id
|
* @param index 序号
|
* @return
|
*/
|
Result doOrder(List<String> ids, List<Integer> index);
|
|
/**
|
* 问卷模板练习题排序
|
*
|
* @param ids 排序id
|
* @param index 序号
|
* @return
|
*/
|
Result doitemOrder(List<String> ids, List<Integer> 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<ExerciseItem> 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);
|
}
|