Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
ffb1de33ab

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

@@ -194,5 +194,24 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	List<TeacherSalaryDto> querySalaries(Map<String, Object> params);
 
-	List<CourseScheduleTeacherSalary> findCourseScheduleTeacherSalaryByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("groupType") GroupType groupType);
+	List<CourseScheduleTeacherSalary> findCourseScheduleTeacherSalaryByMusicGroupId(@Param("musicGroupId") String musicGroupId,
+																					@Param("groupType") GroupType groupType);
+
+	/**
+	 * @describe 判断指定课程是否已经结算
+	 * @author Joburgess
+	 * @date 2019/12/5
+	 * @param courseScheduleId: 课程编号
+	 * @return boolean
+	 */
+	int checkCourseIsSettlement(@Param("courseScheduleId") Integer courseScheduleId);
+
+	/**
+	 * @describe 检测给定的课程是否都已经结算
+	 * @author Joburgess
+	 * @date 2019/12/5
+	 * @param courseScheduleIds: 课程编号列表
+	 * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+	 */
+	List<Map<Long,Integer>> checkCoursesIsSettlement(@Param("courseScheduleIds") List<Integer> courseScheduleIds);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -127,6 +127,16 @@ public class CourseSchedule {
 
 	private String classGroupName;
 
+	private Integer isSettlement;
+
+	public Integer getIsSettlement() {
+		return isSettlement;
+	}
+
+	public void setIsSettlement(Integer isSettlement) {
+		this.isSettlement = isSettlement;
+	}
+
 	public String getSchoolName() {
 		return schoolName;
 	}

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

@@ -17,6 +17,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      */
     int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
+    int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList,boolean checkCourser);
 
     /**
      * 查询班级老师

+ 41 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -69,6 +69,43 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
 
+        for (ClassGroup classGroup : classGroups) {
+            imGroupMemberList.clear();
+            //原设置的老师删除群组
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : oldClassGroupTeacherMapper) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            if (imGroupMemberList.size() > 0) {
+                ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+                imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+            }
+            // 新设置的老师加入群组
+            imGroupMemberList.clear();
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                classGroupTeacherMapper.setMusicGroupId(classGroup.getMusicGroupId());
+                classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+            }
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+        }
+        classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
+
+        return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList, boolean checkCourser) {
+        String classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId().toString()).collect(Collectors.joining(","));
+        //老师加入群组
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        List<ClassGroup> classGroups = classGroupService.findClassGroupByIds(classGroupIds);
+
+        List<ClassGroupTeacherMapper> oldClassGroupTeacherMapper = classGroupTeacherMapperDao.getClassGroupTeacherMapper(classGroupTeacherMapperList, GroupType.MUSIC);
+
         Set<String> oldTeacher = new HashSet<>();
         Set<String> newTeacher = new HashSet<>();
         for (ClassGroup classGroup : classGroups) {
@@ -98,11 +135,11 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
 
         //老师不相同删除老师未开始的课程
-        if (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher)){
+        if (checkCourser && (oldTeacher.size() != newTeacher.size() || !newTeacher.containsAll(oldTeacher))) {
             String musicGroupId = classGroupTeacherMapperList.get(0).getMusicGroupId();
             List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupCourseSchedules(musicGroupId, GroupType.MUSIC.getCode(), CourseStatusEnum.NOT_START.getCode());
-            if(musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() >0){
-                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId,GroupType.MUSIC);
+            if (musicGroupCourseSchedules != null && musicGroupCourseSchedules.size() > 0) {
+                courseScheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId, GroupType.MUSIC);
             }
         }
 
@@ -428,7 +465,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         return courseScheduleTeacherSalary;
     }
 
-    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId){
+    public List<ClassGroupTeacherMapper> getClassGroupTeachers(Integer classGroupId) {
         return classGroupTeacherMapperDao.findClassGroupTeachers(classGroupId.toString());
     }
 }

+ 22 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1371,9 +1371,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		int count=dataList.size();
 		if(count>0){
-			pageInfo.setTotal(count);
-			dataList=dataList.stream().skip(pageInfo.getOffset()).limit(pageInfo.getLimit()).collect(Collectors.toList());
-		}
+            pageInfo.setTotal(count);
+            if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
+                dataList=dataList.stream().skip(pageInfo.getOffset()).limit(pageInfo.getLimit()).collect(Collectors.toList());
+                dataList.forEach(courseSchedule -> {
+                    courseSchedule.setIsSettlement(0);
+                });
+            }else{
+                List<Integer> courseScheduleIds = dataList.stream()
+                        .map(courseSchedule -> courseSchedule.getId().intValue())
+                        .distinct().collect(Collectors.toList());
+                List<Map<Long, Integer>> courseSettlementMaps = courseScheduleTeacherSalaryDao.checkCoursesIsSettlement(courseScheduleIds);
+                Map<Long, Long> courseSettlementMap = MapUtil.convertIntegerMap(courseSettlementMaps);
+                dataList.forEach(courseSchedule -> {
+                    Long isSettlement = courseSettlementMap.get(courseSchedule.getId().longValue());
+                    if(Objects.isNull(isSettlement)||isSettlement<=0){
+                        courseSchedule.setIsSettlement(0);
+                    }else{
+                        courseSchedule.setIsSettlement(1);
+                    }
+                });
+            }
+        }
 		pageInfo.setRows(dataList);
 		Map<String,Object> result=new HashMap<>();
 		result.put("pageInfo",pageInfo);

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -289,6 +289,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     studentRegistration.setMusicGroupId(musicGroupId);
                     studentRegistration.setSubjectId(e.getSubjectId());
                     studentRegistration.setActualSubjectId(e.getSubjectId());
+                    studentRegistration.setTemporaryCourseFee(null);
                 }
                 studentRegistrationList.addAll(musicGroupStudentRegistrationList);
 

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

@@ -764,7 +764,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistrationDao.update(studentRegistration);
 
             //进行中乐团加入学生缴费
-            if (studentRegistration.getTemporaryCourseFee() != null && studentRegistration.getTemporaryCourseFee().compareTo(new BigDecimal("0")) > 0) {
+            if (studentRegistration.getTemporaryCourseFee() != null) {
                 //关闭待支付订单
                 StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
                 waitPayOrder.setStatus(DealStatusEnum.CLOSE);

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -356,4 +356,27 @@
 		GROUP BY
 			course_schedule_id_
 	</select>
+	<select id="checkCourseIsSettlement" resultType="int">
+		SELECT
+			COUNT(*)
+		FROM
+			course_schedule_teacher_salary
+		WHERE
+			course_schedule_id_ = #{courseScheduleId}
+			AND settlement_time_ IS NOT NULL
+	</select>
+	<select id="checkCoursesIsSettlement" resultType="java.util.Map">
+		SELECT
+            course_schedule_id_ AS 'key',
+			COUNT(*) AS 'value'
+		FROM
+			course_schedule_teacher_salary
+		WHERE
+			settlement_time_ IS NOT NULL
+			AND course_schedule_id_ IN
+			<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+				#{courseScheduleId}
+			</foreach>
+		GROUP BY course_schedule_id_
+	</select>
 </mapper>

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -154,7 +154,7 @@ public class ClassGroupController extends BaseController {
         if (classGroupTeacherMapperList.size() <= 0) {
             return failed("参数不合法");
         }
-        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList));
+        return succeed(classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList,true));
     }
 
     @ApiOperation(value = "获取乐团班级老师")