diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/annotation/ExcelRequireIgnore.java b/admin-core/src/main/java/com/ibeetl/admin/core/annotation/ExcelRequireIgnore.java index 81abbffe..3cdd4589 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/annotation/ExcelRequireIgnore.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/annotation/ExcelRequireIgnore.java @@ -17,4 +17,10 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface ExcelRequireIgnore { + + /** + * 如果为空,给默认值 + * @return + */ + String defaultValue() default ""; } diff --git a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java index 419251d4..bed1f1b1 100644 --- a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java +++ b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java @@ -96,7 +96,10 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean { "/wx" // "/upload/**" ).order(1); - registry.addInterceptor(new RedisTokenInterceptor(stringRedisTemplate)).addPathPatterns("/**").order(0); + registry.addInterceptor(new RedisTokenInterceptor(stringRedisTemplate)).addPathPatterns( + "/**", + "/api/**.do" + ).order(0); } //配置图片访问路径转换 diff --git a/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java b/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java index 020932cf..801b849d 100644 --- a/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java +++ b/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java @@ -64,6 +64,7 @@ public class MyValidateExcelCellDataListener implements ReadListener { // 如果有忽略必传的注解,并且没有查询到值则直接跳过必传验证 if (requireIgnore != null && fieldValue == null) { + ReflectUtil.setFieldValue(bean, field, requireIgnore.defaultValue()); continue; } // 空值判断 diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeResourcesQuestionImport.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeResourcesQuestionImport.java index df0ba196..d074292b 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeResourcesQuestionImport.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeResourcesQuestionImport.java @@ -7,7 +7,6 @@ import lombok.experimental.FieldNameConstants; import java.math.BigDecimal; -import static cn.hutool.core.util.ObjectUtil.defaultIfNull; import static cn.jlw.util.excel.ExcelUtil.integerValuesOf; import static cn.jlw.util.excel.ExcelUtil.longValuesOf; @@ -87,12 +86,12 @@ public class TeacherOpenCourseMergeResourcesQuestionImport { .questionScore(importPojo.getQuestionScore()) .questionStem(importPojo.getQuestionStem()) .questionAnswer(importPojo.getQuestionAnswer().toUpperCase()) - .questionOptionA(defaultIfNull(importPojo.getQuestionOptionA(), "").toUpperCase()) - .questionOptionB(defaultIfNull(importPojo.getQuestionOptionB(), "").toUpperCase()) - .questionOptionC(defaultIfNull(importPojo.getQuestionOptionC(), "").toUpperCase()) - .questionOptionD(defaultIfNull(importPojo.getQuestionOptionD(), "").toUpperCase()) - .questionOptionE(defaultIfNull(importPojo.getQuestionOptionE(), "").toUpperCase()) - .questionAnalysis(defaultIfNull(importPojo.getQuestionAnalysis(), "")) + .questionOptionA(importPojo.getQuestionOptionA().toUpperCase()) + .questionOptionB(importPojo.getQuestionOptionB().toUpperCase()) + .questionOptionC(importPojo.getQuestionOptionC().toUpperCase()) + .questionOptionD(importPojo.getQuestionOptionD().toUpperCase()) + .questionOptionE(importPojo.getQuestionOptionE().toUpperCase()) + .questionAnalysis(importPojo.getQuestionAnalysis()) .questionStatus(1) .build(); } diff --git a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java index d118b487..a4ed6b10 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java @@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.service.CoreUserService; -import com.ibeetl.jlw.dao.StatisticalAnalysisDao; -import com.ibeetl.jlw.dao.SysLogDao; -import com.ibeetl.jlw.dao.TeacherOpenCourseDao; -import com.ibeetl.jlw.dao.UniversitiesCollegesDao; +import com.ibeetl.jlw.dao.*; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.enums.ChatLogSendTypeEnum; import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum; @@ -57,6 +54,7 @@ public class StatisticalAnalysisService { @Autowired private HandsOnAchievementService handsOnAchievementService; @Autowired private TeacherOpenCourseChatLogService teacherOpenCourseChatLogService; @Autowired private TeacherOpenCourseDao teacherOpenCourseService; + @Autowired private TeacherOpenCourseQuestionSettingDao teacherOpenCourseQuestionSettingDao; private static final String PATTERN = "(?<=\"code\":\\[\").*?(?=\"\\],)"; @@ -240,7 +238,10 @@ public class StatisticalAnalysisService { //习题总数 TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery(); teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseId(teacherOpenCourseId); - List courseQuestionSettings = teacherOpenCourseQuestionSettingService.getValues(teacherOpenCourseQuestionSettingQuery); + List courseQuestionSettings = teacherOpenCourseQuestionSettingDao.createLambdaQuery() + .andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseId, teacherOpenCourseId) + .andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingStatus, 1) + .select(); List collect1 = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE)).collect(Collectors.toList()); data.put("subjectNum", collect1.size()); //案例 diff --git a/web/src/main/java/com/ibeetl/jlw/service/api/student/ApiStudentService.java b/web/src/main/java/com/ibeetl/jlw/service/api/student/ApiStudentService.java index effff637..e84a6653 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/api/student/ApiStudentService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/api/student/ApiStudentService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service.api.student; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import com.ibeetl.admin.core.conf.PasswordConfig; @@ -28,6 +29,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static cn.jlw.util.CacheUserUtil.getStudent; import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; @@ -86,9 +88,13 @@ public class ApiStudentService { // 我的开课信息 TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery = new TeacherOpenCourseMergeStudentQuery(); teacherOpenCourseMergeStudentQuery.setStudentId(studentId); + teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1); List myOpenCourseList = teacherOpenCourseMergeStudentDao .getValuesByQueryNotWithPermission(teacherOpenCourseMergeStudentQuery); + // 过滤调主表已经删除的数据 + myOpenCourseList = CollectionUtil.emptyIfNull(myOpenCourseList).stream().filter(item -> item.getTeacherOpenCourseInfo() != null).collect(Collectors.toList()); + //饼状图数据 //todo查询数据库 // diff --git a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java index 4aff4930..0ccbe276 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java @@ -7,7 +7,10 @@ import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.jlw.dao.TeacherDao; import com.ibeetl.jlw.dao.TeacherMergeApplicationDao; -import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.entity.ResourcesApplication; +import com.ibeetl.jlw.entity.Teacher; +import com.ibeetl.jlw.entity.TeacherOpenCourseMergeTeacher; +import com.ibeetl.jlw.entity.TeacherOpenCourseNotice; import com.ibeetl.jlw.entity.api.CurrentUserInfo; import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData; import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData; @@ -90,8 +93,12 @@ public class ApiTeacherService { teacherOpenCourseMergeTeacherQuery.setTeacherId(teacherId); List openCourseList = teacherOpenCourseMergeTeacherService.getValues(teacherOpenCourseMergeTeacherQuery); + // 如果开课主表已经不存在则过滤掉 + List courseMergeTeacherList = CollectionUtil.emptyIfNull(openCourseList); + courseMergeTeacherList = courseMergeTeacherList.stream().filter(item -> item.getTeacherOpenCourse() != null).collect(Collectors.toList()); + // 实训评阅列表查询 - List collect = openCourseList.stream().map(TeacherOpenCourseMergeTeacher::getTeacherOpenCourseId).collect(Collectors.toList()); + List collect = courseMergeTeacherList.stream().map(TeacherOpenCourseMergeTeacher::getTeacherOpenCourseId).collect(Collectors.toList()); List> reportList = studentHandsOnTaskReportService.getReportList(collect); @@ -99,7 +106,7 @@ public class ApiTeacherService { .toDoList(reportList) .noticeList(noticeList) .myApplicationList(resourcesApplications) - .myOpenCourseList(openCourseList) + .myOpenCourseList(courseMergeTeacherList) .build(); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java index 7920f1d0..fa4039cb 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java @@ -509,7 +509,7 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr */ @SneakyThrows @PostMapping(API + "/importBatchTemplate.do") - public JsonResult importBatchTemplate(MultipartFile file, @SCoreUser CoreUser coreUser) { + public JsonResult importBatchTemplate(@NotNull(message = "导入的文件不能为空!") MultipartFile file, @SCoreUser CoreUser coreUser) { Assert.isNull(getStudent(), "学生无法访问该接口"); diff --git a/web/src/main/java/com/ibeetl/jlw/web/api/IndexBaseController.java b/web/src/main/java/com/ibeetl/jlw/web/api/IndexBaseController.java index 417d3e8e..a94aefaf 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/api/IndexBaseController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/api/IndexBaseController.java @@ -1,7 +1,9 @@ package com.ibeetl.jlw.web.api; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.Interceptor.TStudent; import cn.jlw.Interceptor.TTeacher; @@ -66,6 +68,9 @@ public class IndexBaseController { */ @PostMapping(API + "/myPageApplication.do") public JsonResult myPageApplicationList(PageParam param, @TStudent Student student, @TTeacher Teacher teacher) { + + Assert.isFalse(ObjectUtil.isAllEmpty(student, teacher), "此接口只允许学生或者教师访问!"); + ResourcesApplicationQuery resourcesApplicationQuery = new ResourcesApplicationQuery(); PageQuery pageQuery = resourcesApplicationQuery.getPageQuery(); ofDefault(pageQuery, param);