派生自 projectDept/qhighschool

EricsHu
2023-11-24 0e62c15e4b010ffa2d5cff9474f3fd389e369338
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
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);
}