|
@@ -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
|
}
|