Browse Source

Merge remote-tracking branch 'origin/master' into ywx

tags/正式3.2.0
雍文秀 2 years ago
parent
commit
9337f6c064

+ 14
- 0
slive/src/main/java/com/xhkjedu/slive/controller/xz/XzController.java View File

@@ -163,4 +163,18 @@ public class XzController {
163 163
         return new ResultVo(0, "成功删除单个课程信息");
164 164
     }
165 165
 
166
+    /**
167
+     * @Description 修改课程表单个单元格数据
168
+     * @Param [kjTeaVo]
169
+     * @Return com.xhkjedu.vo.ResultVo
170
+     * @Author wn
171
+     * @Date 2022/4/2 17:11
172
+     **/
173
+    @PostMapping("/kcbup")
174
+    public ResultVo updateXzkjDyg(@RequestBody XzDateKjTeaVo kjTeaVo){
175
+        N_Utils.validation(new Object[]{kjTeaVo.getCourseid(),"课程id",1,kjTeaVo.getClassid(),"班级id",1,kjTeaVo.getCreateid(),"操作人id",1});
176
+        xzService.updateXzKjDyg(kjTeaVo);
177
+        return new ResultVo(0, "成功修改单个课程信息");
178
+    }
179
+
166 180
 }

+ 3
- 0
slive/src/main/java/com/xhkjedu/slive/mapper/gradeclass/ClassStudentMapper.java View File

@@ -19,4 +19,7 @@ public interface ClassStudentMapper extends TkMapper<TClassStudent> {
19 19
 
20 20
     //添加
21 21
     void save(@Param("student") TClassStudent student);
22
+
23
+    //保存班级学生到指定班级
24
+    void saveAllClassStu(@Param("student") TClassStudent student,@Param("zbclassid") Integer zbclassid);
22 25
 }

+ 6
- 0
slive/src/main/java/com/xhkjedu/slive/mapper/gradeclass/GroupMapper.java View File

@@ -1,6 +1,7 @@
1 1
 package com.xhkjedu.slive.mapper.gradeclass;
2 2
 
3 3
 import com.xhkjedu.slive.base.TkMapper;
4
+import com.xhkjedu.slive.model.gradeclass.TClassStudent;
4 5
 import com.xhkjedu.slive.model.gradeclass.TGroup;
5 6
 import org.apache.ibatis.annotations.Param;
6 7
 import org.springframework.stereotype.Repository;
@@ -9,4 +10,9 @@ import org.springframework.stereotype.Repository;
9 10
 public interface GroupMapper extends TkMapper<TGroup> {
10 11
     //更新分组人数
11 12
     void updateNum(@Param("groupid") Integer groupid);
13
+
14
+    //取班级对应的全班学生分组
15
+    Integer getGroupIdByClassid(@Param("classid") Integer classid);
16
+    //保存全班分组学生
17
+    void saveAllClassGroupStu(@Param("student") TClassStudent student, @Param("zbclassid") Integer zbclassid,@Param("zbgroupid") Integer zbgroupid);
12 18
 }

+ 4
- 0
slive/src/main/java/com/xhkjedu/slive/mapper/liveplay/CourseMapper.java View File

@@ -106,4 +106,8 @@ public interface CourseMapper extends TkMapper<LCourse> {
106 106
     void deleteCourseClassByCourseid(@Param("courseid") Integer courseid);
107 107
     //获取指定课节班级日期下的课程信息
108 108
     CourseVo getCourseByKjidAndClassid(@Param("kjid") Integer kjid,@Param("classid") Integer classid,@Param("seldate") String seldate);
109
+    //获取指定指定日期教师课节下教师的直播课
110
+    CourseVo getCourseByDateKjTeacher(@Param("kjid") Integer kjid,@Param("teacherid") Integer teacherid,@Param("seldate") String seldate);
111
+    //更改课程相关任课教师
112
+    void updateCourseSectionClassTeacher(@Param("courseid") Integer courseid,@Param("teacherid") Integer teacherid,@Param("subjectid") String subjectid);
109 113
 }

+ 0
- 3
slive/src/main/java/com/xhkjedu/slive/mapper/xz/XzMapper.java View File

@@ -42,9 +42,6 @@ public interface XzMapper extends TkMapper<LXz> {
42 42
     //保存完行政直播后生成的课节基本信息
43 43
     List<Map> listXzKjsAfterSaveXz(@Param("xzid") Integer xzid);
44 44
 
45
-    //获取行政直播课程表
46
-    List<XzDateVo> listXzKjDetail(@Param("xz") LXz xz);
47
-
48 45
     //取指定课节指定日期所有班级的课程和教师
49 46
     List<XzDateKjVo> listXzDateKjDetail(@Param("selectdate") String selectdate,@Param("xzid") Integer xzid);
50 47
 

+ 3
- 0
slive/src/main/java/com/xhkjedu/slive/model/gradeclass/TClassStudent.java View File

@@ -29,6 +29,9 @@ public class TClassStudent extends BaseBean {
29 29
     //学校id
30 30
     private Integer schoolid;
31 31
 
32
+    //是否是直播行政班学生0是1否(加入的非直播班级学生)
33
+    private Integer xzed;
34
+
32 35
     //学号
33 36
     @Transient
34 37
     private String studentno;

+ 2
- 0
slive/src/main/java/com/xhkjedu/slive/service/gradeclass/ClassService.java View File

@@ -99,6 +99,7 @@ public class ClassService {
99 99
             cs.setCreateid(teacherid);
100 100
             cs.setSchoolid(schoolid);
101 101
             cs.setCreatetime(N_Utils.getSecondTimestamp());
102
+            cs.setXzed(0);//是否是直播行政班学生0是1否(加入的非直播班级学生)
102 103
             classStudentMapper.save(cs);
103 104
 
104 105
             //分组学生
@@ -134,6 +135,7 @@ public class ClassService {
134 135
         cs.setClassid(classid);
135 136
         cs.setCreateid(createid);
136 137
         cs.setSchoolid(schoolid);
138
+        cs.setXzed(0);
137 139
         cs.setCreatetime(N_Utils.getSecondTimestamp());
138 140
         //分组学生
139 141
         ClassVo classVo = getById(classid);

+ 94
- 3
slive/src/main/java/com/xhkjedu/slive/service/xz/XzService.java View File

@@ -1,14 +1,13 @@
1 1
 package com.xhkjedu.slive.service.xz;
2 2
 
3
-import com.xhkjedu.slive.mapper.gradeclass.ClassMapper;
4
-import com.xhkjedu.slive.mapper.gradeclass.ClassTeacherMapper;
5
-import com.xhkjedu.slive.mapper.gradeclass.SchoolMapper;
3
+import com.xhkjedu.slive.mapper.gradeclass.*;
6 4
 import com.xhkjedu.slive.mapper.liveplay.CourseClassMapper;
7 5
 import com.xhkjedu.slive.mapper.liveplay.CourseMapper;
8 6
 import com.xhkjedu.slive.mapper.liveplay.CourseSectionMapper;
9 7
 import com.xhkjedu.slive.mapper.xz.XzKjMapper;
10 8
 import com.xhkjedu.slive.mapper.xz.XzMapper;
11 9
 import com.xhkjedu.slive.model.gradeclass.TClass;
10
+import com.xhkjedu.slive.model.gradeclass.TClassStudent;
12 11
 import com.xhkjedu.slive.model.gradeclass.TClassTeacher;
13 12
 import com.xhkjedu.slive.model.liveplay.LCourse;
14 13
 import com.xhkjedu.slive.model.liveplay.LCourseClass;
@@ -65,6 +64,10 @@ public class XzService {
65 64
     private ClassTeacherMapper classTeacherMapper;
66 65
     @Resource
67 66
     private ClassMapper classMapper;
67
+    @Resource
68
+    private ClassStudentMapper classStudentMapper;
69
+    @Resource
70
+    private GroupMapper groupMapper;
68 71
     /**
69 72
      * @Description 行政直播列表
70 73
      * @Param [schoolid]
@@ -437,4 +440,92 @@ public class XzService {
437 440
         }
438 441
     }
439 442
 
443
+    /**
444
+     * @Description 修改单个单元格
445
+     * @Param [kjTeaVo]
446
+     * @Return com.xhkjedu.vo.ResultVo
447
+     * @Author wn
448
+     * @Date 2022/4/2 15:19
449
+     **/
450
+    public ResultVo updateXzKjDyg(XzDateKjTeaVo kjTeaVo){
451
+        try {
452
+            //判断课程的状态,如果已经开始上课则不能修改
453
+            LCourse course = courseMapper.selectByPrimaryKey(kjTeaVo.getCourseid());
454
+            Integer kjid = course.getKjid();
455
+            Integer classid= kjTeaVo.getClassid();//行政班id
456
+            if(course.getCoursestate() > 0){
457
+                throw new Exception("选择的课程已经开始上课,不允许修改");
458
+            }else{
459
+                //先判断是修改当前课程还是后续日期的课
460
+                if(N_Utils.isEmptyInteger(kjTeaVo.getKfollow())){
461
+                    //kfollow为0或者空,则只需要修改当前选中的课程
462
+                    ((XzService) AopContext.currentProxy()).updateXzkjDygForDetail(kjTeaVo,course);
463
+                }else{
464
+                    //需要修改后续和当前日期相同的星期相同课节的课程
465
+                    //获取已生成课程的最后日期
466
+                    List<String> alldates = xzMapper.getAllDatesForKj(kjid,classid,course.getBegindate());
467
+                    if(alldates!=null && alldates.size()>0){
468
+                        //已经成课程中符合周的需要修改的日期
469
+                        List<String> deldates = LiveUtil.getMeetDayOfDates(alldates,course.getBegindate());
470
+                        if(deldates!=null && deldates.size()>0){
471
+                            for(int i=0;i<deldates.size();i++){
472
+                                //先获取指定日期对应的课程
473
+                                course.setBegintime(deldates.get(i));
474
+                                ((XzService) AopContext.currentProxy()).updateXzkjDygForDetail(kjTeaVo,course);
475
+                            }
476
+                        }
477
+                    }
478
+                }
479
+                return new ResultVo(0,"成功修改课程表单个课程");
480
+            }
481
+        }catch (Exception e){
482
+            log.error("修改课程表单个课程出错:"+e.getMessage());
483
+            return new ResultVo(1,"修改课程表单个课程失败");
484
+        }
485
+    }
486
+
487
+    //修改单个课程
488
+    @Transactional(rollbackFor = Exception.class)
489
+    public void updateXzkjDygForDetail(XzDateKjTeaVo kjTeaVo,LCourse course) {
490
+        try {
491
+            //先看新选择的教师情况,先判断选中的同一日期课节教师是否还有其他直播课
492
+            CourseVo courseVo = courseMapper.getCourseByDateKjTeacher(course.getKjid(),kjTeaVo.getTeacherid(),course.getBegindate());
493
+            if(courseVo==null){
494
+                //说明该老师之前没有直播课,则直接修改课程任课教师,直播班关联教师以及科目
495
+                courseMapper.updateCourseSectionClassTeacher(course.getCourseid(),kjTeaVo.getTeacherid(),kjTeaVo.getSubjectid());
496
+            }else{
497
+                //说明该教师当前有其他直播课,则把班级加入课程,完成直播课学生数量
498
+                TClassStudent cs = new TClassStudent();
499
+                cs.setSchoolid(course.getSchoolid());
500
+                cs.setClassid(kjTeaVo.getClassid());
501
+                cs.setCreateid(kjTeaVo.getCreateid());
502
+                classStudentMapper.saveAllClassStu(cs,courseVo.getClassid());
503
+                //获取直播班对应全班学生分组id
504
+                Integer groupid = groupMapper.getGroupIdByClassid(courseVo.getClassid());
505
+                groupMapper.saveAllClassGroupStu(cs,courseVo.getClassid(),groupid);
506
+                classMapper.updateNum2(courseVo.getClassid());//更改直播班级以及班级分组人数
507
+                courseMapper.updateStuNum(courseVo.getCourseid());//更新直播课学生数量
508
+
509
+                //把指定的班级从原直播班中移除
510
+                //修改原单元格中设置的教师信息,先判断该单元格对应的课程是否有其他班级
511
+                Integer coursenum = courseClassMapper.getOtherClassnumByCourseid(kjTeaVo.getCourseid(), kjTeaVo.getClassid());
512
+                if (coursenum == 0) {
513
+                    //说明该课程仅关联一个班级,直接修改该课程以及该课程对应的直播班
514
+                    courseMapper.deleteCourseClassByCourseid(kjTeaVo.getCourseid());
515
+                } else {
516
+                    //说明关联的还有其他班级,修改该班级在直播班级中的学生,
517
+                    courseClassMapper.deleteByCourseidAndClassid(kjTeaVo.getCourseid(), kjTeaVo.getClassid());
518
+                    //处理对应直播班级中学生
519
+                    classMapper.deleteClassstu(course.getClassid(), kjTeaVo.getClassid());
520
+                    classMapper.updateNum2(course.getClassid());//更改班级以及班级分组人数
521
+                    courseMapper.updateStuNum(kjTeaVo.getCourseid());//更新直播课学生数量
522
+                }
523
+            }
524
+        }catch (Exception e){
525
+            log.error("修改单个课程出错:"+e.getMessage());
526
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
527
+        }
528
+    }
529
+
530
+
440 531
 }

+ 2
- 0
slive/src/main/java/com/xhkjedu/slive/vo/liveplay/CourseVo.java View File

@@ -111,6 +111,8 @@ public class CourseVo {
111 111
     //班级ids
112 112
     private String classids;
113 113
 
114
+    private Integer kjid;//行政直播课节id
115
+
114 116
     //课节列表
115 117
     private List<CourseSectionVo> sections;
116 118
 }

+ 1
- 0
slive/src/main/java/com/xhkjedu/slive/vo/xz/XzDateKjTeaVo.java View File

@@ -22,6 +22,7 @@ public class XzDateKjTeaVo {
22 22
     private String subjectname;//科目名称
23 23
 
24 24
     private Integer kfollow;//区分是否处理指定日期后的课0不处理1处理
25
+    private Integer createid;//操作人id
25 26
 
26 27
     private List<XzDateKjTeaVo> xjclass;//存放层级用于保存时使用
27 28
 }

+ 3
- 3
slive/src/main/resources/application.properties View File

@@ -3,9 +3,9 @@ server.port=8085
3 3
 
4 4
 spring.application.name=slive
5 5
 #注册到我们本地的eureka注册中心,端口8081
6
-#eureka.client.service-url.defaultZone=http://127.0.0.1:8081/eureka/
7
-eureka.client.register-with-eureka=false
8
-eureka.client.fetch-registry=false
6
+eureka.client.service-url.defaultZone=http://127.0.0.1:8081/eureka/
7
+#eureka.client.register-with-eureka=false
8
+#eureka.client.fetch-registry=false
9 9
 
10 10
 #设置eureka输出日志级别
11 11
 logging.level.com.netflix=error

+ 5
- 0
slive/src/main/resources/mapper/gradeclass/ClassStudentMapper.xml View File

@@ -17,4 +17,9 @@
17 17
         insert ignore into t_class_student (classid,studentid,createid,createtime,schoolid)
18 18
         values (#{student.classid},#{student.studentid},#{student.createid},#{student.createtime},#{student.schoolid})
19 19
     </insert>
20
+    <!--保存班级学生到指定班级-->
21
+    <insert id="saveAllClassStu">
22
+        insert ignore into t_class_student (classid,studentid,createid,createtime,schoolid)
23
+        SELECT #{zbclassid},studentid,#{student.createid}, UNIX_TIMESTAMP(),#{student.schoolid} FROM t_class_student WHERE classid=#{student.classid});
24
+    </insert>
20 25
 </mapper>

+ 10
- 0
slive/src/main/resources/mapper/gradeclass/GroupMapper.xml View File

@@ -7,4 +7,14 @@
7 7
         (select count(*) from t_group_student gs where gs.groupid=#{groupid})
8 8
         where g.groupid=#{groupid}
9 9
     </update>
10
+
11
+    <!--获取班级对应的全班学生分组-->
12
+    <select id="getGroupIdByClassid" resultType="java.lang.Integer">
13
+        select groupid from t_group where classid=#{classid} and grouptype=1
14
+    </select>
15
+    <!--保存全部分组学生-->
16
+    <insert id="saveAllClassGroupStu">
17
+        insert ignore into t_group_student (classid,groupid,studentid,createid,createtime,schoolid)
18
+        SELECT #{zbclassid},#{zbgroupid},studentid,#{student.createid}, UNIX_TIMESTAMP(),#{student.schoolid} FROM t_class_student WHERE classid=#{student.classid});
19
+    </insert>
10 20
 </mapper>

+ 11
- 0
slive/src/main/resources/mapper/liveplay/CourseMapper.xml View File

@@ -512,6 +512,17 @@
512 512
         select c.courseid,c.classid from l_course c
513 513
         left join l_course_class cc on c.courseid=cc.courseid
514 514
         WHERE c.kjid=#{kjid} and cc.classid=#{classid}	 and c.begindate=#{seldate}
515
+    </select>
515 516
 
517
+    <!--获取指定指定日期教师课节下教师的直播课-->
518
+    <select id="getCourseByDateKjTeacher" resultType="com.xhkjedu.slive.vo.liveplay.CourseVo">
519
+        select courseid,subjectid,classid,teacherid,kjid from l_course
520
+        where kjid=#{xkjid} and teacherid=#{teacherid} and begindate=#{seldate}
516 521
     </select>
522
+    <!--更改课程相关任课教师-->
523
+    <update id="updateCourseSectionClassTeacher">
524
+        update l_course c ,l_course_section s,t_class_teacher ct
525
+        set c.teacherid=#{teacherid},s.teacherid=#{teacherid},ct.teacherid=#{teacherid},c.subjectid=#{subjectid}
526
+        where c.courseid=s.courseid and ct.classid=c.classid and c.courseid=#{courseid}
527
+    </update>
517 528
 </mapper>

Loading…
Cancel
Save