|
@@ -193,18 +193,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
|
|
public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
|
|
-
|
|
|
|
- Integer schoolId = null;
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ Integer schoolId = null;
|
|
|
|
+
|
|
for (HighClassGroupDto highClassGroup : highClassGroupList) {
|
|
for (HighClassGroupDto highClassGroup : highClassGroupList) {
|
|
-
|
|
|
|
- if (schoolId == null) {
|
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(highClassGroup.getMusicGroupId());
|
|
|
|
- if (musicGroup != null) {
|
|
|
|
- schoolId = musicGroup.getSchoolId();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ if (schoolId == null) {
|
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(highClassGroup.getMusicGroupId());
|
|
|
|
+ if (musicGroup != null) {
|
|
|
|
+ schoolId = musicGroup.getSchoolId();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
//1、插入班级信息
|
|
//1、插入班级信息
|
|
Date date;
|
|
Date date;
|
|
date = new Date();
|
|
date = new Date();
|
|
@@ -279,11 +279,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
pageInfo.setTotal(count);
|
|
pageInfo.setTotal(count);
|
|
params.put("offset", pageInfo.getOffset());
|
|
params.put("offset", pageInfo.getOffset());
|
|
dataList = classGroupDao.queryGroupCourses(params);
|
|
dataList = classGroupDao.queryGroupCourses(params);
|
|
- HashMap<String, Object> param = new HashMap<>();
|
|
|
|
- param.put("teacherId", queryInfo.getSearch());
|
|
|
|
- param.put("attendanceStatus", YesOrNoEnum.YES);
|
|
|
|
- dataList.forEach(e -> {
|
|
|
|
- param.put("musicGroupId", e.getMusicGroupId());
|
|
|
|
|
|
+ HashMap<String,Object> param = new HashMap<>();
|
|
|
|
+ param.put("teacherId",queryInfo.getSearch());
|
|
|
|
+ param.put("attendanceStatus",YesOrNoEnum.YES);
|
|
|
|
+ dataList.forEach(e->{
|
|
|
|
+ param.put("musicGroupId",e.getMusicGroupId());
|
|
e.setAttendanceNum(teacherAttendanceDao.getTeacherPersonalAttendancesCount(param));
|
|
e.setAttendanceNum(teacherAttendanceDao.getTeacherPersonalAttendancesCount(param));
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -306,17 +306,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
params.put("offset", pageInfo.getOffset());
|
|
params.put("offset", pageInfo.getOffset());
|
|
dataList = vipGroupDao.getTeacherVipClass(params);
|
|
dataList = vipGroupDao.getTeacherVipClass(params);
|
|
Set<Integer> activityIds = dataList.stream().map(e -> e.getActivityId()).collect(Collectors.toSet());
|
|
Set<Integer> activityIds = dataList.stream().map(e -> e.getActivityId()).collect(Collectors.toSet());
|
|
- List<Map<Integer, String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds, ","));
|
|
|
|
- Map<Integer, String> nameMap = MapUtil.convertMybatisMap(names);
|
|
|
|
|
|
+ List<Map<Integer,String>> names = vipGroupActivityDao.queryNamesById(StringUtils.join(activityIds,","));
|
|
|
|
+ Map<Integer,String> nameMap = MapUtil.convertMybatisMap(names);
|
|
//计算月度平均消耗值(已上课时 / 消耗月份)
|
|
//计算月度平均消耗值(已上课时 / 消耗月份)
|
|
- Date date = new Date();
|
|
|
|
- dataList.forEach(e -> {
|
|
|
|
- e.setActivityName(nameMap.get(e.getActivityId()));
|
|
|
|
- int days = DateUtil.daysBetween(e.getPaymentExpireDate(), date);
|
|
|
|
- if (days <= 0) {
|
|
|
|
- e.setMonthAvg(0f);
|
|
|
|
- } else {
|
|
|
|
- e.setMonthAvg(e.getCurrentClassTimes() / (days / 30));
|
|
|
|
|
|
+ List<Long> vipGroupIds = dataList.stream().map(vipGroup -> vipGroup.getVipClassId()).collect(Collectors.toList());
|
|
|
|
+ List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
|
|
|
|
+ Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
|
|
|
|
+ dataList.forEach(vipGroup -> {
|
|
|
|
+ Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getVipClassId());
|
|
|
|
+ if(Objects.isNull(overCourses)){
|
|
|
|
+ overCourses=0;
|
|
|
|
+ }
|
|
|
|
+ Integer totalClassTimes=vipGroup.getTotalClassTimes();
|
|
|
|
+ if(Objects.isNull(totalClassTimes)){
|
|
|
|
+ vipGroup.setMonthAvg(Float.parseFloat("0.0"));
|
|
|
|
+ }else{
|
|
|
|
+ BigDecimal overCoursesOfMonth=new BigDecimal(overCourses),allClassTimes=new BigDecimal(totalClassTimes);
|
|
|
|
+
|
|
|
|
+ Float monthConsumeRate=overCoursesOfMonth.divide(overCoursesOfMonth,2,BigDecimal.ROUND_HALF_UP).floatValue();
|
|
|
|
+ vipGroup.setMonthAvg(monthConsumeRate);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
@@ -329,8 +337,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId, String type) {
|
|
|
|
- List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId, type);
|
|
|
|
|
|
+ public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId,String type) {
|
|
|
|
+ List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId,type);
|
|
|
|
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
|
|
|
|
|
|
@@ -575,6 +583,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
List<Map<Long, Integer>> musicGroupIdAndNumList = musicGroupStudentFeeDao.countContinuosAbsenteeismStudentNum(musicGroupIds);
|
|
List<Map<Long, Integer>> musicGroupIdAndNumList = musicGroupStudentFeeDao.countContinuosAbsenteeismStudentNum(musicGroupIds);
|
|
Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertMybatisMap(musicGroupIdAndNumList);
|
|
Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertMybatisMap(musicGroupIdAndNumList);
|
|
|
|
|
|
|
|
+ List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(musicGroupIds);
|
|
|
|
+ Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertMybatisMap(vipGroupOverCourses);
|
|
|
|
+
|
|
teacherMusicClassGroup.forEach(teacherClassGroupDto -> {
|
|
teacherMusicClassGroup.forEach(teacherClassGroupDto -> {
|
|
|
|
|
|
if (teacherClassGroupDto.getType() == ClassGroupTypeEnum.VIP) {
|
|
if (teacherClassGroupDto.getType() == ClassGroupTypeEnum.VIP) {
|
|
@@ -589,6 +600,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
} else {
|
|
} else {
|
|
teacherClassGroupDto.setClassMode(0);
|
|
teacherClassGroupDto.setClassMode(0);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ Integer overCourses = vipGroupOverCourseMaps.get(teacherClassGroupDto.getMusicGroupId());
|
|
|
|
+ if(Objects.isNull(overCourses)){
|
|
|
|
+ overCourses=0;
|
|
|
|
+ }
|
|
|
|
+ Integer totalClassTimes=teacherClassGroupDto.getTotalClassTimes();
|
|
|
|
+ if(Objects.isNull(totalClassTimes)||totalClassTimes==0){
|
|
|
|
+ teacherClassGroupDto.setAvgClassTimesOfMonth(0.0);
|
|
|
|
+ }else{
|
|
|
|
+ BigDecimal overCoursesOfMonth=new BigDecimal(overCourses),allClassTimes=new BigDecimal(totalClassTimes);
|
|
|
|
+
|
|
|
|
+ Double monthConsumeRate=overCoursesOfMonth.divide(allClassTimes,1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
|
+ teacherClassGroupDto.setAvgClassTimesOfMonth(monthConsumeRate);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
String subjectIdList = teacherClassGroupDto.getSubjectIdList();
|
|
String subjectIdList = teacherClassGroupDto.getSubjectIdList();
|
|
if (StringUtils.isNotEmpty(subjectIdList)) {
|
|
if (StringUtils.isNotEmpty(subjectIdList)) {
|