|
@@ -239,8 +239,15 @@ public class XzService {
|
239
|
239
|
course.setBegintime(kjVo.getBegintime());
|
240
|
240
|
course.setEndtime(kjVo.getEndtime());
|
241
|
241
|
course.setKjid(kjVo.getKjid());
|
242
|
|
- //保存行政直播课程表,该方式解决事务不生效问题
|
243
|
|
- ((XzService)applicationContext.getBean("xzService")).saveCourseAll(xjTeas, course);
|
|
242
|
+
|
|
243
|
+ //获取集合中所有的班级id
|
|
244
|
+ List classidlst = xjTeas.stream().map(XzDateKjTeaVo::getClassid).collect(Collectors.toList());
|
|
245
|
+ List<Map> users = courseMapper.listUid(classidlst);//获取课班级下学生
|
|
246
|
+ //只有当班级下有学生时进行保存
|
|
247
|
+ if(users!=null && users.size() > 0){
|
|
248
|
+ //保存行政直播课程表,该方式解决事务不生效问题
|
|
249
|
+ ((XzService)applicationContext.getBean("xzService")).saveCourseAll(xjTeas, course,users);
|
|
250
|
+ }
|
244
|
251
|
}
|
245
|
252
|
}
|
246
|
253
|
}
|
|
@@ -365,16 +372,10 @@ public class XzService {
|
365
|
372
|
|
366
|
373
|
//保存行政直播课程表
|
367
|
374
|
@Transactional(rollbackFor = Exception.class)
|
368
|
|
- public Integer saveCourseAll(List<XzDateKjTeaVo> xjTeas, LCourse course) {
|
|
375
|
+ public Integer saveCourseAll(List<XzDateKjTeaVo> xjTeas, LCourse course,List<Map> users) {
|
369
|
376
|
Integer courseid = 0;
|
370
|
377
|
try {
|
371
|
|
- //获取集合中所有的班级id
|
372
|
378
|
List classidlst = xjTeas.stream().map(XzDateKjTeaVo::getClassid).collect(Collectors.toList());
|
373
|
|
- List<Map> users = courseMapper.listUid(classidlst);//获取课班级下学生
|
374
|
|
-
|
375
|
|
- if(users==null || users.size()==0){
|
376
|
|
- throw new Exception("所选班级无学生");
|
377
|
|
- }
|
378
|
379
|
|
379
|
380
|
//新生成直播班班级信息
|
380
|
381
|
TClass c = new TClass();
|
|
@@ -464,8 +465,6 @@ public class XzService {
|
464
|
465
|
List<XzDateKjVo> kjs = xzKjMapper.listXzKjsByXzid(xz.getXzid());
|
465
|
466
|
map.put("kjs", kjs);//保存所有课节信息
|
466
|
467
|
|
467
|
|
- List<XzDateVo> classdatelst = new ArrayList<>();//班级日期课节
|
468
|
|
-
|
469
|
468
|
//根据行政直播id获取该学校当前年份指定年级下的行政班和提高班
|
470
|
469
|
List<XzClassVo> classlst = classMapper.listClassByXzid(xz.getXzid());
|
471
|
470
|
//先获取选择要看的有效日期,不能超出行政直播结束的日期
|
|
@@ -603,12 +602,16 @@ public class XzService {
|
603
|
602
|
return new ResultVo(0, "保存成功",courseid);
|
604
|
603
|
} catch (Exception e) {
|
605
|
604
|
log.error("保存课程表单个课程出错:" + e.getMessage());
|
606
|
|
- return new ResultVo(1, "保存失败");
|
|
605
|
+ if(e.getMessage().equals("所选班级无学生")){
|
|
606
|
+ return new ResultVo(1, "保存失败:所选班级无学生");
|
|
607
|
+ }else{
|
|
608
|
+ return new ResultVo(1, "保存失败");
|
|
609
|
+ }
|
607
|
610
|
}
|
608
|
611
|
}
|
609
|
612
|
|
610
|
613
|
//判断单个课程是否存在如果存在只需要合并班级不存在保存单个课程
|
611
|
|
- private Integer saveOneXzkjDygForDetail(XzDateKjTeaVo kjTeaVo) {
|
|
614
|
+ private Integer saveOneXzkjDygForDetail(XzDateKjTeaVo kjTeaVo) throws Exception{
|
612
|
615
|
Integer courseid = 0;
|
613
|
616
|
//先看新选择的教师情况,先判断选中的同一日期课节教师是否还有其他直播课
|
614
|
617
|
CourseVo courseVo = courseMapper.getCourseByDateKjTeacher(kjTeaVo);
|
|
@@ -643,7 +646,15 @@ public class XzService {
|
643
|
646
|
//保存行政直播课程表,调用保存整个课表时的方法
|
644
|
647
|
List<XzDateKjTeaVo> lst = new ArrayList<>();
|
645
|
648
|
lst.add(kjTeaVo);
|
646
|
|
- courseid = ((XzService) applicationContext.getBean("xzService")).saveCourseAll(lst, course);
|
|
649
|
+
|
|
650
|
+ //获取集合中所有的班级id
|
|
651
|
+ List classidlst = lst.stream().map(XzDateKjTeaVo::getClassid).collect(Collectors.toList());
|
|
652
|
+ List<Map> users = courseMapper.listUid(classidlst);//获取课班级下学生
|
|
653
|
+ //如果所选班级无学生,则抛出异常 提示
|
|
654
|
+ if(users==null || users.size()==0){
|
|
655
|
+ throw new Exception("所选班级无学生");
|
|
656
|
+ }
|
|
657
|
+ courseid = ((XzService) applicationContext.getBean("xzService")).saveCourseAll(lst, course,users);
|
647
|
658
|
} else {
|
648
|
659
|
courseid = courseVo.getCourseid();
|
649
|
660
|
((XzService) applicationContext.getBean("xzService")).saveOneXzkjDygForDetailExist(kjTeaVo,courseVo);
|