From 180b752fc5857a004088edbfd505894122c40049 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期三, 30 十月 2024 17:07:12 +0800
Subject: [PATCH] 完成在线培训一个会议多个班级的功能

---
 src/main/java/com/ycl/jxkg/service/ClassesService.java             |    7 ++
 src/main/java/com/ycl/jxkg/domain/vo/MeetClassesVo.java            |   16 +++++
 src/main/java/com/ycl/jxkg/domain/entity/MeetClasses.java          |   19 ++++++
 src/main/java/com/ycl/jxkg/service/MeetService.java                |    4 +
 src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java |    7 ++
 src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java    |    7 ++
 src/main/java/com/ycl/jxkg/controller/admin/MeetController.java    |    7 ++
 src/main/java/com/ycl/jxkg/domain/form/MeetForm.java               |    3 
 src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java       |   29 ++++++++-
 src/main/java/com/ycl/jxkg/mapper/MeetClassesMapper.java           |   22 +++++++
 10 files changed, 115 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
index c371fbd..7cc873a 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
@@ -100,4 +100,11 @@
         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);
+    }
+
 }
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java b/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
index 5ba1a30..ae62635 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/MeetController.java
@@ -1,5 +1,6 @@
 package com.ycl.jxkg.controller.admin;
 
+import com.ycl.jxkg.domain.vo.MeetClassesVo;
 import com.ycl.jxkg.group.Update;
 import com.ycl.jxkg.group.Add;
 import org.springframework.validation.annotation.Validated;
@@ -84,4 +85,10 @@
         return meetService.getStudentList(meetId, keyword);
     }
 
+    @PutMapping("/edit/meetClasses")
+    @ApiOperation(value = "淇敼浼氳鐝骇", notes = "淇敼浼氳鐝骇")
+    public Result editMeetClasses(@RequestBody @Validated(Update.class)MeetClassesVo meetClassesVo) {
+        return meetService.editMeetClasses(meetClassesVo);
+    }
+
 }
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/MeetClasses.java b/src/main/java/com/ycl/jxkg/domain/entity/MeetClasses.java
new file mode 100644
index 0000000..ccb5d67
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/entity/MeetClasses.java
@@ -0,0 +1,19 @@
+package com.ycl.jxkg.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.jxkg.domain.base.AbsEntity;
+import lombok.Data;
+
+@Data
+@TableName("t_meet_classes")
+public class MeetClasses extends AbsEntity {
+    private static final long serialVersionUID = 1L;
+
+    @TableField("meet_id")
+    /** 浼氳id */
+    private Integer meetId;
+    @TableField("meet_id")
+    /** 鐝骇id */
+    private Integer classId;
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java b/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
index e6ea851..371587c 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/MeetForm.java
@@ -34,9 +34,8 @@
     @ApiModelProperty("浼氳灏侀潰")
     private String meetCover;
 
-    @NotNull(message = "鐝骇id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("鐝骇id")
-    private Integer classesId;
+    private List<Integer> classesIds;
 
     @ApiModelProperty("鍒涘缓浜�")
     private Integer createUser;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/MeetClassesVo.java b/src/main/java/com/ycl/jxkg/domain/vo/MeetClassesVo.java
new file mode 100644
index 0000000..cd8d1bd
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/MeetClassesVo.java
@@ -0,0 +1,16 @@
+package com.ycl.jxkg.domain.vo;
+
+import com.ycl.jxkg.domain.base.AbsVo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MeetClassesVo extends AbsVo {
+    private Integer meetId;
+    private List<Integer> changeIds;
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/MeetClassesMapper.java b/src/main/java/com/ycl/jxkg/mapper/MeetClassesMapper.java
new file mode 100644
index 0000000..3771032
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/mapper/MeetClassesMapper.java
@@ -0,0 +1,22 @@
+package com.ycl.jxkg.mapper;
+
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.entity.MeetClasses;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+@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);
+}
diff --git a/src/main/java/com/ycl/jxkg/service/ClassesService.java b/src/main/java/com/ycl/jxkg/service/ClassesService.java
index 3468cf5..fc19bea 100644
--- a/src/main/java/com/ycl/jxkg/service/ClassesService.java
+++ b/src/main/java/com/ycl/jxkg/service/ClassesService.java
@@ -94,4 +94,11 @@
      */
     Result recover(Integer id);
 
+    /**
+     * 鎭㈠姝e父
+     *
+     * @param meetId
+     * @return
+     */
+    List<Integer> listByMeetId(Integer meetId);
 }
diff --git a/src/main/java/com/ycl/jxkg/service/MeetService.java b/src/main/java/com/ycl/jxkg/service/MeetService.java
index 35b28aa..2946bcb 100644
--- a/src/main/java/com/ycl/jxkg/service/MeetService.java
+++ b/src/main/java/com/ycl/jxkg/service/MeetService.java
@@ -5,6 +5,8 @@
 import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.domain.form.MeetForm;
 import com.ycl.jxkg.domain.query.MeetQuery;
+import com.ycl.jxkg.domain.vo.MeetClassesVo;
+
 import java.util.List;
 
 /**
@@ -82,4 +84,6 @@
      * @return
      */
     Result getStudentClasses();
+
+    Result editMeetClasses(MeetClassesVo meetClassesVo);
 }
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 78a8613..80d81db 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ycl.jxkg.domain.vo.StudentVO;
 import com.ycl.jxkg.enums.general.ClassesStatusEnum;
 import com.ycl.jxkg.mapper.ClassesMapper;
+import com.ycl.jxkg.mapper.MeetClassesMapper;
 import com.ycl.jxkg.service.ClassesService;
 import com.ycl.jxkg.base.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -42,6 +43,7 @@
     private final ClassesMapper classesMapper;
     private final WebContext webContext;
     private final ClassesUserService classesUserService;
+    private final MeetClassesMapper meetClassesMapper;
 
     /**
      * 娣诲姞
@@ -197,4 +199,9 @@
                 .update();
         return Result.ok("鐝骇宸茬粡鎭㈠姝e父");
     }
+
+    @Override
+    public List<Integer> listByMeetId(Integer meetId) {
+        return meetClassesMapper.getClassListByMeetId(meetId);
+    }
 }
diff --git a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
index 1474c95..8af2aad 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -9,18 +9,17 @@
 import com.ycl.jxkg.base.SystemCode;
 import com.ycl.jxkg.context.WebContext;
 import com.ycl.jxkg.domain.entity.Meet;
+import com.ycl.jxkg.domain.entity.MeetClasses;
 import com.ycl.jxkg.domain.entity.MeetStudent;
 import com.ycl.jxkg.domain.entity.StudyRecord;
 import com.ycl.jxkg.domain.form.MeetForm;
 import com.ycl.jxkg.domain.query.MeetQuery;
 import com.ycl.jxkg.domain.vo.ClassesVO;
+import com.ycl.jxkg.domain.vo.MeetClassesVo;
 import com.ycl.jxkg.domain.vo.MeetVO;
 import com.ycl.jxkg.domain.vo.StudentSimpleVO;
 import com.ycl.jxkg.enums.MeetStatusEnum;
-import com.ycl.jxkg.mapper.ClassesUserMapper;
-import com.ycl.jxkg.mapper.MeetMapper;
-import com.ycl.jxkg.mapper.MeetStudentMapper;
-import com.ycl.jxkg.mapper.StudyRecordMapper;
+import com.ycl.jxkg.mapper.*;
 import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg;
 import com.ycl.jxkg.rabbitmq.product.Producer;
 import com.ycl.jxkg.service.MeetService;
@@ -55,6 +54,7 @@
     private final Producer producer;
     private final MeetStudentMapper meetStudentMapper;
     private final StudyRecordMapper studyRecordMapper;
+    private final MeetClassesMapper meetClassesMapper;
     /**
      * 娣诲姞
      * @param form
@@ -70,6 +70,13 @@
         if (baseMapper.insert(entity) > 0) {
             this.sendMQ(entity, 0);
         }
+        // 鍚戜細璁彮绾т腑闂磋〃涓彃鍏ユ暟鎹�
+        form.getClassesIds().stream().forEach(classId -> {
+            MeetClasses meetClasses = new MeetClasses();
+            meetClasses.setMeetId(entity.getId());
+            meetClasses.setClassId(classId);
+            meetClassesMapper.insert(meetClasses);
+        });
         return Result.ok("娣诲姞鎴愬姛");
     }
 
@@ -243,6 +250,20 @@
         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("淇敼鎴愬姛");
+    }
+
     /**
      * 鍙戦�乵q娑堟伅
      *

--
Gitblit v1.8.0