|
@@ -27,10 +27,13 @@ import org.springframework.util.CollectionUtils;
|
|
|
import sun.nio.cs.ext.Big5;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.IndexDataType.CLOUD_NEW_STUDENT_NUM;
|
|
|
+
|
|
|
@Service
|
|
|
public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implements StudentService {
|
|
|
|
|
@@ -68,6 +71,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
@Autowired
|
|
|
private OrganizationDao organizationDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IndexBaseMonthDataDao indexBaseMonthDataDao;
|
|
|
+
|
|
|
@Override
|
|
|
public BaseDAO<Integer, Student> getDAO() {
|
|
|
return studentDao;
|
|
@@ -542,19 +548,24 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
if(!CollectionUtils.isEmpty(organsNewCloudStudyNumMapList)){
|
|
|
organsNewCloudStudyNumMap = MapUtil.convertIntegerMap(organsNewCloudStudyNumMapList);
|
|
|
}
|
|
|
- //获取新增人数占比(已上乐团课小于等于4)
|
|
|
- //获取有在读学员的乐团编号
|
|
|
- //获取有在读学员的学员编号
|
|
|
- List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
|
|
|
- List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
|
|
|
- List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
|
|
|
- Map<String, Long> organsNewCloudNewStudentNumMap = new HashMap<>();
|
|
|
- if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
|
|
|
- List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
|
|
|
- List<Integer> userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
|
|
|
- List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
|
|
|
- organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
|
|
|
- }
|
|
|
+// //获取新增人数占比(已上乐团课小于等于4)
|
|
|
+// //获取有在读学员的乐团编号
|
|
|
+// //获取有在读学员的学员编号
|
|
|
+// List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
|
|
|
+// List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
|
|
|
+// List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
|
|
|
+// //获取有乐团没排课的数据
|
|
|
+// List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
|
|
|
+// List<Integer> userIdList = new ArrayList<>();
|
|
|
+// if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
|
|
|
+// List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
|
|
|
+// userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
|
|
|
+// }
|
|
|
+// userIdList.addAll(noCourseStudentIdList);
|
|
|
+// List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
|
|
|
+// Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
|
|
|
+ List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
|
|
|
+ Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
|
|
|
|
|
|
List<EduOrganStudentDataDto> result = new ArrayList<>();
|
|
|
|
|
@@ -586,9 +597,11 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
if(organsNewCloudStudyNumMap.containsKey(organ.getId().toString())){
|
|
|
organStudentVipData.setNewCloudStudyStudentNum(organsNewCloudStudyNumMap.get(organ.getId().toString()).intValue());
|
|
|
}
|
|
|
- if(organsNewCloudNewStudentNumMap.containsKey(organ.getId().toString())){
|
|
|
- organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId().toString()).intValue());
|
|
|
- organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
|
|
|
+ if(organsNewCloudNewStudentNumMap.containsKey(organ.getId())){
|
|
|
+ organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId()));
|
|
|
+ if(organStudentVipData.getNewStudentNum() > 0 && organStudentVipData.getTotalStudentNum()>0){
|
|
|
+ organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
|
|
|
+ }
|
|
|
}
|
|
|
result.add(organStudentVipData);
|
|
|
}
|
|
@@ -644,16 +657,22 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
//获取新增人数占比(已上乐团课小于等于4)
|
|
|
//获取有在读学员的乐团编号
|
|
|
//获取有在读学员的学员编号
|
|
|
- List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
|
|
|
- List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
|
|
|
- List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
|
|
|
- Map<String, Long> organsNewCloudNewStudentNumMap = new HashMap<>();
|
|
|
- if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
|
|
|
- List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
|
|
|
- List<Integer> userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
|
|
|
- List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
|
|
|
- organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
|
|
|
- }
|
|
|
+// List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
|
|
|
+// List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
|
|
|
+// List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
|
|
|
+// //获取有乐团没排课的数据
|
|
|
+// List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
|
|
|
+// List<Integer> userIdList = new ArrayList<>();
|
|
|
+// if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
|
|
|
+// List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
|
|
|
+// userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
|
|
|
+// }
|
|
|
+// userIdList.addAll(noCourseStudentIdList);
|
|
|
+// List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
|
|
|
+// Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
|
|
|
+
|
|
|
+ List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
|
|
|
+ Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
|
|
|
|
|
|
List<EduOrganStudentDataDto> result = new ArrayList<>();
|
|
|
|
|
@@ -685,9 +704,11 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
if(organsNewCloudStudyNumMap.containsKey(organ.getId().toString())){
|
|
|
organStudentVipData.setNewCloudStudyStudentNum(organsNewCloudStudyNumMap.get(organ.getId().toString()).intValue());
|
|
|
}
|
|
|
- if(organsNewCloudNewStudentNumMap.containsKey(organ.getId().toString())){
|
|
|
- organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId().toString()).intValue());
|
|
|
- organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
|
|
|
+ if(organsNewCloudNewStudentNumMap.containsKey(organ.getId())){
|
|
|
+ organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId()));
|
|
|
+ if(organStudentVipData.getNewStudentNum() > 0 && organStudentVipData.getTotalStudentNum()>0){
|
|
|
+ organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
|
|
|
+ }
|
|
|
}
|
|
|
result.add(organStudentVipData);
|
|
|
}
|