src/main/java/com/ycl/jxkg/controller/admin/UserController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/ClassesUserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ClassesUserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ycl/jxkg/controller/admin/UserController.java
@@ -46,6 +46,7 @@ private final WebContext webContext; private final Integer teacher = 2; private final Integer student = 1; @RequestMapping(value = "/page/list", method = RequestMethod.POST) public Result<PageInfo<UserResponseVO>> pageList(@RequestBody UserPageRequestVO model) { if(!student.equals(model.getRole())) { @@ -73,6 +74,20 @@ return Result.ok().data(studentVOS); } @RequestMapping(value = "/teacher/list", method = RequestMethod.GET) public Result<?> teacherList() { List<User> teacherList = new LambdaQueryChainWrapper<>(userService.getBaseMapper()) .eq(User::getRole, RoleEnum.TEACHER.getCode()) .orderByDesc(User::getCreateTime) .list(); List<StudentVO> teachers = teacherList.stream().map(item -> { StudentVO student = new StudentVO(); BeanUtils.copyProperties(item, student); return student; }).collect(Collectors.toList()); return Result.ok().data(teachers); } @RequestMapping(value = "/classes/students", method = RequestMethod.GET) public Result<com.ycl.jxkg.domain.vo.student.user.UserResponseVO> classesStudent(@RequestParam Integer classesId) { List<StudentVO> studentList = userService.classesStudent(classesId); src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java
@@ -27,5 +27,7 @@ /** */ private Integer userId; @TableField("teacher") /** 是否老师 */ private Boolean teacher; } src/main/java/com/ycl/jxkg/domain/form/ClassesForm.java
@@ -13,6 +13,7 @@ import lombok.Data; import java.util.Date; import java.util.List; /** * 班级表单 @@ -36,6 +37,9 @@ @ApiModelProperty("结束时间") private Date endTime; @ApiModelProperty("教师列表") private List<Integer> teacherList; @ApiModelProperty("备注") private String remark; src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java
@@ -5,6 +5,7 @@ import com.ycl.jxkg.domain.entity.Classes; import java.util.Date; import java.util.List; import com.ycl.jxkg.enums.general.ClassesStatusEnum; import org.springframework.lang.NonNull; @@ -23,6 +24,10 @@ /** 班级名称 */ private String className; /** 老师 */ private List<Integer> teacherList; private String teacherNamesStr; /** 创建人 */ private Integer createUser; private String createUserName; src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -10,6 +10,7 @@ import java.util.List; import com.ycl.jxkg.domain.vo.StudentExamInfoVO; import com.ycl.jxkg.domain.vo.StudentVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -57,4 +58,12 @@ * @return */ List<String> getClassesNameByUserId(@Param("userId") Integer userId); /** * 查询班级老师 * * @param id * @return */ List<StudentVO> getTeacherListByClassesId(@Param("id") Integer id); } src/main/java/com/ycl/jxkg/service/ClassesUserService.java
@@ -6,6 +6,8 @@ import com.ycl.jxkg.domain.form.ClassesUserForm; import com.ycl.jxkg.domain.form.EditClassesUserForm; import com.ycl.jxkg.domain.query.ClassesUserQuery; import com.ycl.jxkg.domain.vo.StudentVO; import java.util.List; /** @@ -71,4 +73,12 @@ * @return */ Result edit(EditClassesUserForm form); /** * 查询班级老师 * * @param id * @return */ List<StudentVO> getTeacherListByClassesId(Integer id); } src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -5,6 +5,7 @@ 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; @@ -15,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; @@ -36,6 +41,7 @@ private final ClassesMapper classesMapper; private final WebContext webContext; private final ClassesUserService classesUserService; /** * 添加 @@ -43,11 +49,25 @@ * @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)) { teacherList = new ArrayList<>(1); } teacherList.add(webContext.getCurrentUser().getId()); 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("添加成功"); } @@ -57,6 +77,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public Result update(ClassesForm form) { Classes entity = baseMapper.selectById(form.getId()); @@ -64,6 +85,23 @@ 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)) { teacherList = new ArrayList<>(1); } teacherList.add(webContext.getCurrentUser().getId()); 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("修改成功"); } @@ -99,6 +137,14 @@ 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()); } src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
@@ -6,6 +6,7 @@ import com.ycl.jxkg.domain.entity.ClassesUser; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.form.EditClassesUserForm; import com.ycl.jxkg.domain.vo.StudentVO; import com.ycl.jxkg.enums.RoleEnum; import com.ycl.jxkg.enums.UserStatusEnum; import com.ycl.jxkg.mapper.ClassesUserMapper; @@ -113,6 +114,11 @@ return Result.ok("修改成功"); } @Override public List<StudentVO> getTeacherListByClassesId(Integer id) { return baseMapper.getTeacherListByClassesId(id); } /** * 修改 * src/main/resources/mapper/ClassesUserMapper.xml
@@ -77,4 +77,11 @@ left join t_classes tc on tcu.classes_id = tc.id where user_id = #{userId} and tcu.deleted = 0 and tc.deleted =0 </select> <select id="getTeacherListByClassesId" resultType="com.ycl.jxkg.domain.vo.StudentVO"> SELECT DISTINCT tu.id, tu.real_name FROM t_user tu INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id AND tcu.classes_id = #{id} AND tcu.deleted = 0 AND tcu.teacher = 1 AND tu.deleted = 0 </select> </mapper>