Browse Source

feat: 首页数据调整

Joburgess 4 năm trước cách đây
mục cha
commit
dd89894a79

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -40,6 +40,9 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                               @Param("startMonth") String startMonth,
                                               @Param("endMonth") String endMonth);
 
+	List<IndexBaseMonthData> getWithDayAndDataType(@Param("day") String day,
+                                                   @Param("dataType")IndexDataType dataType);
+
 	/**
 	 * @describe 统计学员注册数据
 	 * @author Joburgess

+ 19 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -233,14 +233,31 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			dataList = new ArrayList<>();
 		}
 		Set<Integer> hasOrganIds = dataList.stream().map(IndexBaseMonthData::getOrganId).collect(Collectors.toSet());
+
+		boolean specialType = IndexDataType.NEWLY_STUDENT_NUM.equals(indexDataType)||IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM.equals(indexDataType);
+		Set<Integer> ignoreOrganIds = new HashSet<>();
+		if(specialType){
+			List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getWithDayAndDataType(dayStr, indexDataType);
+			if(!CollectionUtils.isEmpty(indexBaseDatas)) {
+				ignoreOrganIds = indexBaseDatas.stream().map(IndexBaseMonthData::getOrganId).collect(Collectors.toSet());
+			}
+		}
+
 		for (Integer organId : this.organIds.get()) {
 			if(hasOrganIds.contains(organId)){
 				continue;
 			}
+			if(specialType&&ignoreOrganIds.contains(organId)){
+				continue;
+			}
 			dataList.add(new IndexBaseMonthData(date, organId));
 		}
-		indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(dayStr), indexDataType);
-		indexBaseMonthDataDao.batchInsertWithDataType(dataList, indexDataType);
+		if(!IndexDataType.NEWLY_STUDENT_NUM.equals(indexDataType)&&!IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM.equals(indexDataType)){
+			indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(dayStr), indexDataType);
+		}
+		if(!CollectionUtils.isEmpty(dataList)){
+			indexBaseMonthDataDao.batchInsertWithDataType(dataList, indexDataType);
+		}
 	}
 
 	@Override

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

@@ -144,6 +144,15 @@
 		GROUP BY month_,data_type_
 	</select>
 
+	<select id="getWithDayAndDataType" resultMap="IndexBaseMonthData">
+		SELECT
+			*
+		FROM index_base_month_data
+		WHERE 1=1
+			AND data_type_ = #{dataType}
+			AND month_&gt;=#{day}
+	</select>
+
 	<select id="getStudentSignUpData" resultMap="IndexBaseMonthData">
 		SELECT
 			organ_id_,