zouxuan 5 lat temu
rodzic
commit
7342a27fd5

+ 9 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -454,7 +454,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			dataList = vipGroupDao.findAllByOrgan(params);
 			List<String> vipGroupIds = dataList.stream().map(vipGroup -> String.valueOf(vipGroup.getId())).distinct().collect(Collectors.toList());
 			List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
-			Map<Long,Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
+			Map<String,Integer> vipGroupOverCourseMaps = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(vipGroupOverCourses)),HashMap.class);
 
 			List<ClassGroup> classGroupsByVipGroups = classGroupDao
 					.findByMusicGroupsAndType(vipGroupIds.stream().map(vipGroupId->String.valueOf(vipGroupId)).collect(Collectors.toList()),
@@ -462,12 +462,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 			Map<String, ClassGroup> vipGroupClassGroupMap = classGroupsByVipGroups.stream().collect(Collectors.toMap(ClassGroup::getMusicGroupId, classGroup -> classGroup));
 			dataList.forEach(vipGroup -> {
-				Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getId());
-				if(Objects.isNull(overCourses)){
-					overCourses=0;
+				Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getId().toString());
+				ClassGroup classGroup = vipGroupClassGroupMap.get(vipGroup.getId().toString());
+				if(Objects.nonNull(classGroup)){
+					vipGroup.setStudentNum(classGroup.getStudentNum());
+					vipGroup.setTotalClassTimes(classGroup.getTotalClassTimes());
+					vipGroup.setCurrentClassTimes(classGroup.getCurrentClassTimes());
 				}
 				Integer totalClassTimes=vipGroup.getTotalClassTimes();
-				if(Objects.isNull(totalClassTimes)){
+				if(Objects.isNull(totalClassTimes) || Objects.isNull(overCourses)){
 					vipGroup.setMonthConsumeRate(0.0);
 				}else{
 					if(totalClassTimes<=0){
@@ -476,17 +479,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						BigDecimal overCoursesOfMonth=new BigDecimal(overCourses),allClassTimes=new BigDecimal(totalClassTimes);
 
 						Double monthConsumeRate=overCoursesOfMonth.divide(allClassTimes,CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP).doubleValue();
-						vipGroup.setMonthConsumeRate(monthConsumeRate);
+						vipGroup.setMonthConsumeRate(monthConsumeRate * 100);
 					}
-
 				}
-				ClassGroup classGroup = vipGroupClassGroupMap.get(vipGroup.getId().toString());
-				if(Objects.nonNull(classGroup)){
-					vipGroup.setStudentNum(classGroup.getStudentNum());
-					vipGroup.setTotalClassTimes(classGroup.getTotalClassTimes());
-					vipGroup.setCurrentClassTimes(classGroup.getCurrentClassTimes());
-				}
-
 			});
 		}
 		if (count == 0) {

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

@@ -702,7 +702,7 @@
         FROM
             course_schedule cs
             WHERE cs.status_='OVER'
-            AND DATE_FORMAT(cs.class_date_,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')
+            AND DATE_FORMAT(cs.class_date_,'%Y-%m')=DATE_FORMAT(NOW(),'%Y-%m')
             AND cs.group_type_='VIP'
             AND cs.music_group_id_ IN
             <foreach collection="list" item="id" open="(" close=")" separator=",">