|
|
@@ -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())){
|