Merge remote-tracking branch 'origin/beetlsql3-dev' into beetlsql3-dev

beetlsql3-dev
wgf 2 years ago
commit d5b83ec2c7

@ -63,43 +63,56 @@ import static java.util.stream.Collectors.joining;
@Service
@Transactional
@Slf4j
public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<TeacherOpenCourseQuestionSetting> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseQuestionSettingDao teacherOpenCourseQuestionSettingDao;
@Autowired private ResourcesQuestionSnapshotDao resourcesQuestionSnapshotDao;
@Autowired private TeacherOpenCourseQuestionLogDao teacherOpenCourseQuestionLogDao;
@Autowired private QuestionLogSummaryDao questionLogSummaryDao;
@Autowired private StudentDao studentDao;
@Autowired private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
@Autowired private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
@Autowired private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
@Autowired private ResourcesQuestionService resourcesQuestionService;
@Autowired private CourseInfoService courseInfoService;
@Autowired private TeacherOpenCourseMergeResourcesQuestionService teacherOpenCourseMergeResourcesQuestionService;
@Autowired private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
@Autowired private QuestionSettingRedisDelayQueueImpl questionSettingRedisDelayQueue;
public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<TeacherOpenCourseQuestionSetting> implements DeleteResourcesBy {
@Autowired
private TeacherOpenCourseQuestionSettingDao teacherOpenCourseQuestionSettingDao;
@Autowired
private ResourcesQuestionSnapshotDao resourcesQuestionSnapshotDao;
@Autowired
private TeacherOpenCourseQuestionLogDao teacherOpenCourseQuestionLogDao;
@Autowired
private QuestionLogSummaryDao questionLogSummaryDao;
@Autowired
private StudentDao studentDao;
@Autowired
private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
@Autowired
private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
@Autowired
private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
@Autowired
private ResourcesQuestionService resourcesQuestionService;
@Autowired
private CourseInfoService courseInfoService;
@Autowired
private TeacherOpenCourseMergeResourcesQuestionService teacherOpenCourseMergeResourcesQuestionService;
@Autowired
private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
@Autowired
private QuestionSettingRedisDelayQueueImpl questionSettingRedisDelayQueue;
@Autowired
private QuestionLogSummaryService questionLogSummaryService;
public PageQuery<TeacherOpenCourseQuestionSetting>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionSettingDao.queryByCondition(query);
public PageQuery<TeacherOpenCourseQuestionSetting> queryByCondition(PageQuery query) {
PageQuery ret = teacherOpenCourseQuestionSettingDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<TeacherOpenCourseQuestionSetting>queryByConditionQuery(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionSettingDao.queryByConditionQuery(query);
public PageQuery<TeacherOpenCourseQuestionSetting> queryByConditionQuery(PageQuery query) {
PageQuery ret = teacherOpenCourseQuestionSettingDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
}
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
teacherOpenCourseQuestionSettingDao.deleteByIds(ids);
}
}
@ -113,7 +126,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
resourcesQuestionSnapshotService.deleteBySettingIds(settingIds);
}
public void logicDeleteBySettingIds(String ids){
public void logicDeleteBySettingIds(String ids) {
try {
teacherOpenCourseQuestionSettingDao.logicDeleteBySettingIds(ids);
} catch (Exception e) {
@ -121,7 +134,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
}
}
public String addAll(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public String addAll(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
String msg = "";
List<TeacherOpenCourseQuestionSetting> teacherOpenCourseQuestionSettingList = new ArrayList<>();
try {
@ -129,11 +142,12 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
} catch (Exception e) {
try {
teacherOpenCourseQuestionSettingList.add(JSONObject.parseObject(teacherOpenCourseQuestionSettingQuery.getTeacherOpenCourseQuestionSettingJsonStr(), TeacherOpenCourseQuestionSetting.class));
} catch (Exception e1) {}
} catch (Exception e1) {
}
}
ToolUtils.deleteNullList(teacherOpenCourseQuestionSettingList);
if(null != teacherOpenCourseQuestionSettingList && teacherOpenCourseQuestionSettingList.size()>0){
for(int i=0;i<teacherOpenCourseQuestionSettingList.size();i++){
if (null != teacherOpenCourseQuestionSettingList && teacherOpenCourseQuestionSettingList.size() > 0) {
for (int i = 0; i < teacherOpenCourseQuestionSettingList.size(); i++) {
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingList.get(i);
teacherOpenCourseQuestionSetting.setUserId(teacherOpenCourseQuestionSettingQuery.getUserId());
teacherOpenCourseQuestionSetting.setOrgId(teacherOpenCourseQuestionSettingQuery.getOrgId());
@ -145,7 +159,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
return msg;
}
public JsonResult add(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public JsonResult add(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
String msg = "";
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingQuery.pojo();
@ -161,7 +175,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
return jsonResult;
}
public String edit(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public String edit(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
// 验证唯一
// verifyUniqueChapterExercise(teacherOpenCourseQuestionSettingQuery);
@ -176,7 +190,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
* ID +
*
*
* <p>
* ID
*
* @param teacherOpenCourseId
@ -184,14 +198,14 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
* @return
*/
public void verifyUniqueName(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@NotEmpty(message = "题目配置名称不能为空!") String teacherOpenCourseQuestionSettingName ) {
@NotEmpty(message = "题目配置名称不能为空!") String teacherOpenCourseQuestionSettingName) {
// 数据库设计稍微有点不严谨暂时用名字来作为关联的条件所以这里只能保证同一个开课ID下的名字是唯一的
TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery();
settingQuery.setTeacherOpenCourseQuestionSettingName(teacherOpenCourseQuestionSettingName);
settingQuery.setTeacherOpenCourseId(teacherOpenCourseId);
List<TeacherOpenCourseQuestionSetting> oneList = getValuesByQuery(settingQuery);
if(ObjectUtil.isNotEmpty(oneList)) {
if (ObjectUtil.isNotEmpty(oneList)) {
throw new PlatformException("当前开课下的题目配置名称重复,请重新设置!");
}
}
@ -199,7 +213,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
* ID +
*
*
* <p>
* ID
*
* @param query
@ -221,35 +235,36 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
oneList.removeIf(s -> s.getTeacherOpenCourseQuestionSettingId().equals(query.getTeacherOpenCourseQuestionSettingId()));
}
if(ObjectUtil.isNotEmpty(oneList)) {
if (ObjectUtil.isNotEmpty(oneList)) {
throw new PlatformException("当前开课下的题目配置名称重复,请重新设置!");
}
}
}
public String updateGivenByIds(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public String updateGivenByIds(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
String msg = "";
if(StringUtils.isNotBlank(teacherOpenCourseQuestionSettingQuery.get_given())){
if (StringUtils.isNotBlank(teacherOpenCourseQuestionSettingQuery.get_given())) {
boolean flag = teacherOpenCourseQuestionSettingDao.updateGivenByIds(teacherOpenCourseQuestionSettingQuery) > 0;
if(!flag){
if (!flag) {
msg = "更新指定参数失败";
}
}else{
} else {
msg = "指定参数为空";
}
return msg;
}
public List<TeacherOpenCourseQuestionSetting> getValues (Object paras){
public List<TeacherOpenCourseQuestionSetting> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseQuestionSetting.getTeacherOpenCourseQuestionSettingValues"), TeacherOpenCourseQuestionSetting.class, paras);
}
public List<TeacherOpenCourseQuestionSetting> getValuesByQuery (TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public List<TeacherOpenCourseQuestionSetting> getValuesByQuery(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
return teacherOpenCourseQuestionSettingDao.getValuesByQuery(teacherOpenCourseQuestionSettingQuery);
}
/**
*
*
* @param list
* @param student
*/
@ -319,23 +334,23 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
});
}
public TeacherOpenCourseQuestionSetting getInfo (Long teacherOpenCourseQuestionSettingId){
public TeacherOpenCourseQuestionSetting getInfo(Long teacherOpenCourseQuestionSettingId) {
TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery();
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingId(teacherOpenCourseQuestionSettingId);
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatusPlural("1");//需要根据实际情况来
List<TeacherOpenCourseQuestionSetting> list = teacherOpenCourseQuestionSettingDao.getValuesByQuery(teacherOpenCourseQuestionSettingQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public TeacherOpenCourseQuestionSetting getInfo (TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery){
public TeacherOpenCourseQuestionSetting getInfo(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery) {
List<TeacherOpenCourseQuestionSetting> list = teacherOpenCourseQuestionSettingDao.getValuesByQuery(teacherOpenCourseQuestionSettingQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
@ -344,7 +359,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
*
*
*
*
* <p>
*
*
*
@ -377,16 +392,17 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
*
*
* <p>
*
*
*
* @param settingQuery
* @return
*/
public void addSettingByOpenCourse(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair ) {
public void addSettingByOpenCourse(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair) {
// 编辑操作
if(ObjectUtil.isNotEmpty(settingQuery.getTeacherOpenCourseQuestionSettingId())) {
if (ObjectUtil.isNotEmpty(settingQuery.getTeacherOpenCourseQuestionSettingId())) {
String editSettingIds = settingQuery.getTeacherOpenCourseQuestionSettingId().toString();
deleteSettingAndSnapByIds(editSettingIds);
// 删除主键,用于下面的保存方法
@ -404,7 +420,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
Collection<QuestionSettingDTO> settingDTOList = null;
// 指定题目IDs的时候指定题目。但是不传题目的类型后台这里需要处理题目分类
if(ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) {
if (ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) {
TeacherOpenCourseMergeResourcesQuestionQuery questionQuery = new TeacherOpenCourseMergeResourcesQuestionQuery();
questionQuery.setQuestionStatus(1);
questionQuery.setTeacherOpenCourseMergeResourcesQuestionIdPlural(resourcesQuestionIdPlural);
@ -418,12 +434,14 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
// 设置分值
settingQuery.getQuestionSettingOptions().forEach(item -> {
QuestionSettingDTO settingDTO = map.get(item.getQuestionType());
if(ObjectUtil.isAllNotEmpty(settingDTO, item.getSingleScore())) {
if (ObjectUtil.isAllNotEmpty(settingDTO, item.getSingleScore())) {
settingDTO.setSingleScore(item.getSingleScore());
}
});
if (ObjectUtil.isNotEmpty(map)) { settingDTOList = map.values(); }
if (ObjectUtil.isNotEmpty(map)) {
settingDTOList = map.values();
}
}
// 随机抽取题目的方式
@ -445,7 +463,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
* @param settingQuery
* @return
*/
public void addSettingBySystemCourse(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair ) {
public void addSettingBySystemCourse(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair) {
// 添加到作业主表中
add(settingQuery);
@ -459,13 +477,14 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
*
*
* <p>
*
*
*
*
* @param teacherOpenCourseId ID
* @param courseInfoIdWithQuestionSettingOptions KeyValueID
*
* @param teacherOpenCourseId ID
* @param courseInfoIdWithQuestionSettingOptions KeyValueID
*/
public void addSettingByOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@Nullable Map<TeacherOpenCourseMergeCourseInfo, Collection<QuestionSettingDTO>> courseInfoIdWithQuestionSettingOptions,
@ -498,25 +517,27 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
courseInfoIdWithQuestionSettingOptions.forEach((courseInfo, settingDtoList) -> {
// 判断,添加交给外部来控制
try {
if(eq.equals(func1.call(courseInfo))) {
if (eq.equals(func1.call(courseInfo))) {
settingQuery.setQuestionSettingOptions(new ArrayList<>(settingDtoList));
settingQuery.setTeacherOpenCourseQuestionSettingName(courseInfo.getCourseInfoName());
addSettingByOpenCourse(settingQuery, courseInfoIdPair);
}
} catch (Exception e) { }
} catch (Exception e) {
}
});
}
/**
*
*
* <p>
*
*
*
*
* @param teacherOpenCourseId ID
* @param courseInfoIdWithQuestionSettingOptions KeyValueID
*
* @param teacherOpenCourseId ID
* @param courseInfoIdWithQuestionSettingOptions KeyValueID
*/
public void addSettingBySystemCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@Nullable Map<CourseInfo, Collection<QuestionSettingDTO>> courseInfoIdWithQuestionSettingOptions,
@ -548,12 +569,13 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
courseInfoIdWithQuestionSettingOptions.forEach((courseInfo, settingDtoList) -> {
// 判断,添加交给外部来控制
try {
if(eq.equals(func1.call(courseInfo))) {
if (eq.equals(func1.call(courseInfo))) {
settingQuery.setQuestionSettingOptions(new ArrayList<>(settingDtoList));
settingQuery.setTeacherOpenCourseQuestionSettingName(courseInfo.getCourseInfoName());
addSettingBySystemCourse(settingQuery, courseInfoIdPair);
}
} catch (Exception e) { }
} catch (Exception e) {
}
});
}
@ -574,11 +596,12 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
*
*
*
* @param teacherOpenCourseId
* @param teacherOpenCourseQuestionSettingName
* @param teacherOpenCourseQuestionSettingName
*/
public void deleteWithSubDataByParams(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@Nullable String teacherOpenCourseQuestionSettingName) {
@Nullable String teacherOpenCourseQuestionSettingName) {
// 条件
TeacherOpenCourseQuestionSetting condition = new TeacherOpenCourseQuestionSetting();
condition.setTeacherOpenCourseId(teacherOpenCourseId);
@ -590,7 +613,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
List<Long> idList = settingList.stream()
.map(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingId).collect(Collectors.toList());
if(ObjectUtil.isAllNotEmpty(teacherOpenCourseId, teacherOpenCourseQuestionSettingName)) {
if (ObjectUtil.isAllNotEmpty(teacherOpenCourseId, teacherOpenCourseQuestionSettingName)) {
// 获取完ID以后删除主表数据
sqlManager.lambdaQuery(TeacherOpenCourseQuestionSetting.class)
.andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseId, teacherOpenCourseId)
@ -615,9 +638,9 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
*
*
*
* @param teacherOpenCourseId ID
* @param courseInfos
* @param courseInfoIdPair ID
* @param teacherOpenCourseId ID
* @param courseInfos
* @param courseInfoIdPair ID
*/
public void copySystemQuestionChapterTestQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
Collection<CourseInfo> courseInfos, Map<Long, Long> courseInfoIdPair) {
@ -631,7 +654,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
List<ResourcesQuestion> questionList = resourcesQuestionService.getByCourseInfoIds(allCourseInfoIds);
// 有题目才继续执行
if(ObjectUtil.isNotEmpty(questionList)) {
if (ObjectUtil.isNotEmpty(questionList)) {
Map<ResourcesQuestionTypeEnum, QuestionSettingDTO> map = resourcesQuestionService.buildSettingDtoListByNoDiffQuestionList(questionList);
Map<CourseInfo, Collection<QuestionSettingDTO>> courseInfoIdWithQuestionSettingOptions = new HashMap<>(1);
courseInfoIdWithQuestionSettingOptions.put(courseInfo, map.values());
@ -691,7 +714,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
add(questionSettingQuery);
// 如果有关联的题目,则添加到题目快照表
if(ObjectUtil.isNotEmpty(resourcesQuestionList)) {
if (ObjectUtil.isNotEmpty(resourcesQuestionList)) {
// 构造章节练习的题目快照
List<ResourcesQuestionSnapshot> resourcesQuestionSnapshots = BeanUtil.copyToList(resourcesQuestionList, ResourcesQuestionSnapshot.class);
resourcesQuestionSnapshots.forEach(item -> item.setTeacherOpenCourseQuestionSettingId(questionSettingQuery.getTeacherOpenCourseQuestionSettingId()));
@ -713,6 +736,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
* ID
*
* @param questionSettingId
* @return
*/
@ -728,6 +752,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
* ID
*
*
* @param questionSettingId
* @return
*/
@ -810,7 +835,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
resourcesQuestionSnapshots.forEach(value -> {
// 1单选 2多选进行打乱其他的不变
if (value.getQuestionType() <= 2) {
shuffleQuestion(value, "questionStem","questionOption",
shuffleQuestion(value, "questionStem", "questionOption",
"questionAnswer", "questionType");
}
});
@ -903,15 +928,15 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
* : <br>
*
*
* @param questionSettingId IDID
* @param tuckOrError
* @param student
* @param questionSettingId IDID
* @param tuckOrError
* @param student
* @return {@link JsonResult}
* @Author: 87966
* @Date: 2022/12/1 9:27
*/
public List<TeacherOpenCourseQuestionLog> questionDetailTest(@NotNull(message = "题目配置ID不能为空") Long questionSettingId,
@NotNull(message = "练习类型不能为空!") TuckOrErrorEnum tuckOrError, @NotNull(message = "该接口只能学生访问") Student student) {
@NotNull(message = "练习类型不能为空!") TuckOrErrorEnum tuckOrError, @NotNull(message = "该接口只能学生访问") Student student) {
final Long studentId = student.getStudentId();
TeacherOpenCourseQuestionLogQuery logQuery = new TeacherOpenCourseQuestionLogQuery();
@ -930,7 +955,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
return list;
}
// 错题库,本来是一张表管理的。
else if(ERROR_TEST.equals(tuckOrError)) {
else if (ERROR_TEST.equals(tuckOrError)) {
// logQuery.setIsErrorFavorite(true);
// TeacherOpenCourseQuestionLogWrongQuery wrongQuery = new TeacherOpenCourseQuestionLogWrongQuery();
// wrongQuery.setStudentId(studentId);
@ -963,8 +988,8 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
* : <br>
*
*
* @param teacherOpenCourseId ID
* @param questionSettingType
* @param teacherOpenCourseId ID
* @param questionSettingType
* @Author: 87966
* @Date: 2022/12/21 22:40
*/
@ -978,7 +1003,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
List<TeacherOpenCourseQuestionSetting> settingList = teacherOpenCourseQuestionSettingDao.getValuesByQueryNotWithPermission(settingQuery);
List<String> questionSettingIdList = CollectionUtil.emptyIfNull(settingList).stream()
.map(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingId).map(Objects::toString).collect(Collectors.toList());
String questionSettingIds = join( ",", questionSettingIdList);
String questionSettingIds = join(",", questionSettingIdList);
OpenCourseQuestionSettingAnalysisAvgVO analysisAvgVO = new OpenCourseQuestionSettingAnalysisAvgVO();
@ -1003,6 +1028,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
/**
*
*
* @param list
*/
public void fullQuestionSettingOptions(List<TeacherOpenCourseQuestionSetting> list) {

@ -1,10 +1,13 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.util.StrUtil;
import cn.jlw.Interceptor.SCoreUser;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Function;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.util.BeanCopyUtil;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting;
import com.ibeetl.jlw.enums.GlobalPushStatusEnum;
@ -22,10 +25,16 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static cn.jlw.util.CacheUserUtil.getStudent;
import static com.ibeetl.admin.core.util.ExcelUtil.convertData;
import static com.ibeetl.admin.core.util.ExcelUtil.write;
/**
* --
@ -33,24 +42,26 @@ import static cn.jlw.util.CacheUserUtil.getStudent;
*/
@RestController
public class TeacherOpenCourseQuestionSettingController{
public class TeacherOpenCourseQuestionSettingController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/jlw/teacherOpenCourseQuestionSetting";
private static final String API = "/api/teacherOpenCourseQuestionSetting";
@Autowired private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingService;
@Autowired
private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingService;
@Autowired FileService fileService;
@Autowired
FileService fileService;
/* 前端接口 */
@PostMapping(API + "/getPageList.do")
public JsonResult<PageQuery> getPageList(TeacherOpenCourseQuestionSettingQuery condition,@SCoreUser CoreUser coreUser){
if(null == coreUser){
public JsonResult<PageQuery> getPageList(TeacherOpenCourseQuestionSettingQuery condition, @SCoreUser CoreUser coreUser) {
if (null == coreUser) {
return JsonResult.failMessage("请登录后再操作");
}else{
} else {
if (coreUser.isStudent()) {
condition.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
condition.setTeacherOpenCourseQuestionSettingStatus(1);
@ -67,34 +78,115 @@ public class TeacherOpenCourseQuestionSettingController{
}
}
@GetMapping(API + "/exportPageList.do")
public void exportPageList(TeacherOpenCourseQuestionSettingQuery condition, HttpServletResponse response, @SCoreUser CoreUser coreUser) throws IOException {
if (null == coreUser) {
throw new PlatformException("请登录后再操作");
} else {
if (condition.getTeacherOpenCourseQuestionSettingType() == null) {
throw new PlatformException("参数错误");
}
if (coreUser.isStudent()) {
condition.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
condition.setTeacherOpenCourseQuestionSettingStatus(1);
}
condition.setPage(1);
condition.setLimit(Long.MAX_VALUE);
PageQuery page = condition.getPageQuery();
teacherOpenCourseQuestionSettingService.queryByConditionQuery(page);
String baseName = "";
for (Object o : page.getList()) {
TeacherOpenCourseQuestionSetting setting = (TeacherOpenCourseQuestionSetting) o;
GlobalPushStatusEnum teacherOpenCourseQuestionSettingPushStatus = setting.getTeacherOpenCourseQuestionSettingPushStatus();
setting.set("teacherOpenCourseQuestionSettingPushStatusText",teacherOpenCourseQuestionSettingPushStatus.getText());
}
/** 构建表头 */
Map<String, String> header = new LinkedHashMap<>(11);
switch (condition.getTeacherOpenCourseQuestionSettingType()) {
case EXAM:
header.put("teacherOpenCourseQuestionSettingName", "考试名称");
header.put("teacherOpenCourseQuestionSettingSchoolClassNames", "考试班级");
header.put("teacherOpenCourseQuestionStartTime", "考试开始时间");
header.put("teacherOpenCourseQuestionEndTime", "考试结束时间");
header.put("avgSuccessCount", "平均答对数量");
header.put("avgErrorCount", "平均答错数量");
header.put("avgSuccessRate", "平均正确率");
header.put("avgScore", "平均得分");
header.put("teacherOpenCourseQuestionSettingPushStatusText", "状态");
baseName = "考试记录-导出";
break;
case HOMEWORK_QUESTION:
header.put("teacherOpenCourseQuestionSettingName", "题库作业名称");
header.put("teacherOpenCourseQuestionSettingSchoolClassNames", "考试班级");
header.put("teacherOpenCourseQuestionStartTime", "作业开始时间");
header.put("teacherOpenCourseQuestionEndTime", "作业结束时间");
header.put("avgPassRate", "及格率");
header.put("avgScore", "平均得分");
header.put("teacherOpenCourseQuestionSettingPushStatusText", "状态");
baseName = "题库作业-导出";
break;
case HOMEWORK_FILE:
header.put("teacherOpenCourseQuestionSettingName", "题库作业名称");
header.put("teacherOpenCourseQuestionSettingSchoolClassNames", "作业班级");
header.put("messageAddTime", "作业附件");
header.put("avgScore", "平均得分");
header.put("avgPassRate", "及格率");
header.put("teacherOpenCourseQuestionStartTime", "作业开始时间");
header.put("teacherOpenCourseQuestionEndTime", "作业结束时间");
header.put("teacherOpenCourseQuestionSettingPushStatusText", "状态");
baseName = "附件作业-导出";
break;
default:
throw new PlatformException("参数错误");
}
List<Map<String, Object>> maps = BeanCopyUtil.baseEntity2MapWithParallel(page.getList());
String filename = StrUtil.format("{} {}.xlsx", baseName, System.currentTimeMillis());
write(response, filename, "Sheet1", header.values(), convertData(header.keySet(), maps));
}
}
@GetMapping(API + "/getInfo.do")
public JsonResult<TeacherOpenCourseQuestionSetting>getInfo(TeacherOpenCourseQuestionSettingQuery param,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
public JsonResult<TeacherOpenCourseQuestionSetting> getInfo(TeacherOpenCourseQuestionSettingQuery param, @SCoreUser CoreUser coreUser) {
if (null == coreUser) {
return JsonResult.failMessage("请登录后再操作");
}else{
} else {
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingService.getInfo(param);
return JsonResult.success(teacherOpenCourseQuestionSetting);
return JsonResult.success(teacherOpenCourseQuestionSetting);
}
}
@GetMapping(API + "/getList.do")
public JsonResult<List<TeacherOpenCourseQuestionSetting>>getList(TeacherOpenCourseQuestionSettingQuery param,@SCoreUser CoreUser coreUser) {
if(null == coreUser){
public JsonResult<List<TeacherOpenCourseQuestionSetting>> getList(TeacherOpenCourseQuestionSettingQuery param, @SCoreUser CoreUser coreUser) {
if (null == coreUser) {
return JsonResult.failMessage("请登录后再操作");
}else{
List<TeacherOpenCourseQuestionSetting>list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
} else {
List<TeacherOpenCourseQuestionSetting> list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
if (!param.getNotSelectOther()) {
// 设置分数和完成时间
teacherOpenCourseQuestionSettingService.setMyQuestionLogScoreInfo(list, getStudent());
}
return JsonResult.success(list);
return JsonResult.success(list);
}
}
/**
* -
*
* @param teacherOpenCourseQuestionSettingQuery
* @param result
* @param coreUser
@ -119,7 +211,7 @@ public class TeacherOpenCourseQuestionSettingController{
*
*
* @param teacherOpenCourseQuestionSettingId ID
* @param fromTypeEnum
* @param fromTypeEnum
* @return
*/
@PostMapping(API + "/questionDetail.do")
@ -132,20 +224,21 @@ public class TeacherOpenCourseQuestionSettingController{
* : <br>
*
*
* @param questionSettingId IDID
* @param tuckOrError
* @param coreUser
* @param questionSettingId IDID
* @param tuckOrError
* @param coreUser
* @return {@link JsonResult}
* @Author: 87966
* @Date: 2022/12/1 9:27
*/
@PostMapping(API + "/questionDetailTest.do")
public JsonResult questionDetailTest(Long questionSettingId, TuckOrErrorEnum tuckOrError, @SCoreUser CoreUser coreUser){
public JsonResult questionDetailTest(Long questionSettingId, TuckOrErrorEnum tuckOrError, @SCoreUser CoreUser coreUser) {
return JsonResult.success(teacherOpenCourseQuestionSettingService.questionDetailTest(questionSettingId, tuckOrError, getStudent()));
}
/**
*
*
* @param ids
* @param pushStatus
* @return
@ -158,20 +251,22 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
* @param teacherOpenCourseId ID
* @param questionSettingId ID
* @param questionSettingType
*
* @param teacherOpenCourseId ID
* @param questionSettingId ID
* @param questionSettingType
* @return
*/
@PostMapping(API + "/analysis.do")
public JsonResult analysisDo(Long teacherOpenCourseId, ResourcesQuestionSnapshotFromTypeEnum questionSettingType, @RequestParam(required = false) Long questionSettingId, @SCoreUser CoreUser coreUser) {
public JsonResult analysisDo(Long teacherOpenCourseId, ResourcesQuestionSnapshotFromTypeEnum questionSettingType, @RequestParam(required = false) Long questionSettingId, @SCoreUser CoreUser coreUser) {
return JsonResult.success(teacherOpenCourseQuestionSettingService.analysis(teacherOpenCourseId, questionSettingType, questionSettingId));
}
/**
*
* @param teacherOpenCourseId ID
* @param questionSettingType
*
* @param teacherOpenCourseId ID
* @param questionSettingType
* @return
*/
@PostMapping(API + "/analysisTotal.do")
@ -181,6 +276,7 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
*
* @param ids
* @return
*/
@ -192,6 +288,7 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
*
* @param ids
* @return
*/
@ -206,7 +303,7 @@ public class TeacherOpenCourseQuestionSettingController{
@GetMapping(MODEL + "/index.do")
@Function("teacherOpenCourseQuestionSetting.query")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseQuestionSetting/index.html") ;
ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseQuestionSetting/index.html");
view.addObject("search", TeacherOpenCourseQuestionSettingQuery.class.getName());
return view;
}
@ -224,10 +321,10 @@ public class TeacherOpenCourseQuestionSettingController{
@Function("teacherOpenCourseQuestionSetting.add")
public ModelAndView add(Long teacherOpenCourseQuestionSettingId) {
ModelAndView view = new ModelAndView("/jlw/teacherOpenCourseQuestionSetting/add.html");
if(null != teacherOpenCourseQuestionSettingId){
if (null != teacherOpenCourseQuestionSettingId) {
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingService.queryById(teacherOpenCourseQuestionSettingId);
view.addObject("teacherOpenCourseQuestionSetting", teacherOpenCourseQuestionSetting);
}else {
} else {
view.addObject("teacherOpenCourseQuestionSetting", new TeacherOpenCourseQuestionSetting());
}
return view;
@ -237,7 +334,7 @@ public class TeacherOpenCourseQuestionSettingController{
@PostMapping(MODEL + "/list.json")
@Function("teacherOpenCourseQuestionSetting.query")
public JsonResult<PageQuery> list(TeacherOpenCourseQuestionSettingQuery condition){
public JsonResult<PageQuery> list(TeacherOpenCourseQuestionSettingQuery condition) {
PageQuery page = condition.getPageQuery();
teacherOpenCourseQuestionSettingService.queryByCondition(page);
return JsonResult.success(page);
@ -245,32 +342,32 @@ public class TeacherOpenCourseQuestionSettingController{
@PostMapping(MODEL + "/addAll.json")
@Function("teacherOpenCourseQuestionSetting.add")
public JsonResult addAll(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery,@SCoreUser CoreUser coreUser){
if(null == coreUser){
public JsonResult addAll(TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery, @SCoreUser CoreUser coreUser) {
if (null == coreUser) {
return JsonResult.failMessage("请登录后再操作");
}else{
teacherOpenCourseQuestionSettingQuery.setUserId(coreUser.getId());
teacherOpenCourseQuestionSettingQuery.setOrgId(coreUser.getOrgId());
} else {
teacherOpenCourseQuestionSettingQuery.setUserId(coreUser.getId());
teacherOpenCourseQuestionSettingQuery.setOrgId(coreUser.getOrgId());
String msg = teacherOpenCourseQuestionSettingService.addAll(teacherOpenCourseQuestionSettingQuery);
if (StringUtils.isBlank(msg)) {
return JsonResult.success();
} else {
return JsonResult.failMessage("新增失败,"+msg);
return JsonResult.failMessage("新增失败," + msg);
}
}
}
@PostMapping(MODEL + "/add.json")
@Function("teacherOpenCourseQuestionSetting.add")
public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery, BindingResult result,@SCoreUser CoreUser coreUser){
if(result.hasErrors()){
public JsonResult add(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery, BindingResult result, @SCoreUser CoreUser coreUser) {
if (result.hasErrors()) {
return JsonResult.failMessage(result);
}else{
teacherOpenCourseQuestionSettingQuery.setUserId(coreUser.getId());
teacherOpenCourseQuestionSettingQuery.setOrgId(coreUser.getOrgId());
if(null == teacherOpenCourseQuestionSettingQuery.getTeacherOpenCourseQuestionSettingStatus()){
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
}
} else {
teacherOpenCourseQuestionSettingQuery.setUserId(coreUser.getId());
teacherOpenCourseQuestionSettingQuery.setOrgId(coreUser.getOrgId());
if (null == teacherOpenCourseQuestionSettingQuery.getTeacherOpenCourseQuestionSettingStatus()) {
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
}
return teacherOpenCourseQuestionSettingService.add(teacherOpenCourseQuestionSettingQuery);
}
}
@ -278,16 +375,16 @@ public class TeacherOpenCourseQuestionSettingController{
@PostMapping(MODEL + "/edit.json")
@Function("teacherOpenCourseQuestionSetting.edit")
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery, BindingResult result) {
if(result.hasErrors()){
if (result.hasErrors()) {
return JsonResult.failMessage(result);
}else {
teacherOpenCourseQuestionSettingQuery.setUserId(null);
teacherOpenCourseQuestionSettingQuery.setOrgId(null);
} else {
teacherOpenCourseQuestionSettingQuery.setUserId(null);
teacherOpenCourseQuestionSettingQuery.setOrgId(null);
String msg = teacherOpenCourseQuestionSettingService.edit(teacherOpenCourseQuestionSettingQuery);
if (StringUtils.isBlank(msg)) {
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败,"+msg);
return JsonResult.failMessage("更新失败," + msg);
}
}
}
@ -295,21 +392,22 @@ public class TeacherOpenCourseQuestionSettingController{
@GetMapping(MODEL + "/view.json")
@Function("teacherOpenCourseQuestionSetting.query")
public JsonResult<TeacherOpenCourseQuestionSetting>queryInfo(Long teacherOpenCourseQuestionSettingId) {
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingService.queryById( teacherOpenCourseQuestionSettingId);
return JsonResult.success(teacherOpenCourseQuestionSetting);
public JsonResult<TeacherOpenCourseQuestionSetting> queryInfo(Long teacherOpenCourseQuestionSettingId) {
TeacherOpenCourseQuestionSetting teacherOpenCourseQuestionSetting = teacherOpenCourseQuestionSettingService.queryById(teacherOpenCourseQuestionSettingId);
return JsonResult.success(teacherOpenCourseQuestionSetting);
}
@GetMapping(MODEL + "/getValues.json")
@Function("teacherOpenCourseQuestionSetting.query")
public JsonResult<List<TeacherOpenCourseQuestionSetting>>getValues(TeacherOpenCourseQuestionSettingQuery param) {
List<TeacherOpenCourseQuestionSetting>list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
return JsonResult.success(list);
public JsonResult<List<TeacherOpenCourseQuestionSetting>> getValues(TeacherOpenCourseQuestionSettingQuery param) {
List<TeacherOpenCourseQuestionSetting> list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
return JsonResult.success(list);
}
/**
*
*
* @param ids
* @return
*/
@ -323,6 +421,7 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
*
* @param ids
* @return
*/
@ -336,6 +435,7 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
*
* @param ids
* @param pushStatus
* @return
@ -351,9 +451,10 @@ public class TeacherOpenCourseQuestionSettingController{
/**
*
* @param teacherOpenCourseId ID
* @param questionSettingId ID
* @param questionSettingType
*
* @param teacherOpenCourseId ID
* @param questionSettingId ID
* @param questionSettingType
* @return
*/
@PostMapping(MODEL + "/analysis.json")

Loading…
Cancel
Save