From dc326b3a42ee0c416e7c7e07f81cf0e4391352e2 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 29 十月 2024 12:14:51 +0800
Subject: [PATCH] 交卷后不能作答
---
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 81 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
index 14082e3..78a8613 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -1,7 +1,14 @@
package com.ycl.jxkg.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.domain.entity.Classes;
+import com.ycl.jxkg.domain.entity.ClassesUser;
+import com.ycl.jxkg.domain.vo.StudentSimpleVO;
+import com.ycl.jxkg.domain.vo.StudentVO;
+import com.ycl.jxkg.enums.general.ClassesStatusEnum;
import com.ycl.jxkg.mapper.ClassesMapper;
import com.ycl.jxkg.service.ClassesService;
import com.ycl.jxkg.base.Result;
@@ -9,12 +16,16 @@
import com.ycl.jxkg.domain.form.ClassesForm;
import com.ycl.jxkg.domain.vo.ClassesVO;
import com.ycl.jxkg.domain.query.ClassesQuery;
+import com.ycl.jxkg.service.ClassesUserService;
import com.ycl.jxkg.utils.PageUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -29,6 +40,8 @@
public class ClassesServiceImpl extends ServiceImpl<ClassesMapper, Classes> implements ClassesService {
private final ClassesMapper classesMapper;
+ private final WebContext webContext;
+ private final ClassesUserService classesUserService;
/**
* 娣诲姞
@@ -36,9 +49,23 @@
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public Result add(ClassesForm form) {
Classes entity = ClassesForm.getEntityByForm(form, null);
+ entity.setStatus(ClassesStatusEnum.NORMAL);
+ entity.setCreateUser(webContext.getCurrentUser().getId());
baseMapper.insert(entity);
+
+ List<Integer> teacherList = form.getTeacherList();
+ if (! CollectionUtils.isEmpty(teacherList)) {
+ for (Integer teacherUserId : teacherList) {
+ ClassesUser classesUser = new ClassesUser();
+ classesUser.setClassesId(entity.getId());
+ classesUser.setUserId(teacherUserId);
+ classesUser.setTeacher(Boolean.TRUE);
+ classesUserService.save(classesUser);
+ }
+ }
return Result.ok("娣诲姞鎴愬姛");
}
@@ -48,6 +75,7 @@
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public Result update(ClassesForm form) {
Classes entity = baseMapper.selectById(form.getId());
@@ -55,6 +83,21 @@
Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
BeanUtils.copyProperties(form, entity);
baseMapper.updateById(entity);
+
+ new LambdaUpdateChainWrapper<>(classesUserService.getBaseMapper())
+ .eq(ClassesUser::getClassesId, entity.getId())
+ .eq(ClassesUser::getTeacher, Boolean.TRUE)
+ .remove();
+ List<Integer> teacherList = form.getTeacherList();
+ if (! CollectionUtils.isEmpty(teacherList)) {
+ for (Integer teacherUserId : teacherList) {
+ ClassesUser classesUser = new ClassesUser();
+ classesUser.setClassesId(entity.getId());
+ classesUser.setUserId(teacherUserId);
+ classesUser.setTeacher(Boolean.TRUE);
+ classesUserService.save(classesUser);
+ }
+ }
return Result.ok("淇敼鎴愬姛");
}
@@ -88,7 +131,16 @@
@Override
public Result page(ClassesQuery query) {
IPage<ClassesVO> page = PageUtil.getPage(query, ClassesVO.class);
+ query.setUserId(webContext.getCurrentUser().getId());
baseMapper.getPage(page, query);
+
+ for (ClassesVO vo : page.getRecords()) {
+ List<StudentVO> teacherList = classesUserService.getTeacherListByClassesId(vo.getId());
+ List<Integer> teacherIds = teacherList.stream().map(StudentVO::getId).collect(Collectors.toList());
+ String teacherNamesStr = teacherList.stream().map(StudentVO::getRealName).collect(Collectors.joining(","));
+ vo.setTeacherList(teacherIds);
+ vo.setTeacherNamesStr(teacherNamesStr);
+ }
return Result.ok().data(page.getRecords()).total(page.getTotal());
}
@@ -116,4 +168,33 @@
.collect(Collectors.toList());
return Result.ok().data(vos);
}
+
+ @Override
+ public Result dissolution(Integer id) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Classes::getId, id)
+ .set(Classes::getStatus, ClassesStatusEnum.DISSOLUTION)
+ .update();
+ return Result.ok("瑙f暎鎴愬姛");
+ }
+
+
+ @Override
+ public Result myClassList() {
+ Integer userId = webContext.getCurrentUser().getId();
+ List<Classes> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .select(Classes::getId, Classes::getClassName)
+ .eq(Classes::getCreateUser, userId)
+ .list();
+ return Result.ok(list);
+ }
+
+ @Override
+ public Result recover(Integer id) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Classes::getId, id)
+ .set(Classes::getStatus, ClassesStatusEnum.NORMAL)
+ .update();
+ return Result.ok("鐝骇宸茬粡鎭㈠姝e父");
+ }
}
--
Gitblit v1.8.0