src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
@@ -100,11 +100,5 @@ return classesService.myClassList(); } @GetMapping("/listByMeetId/{meetId}") @ApiOperation(value = "根据会议ID获取班级列表", notes = "根据会议ID获取班级列表") public Result listByMeetId(@PathVariable("meetId") Integer meetId) { List<Integer> classIds = classesService.listByMeetId(meetId); return Result.ok(classIds); } } src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
@@ -44,11 +44,13 @@ public Result update(@RequestBody @Validated(Update.class) MeetForm form) { return meetService.update(form); } @PutMapping("/start") @ApiOperation(value = "开始上课", notes = "开始上课") public Result start(@RequestBody @Validated(Update.class) MeetForm form) { return meetService.start(form); } @DeleteMapping("/{id}") @ApiOperation(value = "ID删除", notes = "ID删除") public Result removeById(@PathVariable("id") String id) { @@ -83,12 +85,6 @@ @ApiOperation(value = "查找班级学生", notes = "查找班级学生") public Result getStudentList(@PathVariable("meetId") Integer meetId, String keyword) { return meetService.getStudentList(meetId, keyword); } @PutMapping("/edit/meetClasses") @ApiOperation(value = "修改会议班级", notes = "修改会议班级") public Result editMeetClasses(@RequestBody @Validated(Update.class)MeetClassesVo meetClassesVo) { return meetService.editMeetClasses(meetClassesVo); } } src/main/java/com/ycl/jxkg/domain/base/AbsOnlyIdEntity.java
New file @@ -0,0 +1,18 @@ package com.ycl.jxkg.domain.base; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; /** * @author xp * @date 2022/11/29 */ @Data public abstract class AbsOnlyIdEntity { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; } src/main/java/com/ycl/jxkg/domain/entity/MeetClasses.java
@@ -3,17 +3,19 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.jxkg.domain.base.AbsEntity; import com.ycl.jxkg.domain.base.AbsOnlyIdEntity; import lombok.Data; @Data @TableName("t_meet_classes") public class MeetClasses extends AbsEntity { public class MeetClasses extends AbsOnlyIdEntity { private static final long serialVersionUID = 1L; @TableField("meet_id") /** 会议id */ private Integer meetId; @TableField("meet_id") @TableField("classes_id") /** 班级id */ private Integer classId; private Integer classesId; } src/main/java/com/ycl/jxkg/domain/vo/BaseOneToManyVO.java
New file @@ -0,0 +1,11 @@ package com.ycl.jxkg.domain.vo; import lombok.Data; @Data public class BaseOneToManyVO { private Integer id; private String name; } src/main/java/com/ycl/jxkg/domain/vo/MeetVO.java
@@ -28,7 +28,7 @@ private String meetCover; /** 班级id */ private Integer classesId; private List<Integer> classesIds; private String classesName; /** 老师列表 */ src/main/java/com/ycl/jxkg/mapper/MeetClassesMapper.java
@@ -1,5 +1,6 @@ package com.ycl.jxkg.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.entity.MeetClasses; import org.apache.ibatis.annotations.Delete; @@ -11,12 +12,5 @@ @Mapper public interface MeetClassesMapper extends BaseMapper<MeetClasses> { @Insert("insert into t_meet_classes(meet_id, classes_id) values (#{meetId}, #{classId})") int insert(MeetClasses meetClasses); @Select("select classes_id from t_meet_classes where meet_id = #{meetId}") List<Integer> getClassListByMeetId(Integer meetId); @Delete("delete from t_meet_classes where meet_id = #{meetId}") int deleteByMeetId(Integer meetId); } src/main/java/com/ycl/jxkg/service/ClassesService.java
@@ -94,11 +94,4 @@ */ Result recover(Integer id); /** * 恢复正常 * * @param meetId * @return */ List<Integer> listByMeetId(Integer meetId); } src/main/java/com/ycl/jxkg/service/MeetService.java
@@ -85,5 +85,4 @@ */ Result getStudentClasses(); Result editMeetClasses(MeetClassesVo meetClassesVo); } src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -200,8 +200,4 @@ return Result.ok("班级已经恢复正常"); } @Override public List<Integer> listByMeetId(Integer meetId) { return meetClassesMapper.getClassListByMeetId(meetId); } } src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -29,6 +29,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import java.util.Date; @@ -61,6 +62,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public Result add(MeetForm form) { Meet entity = MeetForm.getEntityByForm(form, null); entity.setStatus(MeetStatusEnum.Wait.getCode()); @@ -71,10 +73,10 @@ this.sendMQ(entity, 0); } // 向会议班级中间表中插入数据 form.getClassesIds().stream().forEach(classId -> { form.getClassesIds().forEach(classId -> { MeetClasses meetClasses = new MeetClasses(); meetClasses.setMeetId(entity.getId()); meetClasses.setClassId(classId); meetClasses.setClassesId(classId); meetClassesMapper.insert(meetClasses); }); return Result.ok("添加成功"); @@ -91,6 +93,20 @@ // 为空抛IllegalArgumentException,做全局异常处理 Assert.notNull(entity, "记录不存在"); BeanUtils.copyProperties(form, entity); // 先删除再新增 new LambdaUpdateChainWrapper<>(meetClassesMapper) .eq(MeetClasses::getMeetId, entity.getId()) .remove(); // 向会议班级中间表中插入数据 form.getClassesIds().forEach(classId -> { MeetClasses meetClasses = new MeetClasses(); meetClasses.setMeetId(entity.getId()); meetClasses.setClassesId(classId); meetClassesMapper.insert(meetClasses); }); // 如果修改成功发送mq消息 if (baseMapper.updateById(entity) > 0) { this.sendMQ(entity, entity.getUpdateVersion()); @@ -132,7 +148,11 @@ query.setTeacherId(id); IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class); baseMapper.getPage(page, query); page.getRecords().forEach(vo -> { if (!CollectionUtils.isEmpty(vo.getTeacherNames())) { vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("、"))); } }); return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -248,20 +268,6 @@ Integer userId = webContext.getCurrentUser().getId(); List<ClassesVO> classes = classesUserMapper.getClassesByUserId1(userId); return Result.ok().data(classes); } @Override public Result editMeetClasses(MeetClassesVo meetClassesVo) { // 删除该会议所有班级 meetClassesMapper.deleteByMeetId(meetClassesVo.getMeetId()); // 为该会议新增班级 meetClassesVo.getChangeIds().forEach(id -> { MeetClasses meetClasses = new MeetClasses(); meetClasses.setMeetId(meetClassesVo.getMeetId()); meetClasses.setClassId(id); meetClassesMapper.insert(meetClasses); }); return Result.ok("修改成功"); } /** src/main/resources/mapper/MeetMapper.xml
@@ -16,11 +16,11 @@ <resultMap id="PageMap" type="com.ycl.jxkg.domain.vo.MeetVO"> <result column="meet_name" property="meetName" /> <result column="meet_cover" property="meetCover" /> <result column="classes_id" property="classesId" /> <result column="start_time" property="startTime" /> <result column="end_time" property="endTime" /> <result column="status" property="status" /> <collection property="teacherNames" ofType="string" column="classes_id" select="getTeacherNames"></collection> <collection property="classesIds" ofType="string" column="classes_id" select="getTeacherNames"></collection> </resultMap> <select id="getTeacherNames" resultType="string"> @@ -48,7 +48,6 @@ SELECT TM.meet_name, TM.meet_cover, TM.classes_id, TM.create_user, TM.start_time, TM.end_time,