Browse Source

Merge remote-tracking branch 'origin/master'

zouxuan 4 years ago
parent
commit
576f149ee7

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SporadicChargeTypeEnum.java

@@ -16,7 +16,7 @@ public enum SporadicChargeTypeEnum implements BaseEnum<Integer, SporadicChargeTy
     OTHER(11,"其他"),
     DOUBLE_ELEVEN2020(12,"2020双十一活动"),
     HIGH_ONLINE_ACTIVITY(13,"网基课活动"),
-    PRACTICE_GROUP_BUY(14,"关心包");
+    PRACTICE_GROUP_BUY(14,"加油包");
 
     private Integer code;
 

+ 18 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -67,9 +67,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	public List<IndexBaseDto> getIndexBaseData(IndexDataQueryInfo queryInfo) {
 		List<IndexBaseDto> result = new ArrayList<>();
 
-		DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM");
 		LocalDate nowDate = LocalDate.now();
-		nowDate = nowDate.withDayOfMonth(1);
 		Date currentMonth = Date.from(nowDate.atStartOfDay(DateUtil.zoneId).toInstant());
 
 		LocalDate startDate = nowDate.plusDays(-30);
@@ -91,18 +89,33 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			dataTypes = Arrays.stream(queryInfo.getDataTypes().split(",")).collect(Collectors.toSet());
 		}
 
-		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, df.format(startDate), df.format(endDate));
+		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, startDate.toString(), endDate.toString());
 		if(Objects.isNull(indexBaseDatas)){
 			indexBaseDatas = new ArrayList<>();
 		}
 
 		Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = indexBaseDatas.stream().collect(Collectors.groupingBy(IndexBaseMonthData::getDataType));
+
+		for (IndexDataType dataType : IndexDataType.values()) {
+			if(typeDateMap.containsKey(dataType)){
+				continue;
+			}
+
+			IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData();
+			indexBaseMonthData.setMonth(Date.from(endDate.atStartOfDay(DateUtil.zoneId).toInstant()));
+			indexBaseMonthData.setTotalNum(BigDecimal.ZERO);
+			indexBaseMonthData.setActivateNum(BigDecimal.ZERO);
+			indexBaseMonthData.setPercent(BigDecimal.ZERO);
+			indexBaseMonthData.setDataType(dataType);
+			typeDateMap.put(dataType, new ArrayList<>(Arrays.asList(indexBaseMonthData)));
+		}
+
 		for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {
 			Set<String> hasMonths = typeDateMapEntry.getValue().stream().map(d -> DateUtil.dateToString(d.getMonth(), "yyyy-MM-dd")).collect(Collectors.toSet());
 			LocalDate currentMonthDate = startDate;
 			while (currentMonthDate.compareTo(endDate)<=0){
 				if(hasMonths.contains(currentMonthDate.toString())){
-					currentMonthDate = currentMonthDate.plusMonths(1);
+					currentMonthDate = currentMonthDate.plusDays(1);
 					continue;
 				}
 				IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData();
@@ -112,7 +125,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				indexBaseMonthData.setPercent(BigDecimal.ZERO);
 				indexBaseMonthData.setDataType(typeDateMapEntry.getKey());
 				typeDateMapEntry.getValue().add(indexBaseMonthData);
-				currentMonthDate = currentMonthDate.plusMonths(1);
+				currentMonthDate = currentMonthDate.plusDays(1);
 			}
 			typeDateMapEntry.getValue().sort(Comparator.comparing(IndexBaseMonthData::getMonth));
 			if(IndexDataType.ACTIVATION_RATE.equals(typeDateMapEntry.getKey())||IndexDataType.HOMEWORK_CREATE_RATE.equals(typeDateMapEntry.getKey())

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

@@ -350,7 +350,7 @@ public class StudentServeServiceImpl implements StudentServeService {
         Set<Integer> noCourseServeStudentIds = allServeStudentIds.stream().filter(id -> !haveCourseBeServeStudentIds.contains(id)).collect(Collectors.toSet());
 
         Set<Integer> musicStudentIds = new HashSet<>();
-        if(Objects.isNull(noCourseServeStudentIds)){
+        if(!Objects.isNull(noCourseServeStudentIds)){
             musicStudentIds.addAll(noCourseServeStudentIds);
         }
         if(!CollectionUtils.isEmpty(musicCourseStudentIds)){
@@ -370,7 +370,55 @@ public class StudentServeServiceImpl implements StudentServeService {
             Map<CourseSchedule.CourseScheduleType, List<StudentServeCourseDto>> typeCourseMap = studentCourseMapEntry.getValue().stream().collect(Collectors.groupingBy(StudentServeCourseDto::getType));
 
             if(typeCourseMap.containsKey(CourseSchedule.CourseScheduleType.SINGLE)){
+
+//                List<StudentServeCourseDto> futureCourseInfo = typeCourseMap.get(CourseSchedule.CourseScheduleType.SINGLE);
+//                List<StudentServeCourseDto> weekCourseInfo = typeCourseMap.get(CourseSchedule.CourseScheduleType.SINGLE).stream().filter(c -> c.getCourseStartTime().compareTo(nextMonday) < 0).collect(Collectors.toList());
+//                if(CollectionUtils.isEmpty(weekCourseInfo)){
+//                    Map<String, List<StudentServeCourseDto>> groupCourseInfo = futureCourseInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getMusicGroupId));
+//
+//                    Map<Integer, Integer> teacherNumMap = new HashMap<>();
+//                    for (Map.Entry<String, List<StudentServeCourseDto>> groupCourseInfoEntry : groupCourseInfo.entrySet()) {
+//                        StudentServeCourseDto courseInfo = groupCourseInfoEntry.getValue().stream().min(Comparator.comparing(StudentServeCourseDto::getCourseStartTime)).get();
+//
+//                        if(!teacherNumMap.containsKey(courseInfo.getActualTeacherId())){
+//                            teacherNumMap.put(courseInfo.getActualTeacherId(), 1);
+//                        }else{
+//                            teacherNumMap.put(courseInfo.getActualTeacherId(), teacherNumMap.get(courseInfo.getActualTeacherId())+1);
+//                        }
+//                    }
+//
+//                    for (Map.Entry<Integer, Integer> teacherNumMapEntry : teacherNumMap.entrySet()) {
+//                        StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation(studentCourseMapEntry.getKey(),
+//                                teacherNumMapEntry.getKey(),nowDate.get(DateUtil.weekFields.weekOfYear()),
+//                                DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"),
+//                                "EXERCISE", null);
+//                        studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherNumMapEntry.getValue());
+//                        results.add(studentExtracurricularExercisesSituation);
+//                    }
+//                }else{
+//                    Map<String, List<StudentServeCourseDto>> groupCourseInfo = weekCourseInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getMusicGroupId));
+//                    Map<Integer, Set<Long>> teacherServiceCourseIdMap = new HashMap<>();
+//                    for (Map.Entry<String, List<StudentServeCourseDto>> groupCourseInfoEntry : groupCourseInfo.entrySet()) {
+//                        StudentServeCourseDto courseInfo = groupCourseInfoEntry.getValue().stream().min(Comparator.comparing(StudentServeCourseDto::getCourseStartTime)).get();
+//                        if(!teacherServiceCourseIdMap.containsKey(courseInfo.getActualTeacherId())){
+//                            teacherServiceCourseIdMap.put(courseInfo.getActualTeacherId(), new HashSet<>());
+//                        }
+//                        teacherServiceCourseIdMap.get(courseInfo.getActualTeacherId()).add(courseInfo.getCourseScheduleId());
+//                    }
+//                    for (Map.Entry<Integer, Set<Long>> teacherServiceCourseIdMapEntry : teacherServiceCourseIdMap.entrySet()) {
+//                        StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation(studentCourseMapEntry.getKey(),
+//                                teacherServiceCourseIdMapEntry.getKey(),nowDate.get(DateUtil.weekFields.weekOfYear()),
+//                                DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"),
+//                                "HOMEWORK", StringUtils.join(teacherServiceCourseIdMapEntry.getValue(), ","));
+//                        studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherServiceCourseIdMapEntry.getValue().size());
+//                        results.add(studentExtracurricularExercisesSituation);
+//                    }
+//                }
+
                 Set<String> musicGroupIds = noCourseStudentMusicIdsMap.get(studentCourseMapEntry.getKey());
+                if(CollectionUtils.isEmpty(musicGroupIds)){
+                    continue;
+                }
                 Map<Integer, Integer> teacherNumMap = new HashMap<>();
                 for (String groupId : musicGroupIds) {
                     Integer teacherId = null;
@@ -433,6 +481,9 @@ public class StudentServeServiceImpl implements StudentServeService {
                 }
             }else if(typeCourseMap.containsKey(CourseSchedule.CourseScheduleType.MIX)){
                 Set<String> musicGroupIds = noCourseStudentMusicIdsMap.get(studentCourseMapEntry.getKey());
+                if(CollectionUtils.isEmpty(musicGroupIds)){
+                    continue;
+                }
                 Map<Integer, Integer> teacherNumMap = new HashMap<>();
                 for (String groupId : musicGroupIds) {
                     Integer teacherId = null;
@@ -498,6 +549,9 @@ public class StudentServeServiceImpl implements StudentServeService {
 
         for (Integer noCourseServeStudentId : noCourseServeStudentIds) {
             Set<String> musicGroupIds = noCourseStudentMusicIdsMap.get(noCourseServeStudentId);
+            if(CollectionUtils.isEmpty(musicGroupIds)){
+                continue;
+            }
             Map<Integer, Integer> teacherNumMap = new HashMap<>();
             for (String groupId : musicGroupIds) {
                 Integer teacherId = null;

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

@@ -129,10 +129,10 @@
 				</foreach>
 			</if>
 			<if test="startMonth!=null and startMonth!=''">
-				AND DATE_FORMAT(month_, '%Y-%m')&gt;=#{startMonth}
+				AND month_&gt;=#{startMonth}
 			</if>
 			<if test="endMonth!=null and endMonth!=''">
-				AND DATE_FORMAT(month_, '%Y-%m')&lt;=#{endMonth}
+				AND month_&lt;=#{endMonth}
 			</if>
 		</where>
 		GROUP BY month_,data_type_

+ 10 - 6
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -923,12 +923,16 @@
     </update>
 
     <select id="queryRequiredOverList" resultMap="VipGroup">
-        select vg.*
-        from vip_group vg
-            left join class_group cg on vg.id_ = cg.music_group_id_ AND cg.group_type_ = 'VIP'
-        where vg.group_status_ = 2
-          and cg.total_class_times_ = cg.current_class_times_
-          and cg.total_class_times_ &gt; 0
+        SELECT
+            vg.*
+        FROM
+            vip_group vg
+            LEFT JOIN course_schedule cs ON cs.group_type_ = 'VIP' AND CONCAT(vg.id_, '') = cs.music_group_id_
+        WHERE
+            vg.group_status_ = 2
+            GROUP BY
+            vg.id_
+        HAVING COUNT( CASE WHEN cs.status_ != 'OVER' THEN 1 ELSE NULL END )&lt;=0
     </select>
     <select id="queryNormalStatusList" resultMap="VipGroup">
         SELECT *