浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
340ae34bbf

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java

@@ -39,5 +39,5 @@ public interface MusicGroupSubjectGoodsGroupDao extends BaseDAO<Long, MusicGroup
      */
     int delByMusicGroupId(String musicGroupId);
     
-    MusicGroupSubjectGoodsGroup query(@Param("musicGroupId")String musicGroupId,@Param("subjectId")Integer subjectId);
+    MusicGroupSubjectGoodsGroup query(@Param("musicGroupId")String musicGroupId,@Param("subjectId")Integer subjectId,@Param("goodsIdList") String goodsIdList);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectGoodsGroupService.java

@@ -24,5 +24,5 @@ public interface MusicGroupSubjectGoodsGroupService extends BaseService<Long, Mu
     List<MusicGroupSubjectGoodsGroup> findGoodsGroupByIds(String ids);
 
     
-    MusicGroupSubjectGoodsGroup query(String musicGroupId,Integer subjectId);
+    MusicGroupSubjectGoodsGroup query(String musicGroupId,Integer subjectId, String goodsIdList);
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -643,7 +643,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
 
 			if (studentPaymentOrder == null) {
-				MusicGroupSubjectGoodsGroup musicGroupSubjectPlan = musicGroupSubjectGoodsGroupService.query(musicGroupId, subjectId);
+				MusicGroupSubjectGoodsGroup musicGroupSubjectPlan = musicGroupSubjectGoodsGroupService.query(musicGroupId, subjectId, goodsIds);
 				if (musicGroupSubjectPlan != null) {
 					depositFee = musicGroupSubjectPlan.getDepositFee().doubleValue();
 				}
@@ -748,7 +748,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 					.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.WAIT_PAY);
 
 			if (studentPaymentOrder == null) {
-				MusicGroupSubjectGoodsGroup musicGroupSubjectPlan = musicGroupSubjectGoodsGroupService.query(musicGroupId, subjectId);
+				MusicGroupSubjectGoodsGroup musicGroupSubjectPlan = musicGroupSubjectGoodsGroupService.query(musicGroupId, subjectId, goodsIds);
 				if (musicGroupSubjectPlan != null) {
 					depositFee = musicGroupSubjectPlan.getDepositFee().doubleValue();
 				}

+ 70 - 37
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -22,7 +22,9 @@ import com.ym.mec.jiari.JiaRiFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import feign.codec.DecodeException;
+
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -361,7 +363,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             return pageInfo;
         }
 
-        Map<String, Group> groupMap = groups.stream().collect(Collectors.toMap(Group::getId, group -> group));
 
         List<CourseScheduleDto> dataList = null;
         int count = courseScheduleDao.countCourseSchedulesWithDate(params);
@@ -373,10 +374,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
             Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
 
+            List<Group> groupsT=new ArrayList<>();
+            groupsT.add(null);
+            List<Integer> teacherIds=new ArrayList<>();
+            for (CourseScheduleDto courseScheduleEndDto : dataList) {
+                Group group=new Group(courseScheduleEndDto.getMusicGroupId(),courseScheduleEndDto.getGroupType());
+                groupsT.add(group);
+                teacherIds.add(courseScheduleEndDto.getActualTeacherId());
+            }
+            groupsT = groupDao.findByGroupIds(groupsT);
+            Map<String, Group> idGroupMap = groupsT.stream().collect(Collectors.toMap(Group::getId, group -> group));
+
             for (int i=0;i<dataList.size();i++) {
                 Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
                 dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
-                Group group = groupMap.get(dataList.get(i).getMusicGroupId());
+                Group group = idGroupMap.get(dataList.get(i).getMusicGroupId());
                 if(Objects.nonNull(group)){
                     dataList.get(i).setGroupName(group.getGroupName());
                 }
@@ -1562,22 +1574,22 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 //修改后的课程助教编号列表
                 List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
                 List<Integer> newCreateSalaryTeachingTeacherIds = null;
-                if(!CollectionUtils.isEmpty(newTeachingTeacherIdList)){
-                    //找出重复的助教编号
-                    List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
 
-                    //需要重新生成课酬的助教列表
-                    newCreateSalaryTeachingTeacherIds = newTeachingTeacherIdList.stream()
-                            .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
-                            .collect(Collectors.toList());
-                    //被替换的助教列表
-                    List<Integer> beReplaceTeachingTeacherIds = currentCourseTeachingTeacherIds.stream()
-                            .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
-                            .collect(Collectors.toList());
-                    beReplaceTeacherIds.addAll(beReplaceTeachingTeacherIds);
+                //找出重复的助教编号
+                List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
+
+                //需要重新生成课酬的助教列表
+                newCreateSalaryTeachingTeacherIds = newTeachingTeacherIdList.stream()
+                        .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
+                        .collect(Collectors.toList());
+                //被替换的助教列表
+                List<Integer> beReplaceTeachingTeacherIds = currentCourseTeachingTeacherIds.stream()
+                        .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
+                        .collect(Collectors.toList());
+                beReplaceTeacherIds.addAll(beReplaceTeachingTeacherIds);
+
+                newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
 
-                    newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
-                }
 
                 if (!newCourseSchedule.isBishopTeacherSalaryNotCreate() || !CollectionUtils.isEmpty(newCreateSalaryTeachingTeacherIds)) {
                     newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
@@ -1665,16 +1677,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             throw new BizException("未找到对应课程");
         }
 
+        if(!courseSchedule1.getType().equals(courseSchedule2.getGroupType())
+            ||!courseSchedule1.getMusicGroupId().equals(courseSchedule2.getMusicGroupId())){
+            throw new BizException("不能跨乐团进行课时交换");
+        }
+
+        int course1CourseMinutes = DateUtil.minutesBetween(courseSchedule1.getStartClassTime(), courseSchedule1.getEndClassTime());
+        int course2CourseMinutes = DateUtil.minutesBetween(courseSchedule2.getStartClassTime(), courseSchedule2.getEndClassTime());
+
         CourseSchedule temp=new CourseSchedule();
         BeanUtils.copyProperties(courseSchedule1, temp);
 
         courseSchedule1.setClassDate(courseSchedule2.getClassDate());
         courseSchedule1.setStartClassTime(courseSchedule2.getStartClassTime());
-        courseSchedule1.setEndClassTime(courseSchedule2.getStartClassTime());
+        courseSchedule1.setEndClassTime(DateUtil.addMinutes(courseSchedule1.getStartClassTime(),course1CourseMinutes));
 
         courseSchedule2.setClassDate(temp.getClassDate());
         courseSchedule2.setStartClassTime(temp.getStartClassTime());
-        courseSchedule2.setEndClassTime(temp.getStartClassTime());
+        courseSchedule2.setEndClassTime(DateUtil.addMinutes(courseSchedule2.getStartClassTime(),course1CourseMinutes));
 
         List<CourseSchedule> courseSchedules = new ArrayList<>();
         courseSchedules.add(courseSchedule1);
@@ -1851,23 +1871,36 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         Date date = new Date();
         //课程已结束,更新“未签到”学生的状态未“旷课”
-        List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
-        Date updateTime = DateUtil.stringToDate("19700101 000000",DateUtil.DATE_TIME_FORMAT);
-        for (StudentAttendance studentAttendance : studentAttendanceList) {
-            studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
-            studentAttendance.setRemark("课程已结束,自动补旷课");
-            if (Objects.isNull(studentAttendance.getCurrentClassTimes())) {
-                studentAttendance.setCurrentClassTimes(1);
-            } else {
-                studentAttendance.setCurrentClassTimes(studentAttendance.getCurrentClassTimes() + 1);
-            }
-            studentAttendance.setCreateTime(date);
-            studentAttendance.setUpdateTime(updateTime);
-        }
-
-        if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
-            studentAttendanceDao.addStudentAttendances(studentAttendanceList);
-        }
+		List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
+		if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
+			// 获取老师的考勤记录
+			Map<Long, TeacherAttendance> teacherAttendanceMap = teacherAttendanceDao
+					.findTeacherIdByCourseSchedule(studentAttendanceList.stream().map(sa -> sa.getCourseScheduleId()).collect(Collectors.toList())).stream()
+					.collect(Collectors.toMap(TeacherAttendance::getCourseScheduleId, ta -> ta));
+			
+			Date updateTime = DateUtil.stringToDate("19700101 000000", DateUtil.DATE_TIME_FORMAT);
+			for (Iterator<StudentAttendance> list = studentAttendanceList.iterator(); list.hasNext();) {
+				StudentAttendance studentAttendance = list.next();
+				TeacherAttendance teacherAttendance = teacherAttendanceMap.get(studentAttendance.getCourseScheduleId());
+				if (teacherAttendance != null && teacherAttendance.getSignOutTime() == null) {
+					list.remove();
+				} else {
+					studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
+					studentAttendance.setRemark("课程已结束,自动补旷课");
+					if (Objects.isNull(studentAttendance.getCurrentClassTimes())) {
+						studentAttendance.setCurrentClassTimes(1);
+					} else {
+						studentAttendance.setCurrentClassTimes(studentAttendance.getCurrentClassTimes() + 1);
+					}
+					studentAttendance.setCreateTime(date);
+					studentAttendance.setUpdateTime(updateTime);
+				}
+			}
+
+			if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
+				studentAttendanceDao.addStudentAttendances(studentAttendanceList);
+			}
+		}
 
         //自动更新课程状态至“已结束”
         List<CourseSchedule> list = courseScheduleDao.queryFinishedWithNoUpdateStatus();
@@ -1922,10 +1955,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 //            }
         }
 
-        if (courseScheduleIdList.size() > 0) {
+        /*if (courseScheduleIdList.size() > 0) {
             // vip课自动签退
             teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
-        }
+        }*/
 
         return true;
     }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectGoodsGroupServiceImpl.java

@@ -34,7 +34,7 @@ public class MusicGroupSubjectGoodsGroupServiceImpl extends BaseServiceImpl<Long
 	}
 
 	@Override
-	public MusicGroupSubjectGoodsGroup query(String musicGroupId, Integer subjectId) {
-		return musicGroupSubjectGoodsGroupDao.query(musicGroupId, subjectId);
+	public MusicGroupSubjectGoodsGroup query(String musicGroupId, Integer subjectId, String goodsIdList) {
+		return musicGroupSubjectGoodsGroupDao.query(musicGroupId, subjectId, goodsIdList);
 	}
 }

+ 2 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -448,6 +448,8 @@
             cs.student_num_,
             cs.leave_student_num_,
             cs.teach_mode_,
+            cs.music_group_id_,
+            cs.group_type_,
             cg.student_num_ total_student_num_,
             su.real_name_ teacher_name_,
             IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -132,6 +132,6 @@
     </select>
     
     <select id="query" resultMap="MusicGroupSubjectGoodsGroup" parameterType="map">
-        SELECT * FROM music_group_subject_goods_group WHERE music_group_id_ = #{musicGroupId} and subject_id_ = #{subjectId}
+        SELECT * FROM music_group_subject_goods_group WHERE music_group_id_ = #{musicGroupId} and subject_id_ = #{subjectId} and goods_id_list_ = #{goodsIdList}
     </select>
 </mapper>