Pārlūkot izejas kodu

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

dzx 7 mēneši atpakaļ
vecāks
revīzija
14e8fdb0b4

+ 1 - 1
src/main/java/com/xjrsoft/common/xss/XssHttpServletRequestWrapper.java

@@ -34,7 +34,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
 
     private String method;
 
-    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**", "/workflow/execute/*", "/oa/wfMeetingApply/update_meetingSummary", "/base/baseClassDynamics");
+    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**", "/workflow/execute/*", "/oa/wfMeetingApply/update_meetingSummary", "/base/baseClassDynamics", "/teacher/classInternshipDynamic", "/teacher/classHomework");
     //html过滤
     private final static HTMLFilter HTML_FILTER = new HTMLFilter();
 

+ 6 - 34
src/main/java/com/xjrsoft/module/teacher/controller/ClassHomeworkController.java

@@ -9,6 +9,8 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
+import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import com.xjrsoft.module.teacher.dto.*;
@@ -30,6 +32,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
 * @title: 教师为班级布置作业记录表
@@ -46,6 +50,7 @@ public class ClassHomeworkController {
 
     private final IClassHomeworkService classHomeworkService;
     private final IFileService fileService;
+    private final ICourseTableService courseTableService;
 
     @GetMapping(value = "/page-mobile")
     @ApiOperation(value="移动端查看作业记录表列表(分页)")
@@ -62,45 +67,12 @@ public class ClassHomeworkController {
     @SaCheckPermission("classhomework:detail")
     @XjrLog(value = "根据id查询教师为班级布置作业记录表信息")
     public RT<ClassHomeworkVo> info(@RequestParam Long id){
-        MPJLambdaWrapper<ClassHomework> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper
-                .disableSubLogicDel()
-                .select(ClassHomework::getId)
-                .select(ClassHomework.class,x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkVo.class).contains(x.getProperty()))
-                .select("(select\n" +
-                        "            group_concat(b.name)\n" +
-                        "        from class_homework_class a\n" +
-                        "            inner join base_class b on a.class_id = b.id\n" +
-                        "        where a.class_homework_id = t.id\n" +
-                        "        ) as class_id_cns")
-                .select("(select\n" +
-                        "            group_concat(a.class_id)\n" +
-                        "        from class_homework_class a\n" +
-                        "        where a.class_homework_id = t.id\n" +
-                        "       ) as class_ids")
-                .leftJoin(XjrUser.class, XjrUser::getId, ClassHomework::getTeacherId,
-                        wrapper -> wrapper
-                                .selectAs(XjrUser::getName, ClassHomeworkVo::getTeacherIdCn)
-                )
-                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, ClassHomework::getBaseCourseSubjectId,
-                        wrapper -> wrapper
-                                .selectAs(BaseCourseSubject::getName, ClassHomeworkVo::getBaseCourseSubjectIdCn)
-                )
-                .eq(ClassHomework::getId, id)
-                .orderByDesc(ClassHomework::getCreateDate)
-        ;
-
-        ClassHomeworkVo vo = classHomeworkService.selectJoinOne(ClassHomeworkVo.class, queryWrapper);
+        ClassHomeworkVo vo = classHomeworkService.infoRubAndHand(id);
 
         if (vo == null) {
             return RT.error("找不到此数据!");
         }
 
-        if(ObjectUtils.isNotEmpty(vo.getFolderId())){
-            List<File> files = fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, vo.getFolderId()));
-            vo.setFiles(files);
-        }
-
         return RT.ok(vo);
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/teacher/service/IClassHomeworkService.java

@@ -25,6 +25,8 @@ import java.util.List;
 public interface IClassHomeworkService extends MPJBaseService<ClassHomework> {
     IPage<ClassHomeworkPageVo>  pageClassHomework(ClassHomeworkPageDto dto);
 
+    ClassHomeworkVo infoRubAndHand(Long id);
+
     Boolean addClassHomework(AddClassHomeworkDto dto);
 
     List<ClassHomeworkReadListVo> listClassHomeworkRead(ClassHomeworkReadListDto dto);

+ 88 - 4
src/main/java/com/xjrsoft/module/teacher/service/impl/ClassHomeworkServiceImpl.java

@@ -20,6 +20,8 @@ import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseUserStudent;
 import com.xjrsoft.module.base.service.IBaseUserStudentService;
+import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.courseTable.mapper.CourseTableMapper;
 import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
 import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.User;
@@ -47,6 +49,7 @@ import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
 import com.xjrsoft.module.teacher.service.IClassHomeworkService;
 import com.xjrsoft.module.teacher.vo.ClassHomeworkPageVo;
 import com.xjrsoft.module.teacher.vo.ClassHomeworkReadListVo;
+import com.xjrsoft.module.teacher.vo.ClassHomeworkVo;
 import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
 import lombok.AllArgsConstructor;
 import org.apache.commons.collections.CollectionUtils;
@@ -86,6 +89,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
     private final XjrUserMapper xjrUserMapper;
     private final ClassHomeworkReadMapper classHomeworkReadMapper;
     private final ClassHomeworkClassMapper classHomeworkClassMapper;
+    private final CourseTableMapper courseTableMapper;
 
     @Override
     public IPage<ClassHomeworkPageVo> pageClassHomework(ClassHomeworkPageDto dto) {
@@ -133,10 +137,10 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                         wrapper -> wrapper
                                 .selectAs(XjrUser::getName, ClassHomeworkPageVo::getTeacherIdCn)
                         )
-                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, ClassHomework::getBaseCourseSubjectId,
-                        wrapper -> wrapper
-                                .selectAs(BaseCourseSubject::getName, ClassHomeworkPageVo::getBaseCourseSubjectIdCn)
-                )
+//                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, ClassHomework::getBaseCourseSubjectId,
+//                        wrapper -> wrapper
+//                                .selectAs(BaseCourseSubject::getName, ClassHomeworkPageVo::getBaseCourseSubjectIdCn)
+//                )
                 .eq(ObjectUtils.isNotEmpty(dto.getBaseCourseSubjectId()), ClassHomework::getBaseCourseSubjectId, dto.getBaseCourseSubjectId())
                 .ge(ObjectUtils.isNotEmpty(dto.getStartDate()), ClassHomework::getCreateDate, dto.getStartDate())
                 .le(ObjectUtils.isNotEmpty(dto.getEndDate()), ClassHomework::getCreateDate, dto.getEndDate())
@@ -155,7 +159,24 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
 
         IPage<ClassHomeworkPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), ClassHomeworkPageVo.class, queryWrapper);
 
+        // 获取所有的课程
+        MPJLambdaWrapper<CourseTable> courseTableMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        courseTableMPJLambdaWrapper
+                .distinct()
+                .selectAs(CourseTable::getCourseId, CourseTable::getCourseId)
+                .selectAs(CourseTable::getCourseName, CourseTable::getCourseName)
+                ;
+
+        List<CourseTable> courseTables = courseTableMapper.selectJoinList(CourseTable.class, courseTableMPJLambdaWrapper);
+        Map<Long, String> courseTableMap = courseTables.stream()
+                .collect(Collectors.toMap(CourseTable::getCourseId, CourseTable::getCourseName, (n1, n2) -> n1));
+
         for (ClassHomeworkPageVo vo : page.getRecords()){
+            if(ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)){
+                String baseCourseSubjectIdCn = courseTableMap.get(vo.getBaseCourseSubjectId());
+                vo.setBaseCourseSubjectIdCn(baseCourseSubjectIdCn);
+            }
+
             if(ObjectUtils.isNotEmpty(vo.getFolderId())){
                 List<File> files = fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, vo.getFolderId()));
                 vo.setFiles(files);
@@ -165,6 +186,66 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         return page;
     }
 
+    @Override
+    public ClassHomeworkVo infoRubAndHand(Long id) {
+        MPJLambdaWrapper<ClassHomework> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .disableSubLogicDel()
+                .select(ClassHomework::getId)
+                .select(ClassHomework.class,x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkVo.class).contains(x.getProperty()))
+                .select("(select\n" +
+                        "            group_concat(b.name)\n" +
+                        "        from class_homework_class a\n" +
+                        "            inner join base_class b on a.class_id = b.id\n" +
+                        "        where a.class_homework_id = t.id\n" +
+                        "        ) as class_id_cns")
+                .select("(select\n" +
+                        "            group_concat(a.class_id)\n" +
+                        "        from class_homework_class a\n" +
+                        "        where a.class_homework_id = t.id\n" +
+                        "       ) as class_ids")
+                .leftJoin(XjrUser.class, XjrUser::getId, ClassHomework::getTeacherId,
+                        wrapper -> wrapper
+                                .selectAs(XjrUser::getName, ClassHomeworkVo::getTeacherIdCn)
+                )
+                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, ClassHomework::getBaseCourseSubjectId,
+                        wrapper -> wrapper
+                                .selectAs(BaseCourseSubject::getName, ClassHomeworkVo::getBaseCourseSubjectIdCn)
+                )
+                .eq(ClassHomework::getId, id)
+                .orderByDesc(ClassHomework::getCreateDate)
+        ;
+
+        ClassHomeworkVo vo = this.selectJoinOne(ClassHomeworkVo.class, queryWrapper);
+
+        if (vo == null) {
+            return vo;
+        }
+
+        MPJLambdaWrapper<CourseTable> courseTableMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        courseTableMPJLambdaWrapper
+                .distinct()
+                .selectAs(CourseTable::getCourseId, CourseTable::getCourseId)
+                .selectAs(CourseTable::getCourseName, CourseTable::getCourseName)
+        ;
+
+        List<CourseTable> courseTables = courseTableMapper.selectJoinList(CourseTable.class, courseTableMPJLambdaWrapper);
+        Map<Long, String> courseTableMap = courseTables.stream()
+                .collect(Collectors.toMap(CourseTable::getCourseId, CourseTable::getCourseName, (n1, n2) -> n1));
+
+        if(ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)){
+            String baseCourseSubjectIdCn = courseTableMap.get(vo.getBaseCourseSubjectId());
+            vo.setBaseCourseSubjectIdCn(baseCourseSubjectIdCn);
+        }
+
+        if(ObjectUtils.isNotEmpty(vo.getFolderId())){
+            List<File> files = fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, vo.getFolderId()));
+            vo.setFiles(files);
+        }
+
+        return vo;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean addClassHomework(AddClassHomeworkDto dto) {
@@ -266,8 +347,11 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         xjrUserMPJLambdaWrapper
                 .selectAs(XjrUser::getId, ClassHomeworkReadListVo::getUserId)
                 .selectAs(XjrUser::getName, ClassHomeworkReadListVo::getUserIdCn)
+                .selectAs(BaseStudentSchoolRoll::getClassId, ClassHomeworkReadListVo::getClassId)
+                .selectAs(BaseClass::getName, ClassHomeworkReadListVo::getClassIdCn)
                 .select("0 as is_read")
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
+                .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
         ;
 
         if(ObjectUtils.isEmpty(dto.getClassId())){

+ 5 - 0
src/main/java/com/xjrsoft/module/teacher/vo/ClassHomeworkReadListVo.java

@@ -31,6 +31,11 @@ public class ClassHomeworkReadListVo {
     @ApiModelProperty("已读用户主键id")
     private String userIdCn;
 
+    @ApiModelProperty("已读用户班级主键id")
+    private Long classId;
+    @ApiModelProperty("已读用户班级主键id")
+    private String classIdCn;
+
     @ApiModelProperty("阅读状态(0:未读,1:已读)")
     private Integer isRead;
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/teacher/vo/ClassHomeworkVo.java

@@ -25,6 +25,11 @@ public class ClassHomeworkVo {
     */
     @ApiModelProperty("主键编号")
     private Long id;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createDate;
     /**
     * 教师id
     */