Explorar o código

feat:首页改版;
fix:调整合并课主课时被

Joburgess %!s(int64=4) %!d(string=hai) anos
pai
achega
08742564e7

+ 12 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -43,7 +43,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/7 0007
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
-    List<IndexBaseMonthData> getStudentSignUpData();
+    List<IndexBaseMonthData> getStudentSignUpData(@Param("month") String month);
 
     /**
      * @describe 统计作业布置数据
@@ -51,7 +51,8 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/7 0007
      * @return java.util.List<com.ym.mec.biz.dal.dto.IndexBaseMonthDto>
      */
-    List<IndexBaseMonthData> getHomeworkData(@Param("type") String type);
+    List<IndexBaseMonthData> getHomeworkData(@Param("month") String month,
+                                             @Param("type") String type);
 
     /**
      * @describe 统计合作单位数据
@@ -67,7 +68,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/11 0011
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
      */
-    List<IndexBaseMonthData> getMusicData();
+    List<IndexBaseMonthData> getMusicData(@Param("month") String month);
 
     /**
      * @describe 统计乐团学员数据
@@ -75,14 +76,17 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @date 2021/1/11 0011
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexBaseMonthData>
      */
-    List<IndexBaseMonthData> getMusicStudentData(@Param("type") String type);
+    List<IndexBaseMonthData> getMusicStudentData(@Param("month") String month,
+                                                 @Param("type") String type);
 
-    List<IndexBaseMonthData> getStudentConversionData();
+    List<IndexBaseMonthData> getStudentConversionData(@Param("month") String month);
 
-    List<IndexBaseMonthData> getOtherStudentData();
+    List<IndexBaseMonthData> getOtherStudentData(@Param("month") String month);
 
-    List<IndexBaseMonthData> getTeacherData(@Param("jobNature") JobNatureEnum jobNature,
+    List<IndexBaseMonthData> getTeacherData(@Param("month") String month,
+                                            @Param("jobNature") JobNatureEnum jobNature,
                                             @Param("isDemission") Boolean isDemission);
 
-    List<IndexBaseMonthData> getGroupCourseData(@Param("groupType")GroupType groupType);
+    List<IndexBaseMonthData> getGroupCourseData(@Param("month") String month,
+                                                @Param("groupType")GroupType groupType);
 }

+ 24 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -20,9 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.text.DateFormat;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -96,6 +94,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					||IndexDataType.HOMEWORK_SUBMIT_RATE.equals(typeDateMapEntry.getKey())||IndexDataType.HOMEWORK_SUBMIT_RATE.equals(typeDateMapEntry.getKey())
 					||IndexDataType.STUDENT_CONVERSION.equals(typeDateMapEntry.getKey())){
 				for (IndexBaseMonthData indexBaseMonthData : typeDateMapEntry.getValue()) {
+					if(indexBaseMonthData.getTotalNum().compareTo(BigDecimal.ZERO)==0){
+						indexBaseMonthData.setPercent(BigDecimal.ZERO);
+						continue;
+					}
 					indexBaseMonthData.setPercent(indexBaseMonthData.getActivateNum().divide(indexBaseMonthData.getTotalNum(), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
 				}
 			}
@@ -121,19 +123,21 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			this.organIds.get().addAll(allOrgans.stream().map(Organization::getId).collect(Collectors.toSet()));
 		}
 
-		month = df.format(nowDate);
+		if(StringUtils.isBlank(month)){
+			month = df.format(nowDate);
+		}
 
 		//运营数据
 		saveData(indexBaseMonthDataDao.getSchoolData(month), month, IndexDataType.SCHOOL);
-		saveData(indexBaseMonthDataDao.getMusicData(), month, IndexDataType.MUSIC_GROUP_NUM);
-		saveData(indexBaseMonthDataDao.getMusicStudentData(null), month, IndexDataType.MUSIC_GROUP_STUDENT);
-		saveData(indexBaseMonthDataDao.getOtherStudentData(), month, IndexDataType.OTHER_STUDENT);
+		saveData(indexBaseMonthDataDao.getMusicData(month), month, IndexDataType.MUSIC_GROUP_NUM);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(month, null), month, IndexDataType.MUSIC_GROUP_STUDENT);
+		saveData(indexBaseMonthDataDao.getOtherStudentData(month), month, IndexDataType.OTHER_STUDENT);
 
 		//业务数据
-		saveData(indexBaseMonthDataDao.getStudentSignUpData(), month, IndexDataType.ACTIVATION_RATE);
-		saveData(indexBaseMonthDataDao.getHomeworkData(null), month, IndexDataType.HOMEWORK_CREATE_RATE);
-		saveData(indexBaseMonthDataDao.getHomeworkData("submit"), month, IndexDataType.HOMEWORK_SUBMIT_RATE);
-		saveData(indexBaseMonthDataDao.getHomeworkData("comment"), month, IndexDataType.HOMEWORK_COMMENT_RATE);
+		saveData(indexBaseMonthDataDao.getStudentSignUpData(month), month, IndexDataType.ACTIVATION_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData(month, null), month, IndexDataType.HOMEWORK_CREATE_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData(month, "submit"), month, IndexDataType.HOMEWORK_SUBMIT_RATE);
+		saveData(indexBaseMonthDataDao.getHomeworkData(month, "comment"), month, IndexDataType.HOMEWORK_COMMENT_RATE);
 
 		//经营数据
 		saveData(null, month, IndexDataType.SHOULD_INCOME_MONEY);
@@ -143,20 +147,20 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		saveData(null, month, IndexDataType.REVENUE_MONEY);
 
 		//人事数据
-		saveData(indexBaseMonthDataDao.getTeacherData(null, null), month, IndexDataType.TEACHER_NUM);
-		saveData(indexBaseMonthDataDao.getTeacherData(JobNatureEnum.FULL_TIME, null), month, IndexDataType.FULL_TIME_NUM);
-		saveData(indexBaseMonthDataDao.getTeacherData(JobNatureEnum.PART_TIME, null), month, IndexDataType.PART_TIME_NUM);
-		saveData(indexBaseMonthDataDao.getTeacherData(null, true), month, IndexDataType.DIMISSION_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(month, null, null), month, IndexDataType.TEACHER_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(month, JobNatureEnum.FULL_TIME, null), month, IndexDataType.FULL_TIME_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(month, JobNatureEnum.PART_TIME, null), month, IndexDataType.PART_TIME_NUM);
+		saveData(indexBaseMonthDataDao.getTeacherData(month, null, true), month, IndexDataType.DIMISSION_NUM);
 
 		//学员变动
-		saveData(indexBaseMonthDataDao.getMusicStudentData("ALL"), month, IndexDataType.NEWLY_STUDENT_NUM);
-		saveData(indexBaseMonthDataDao.getMusicStudentData("QUIT"), month, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
-		saveData(indexBaseMonthDataDao.getStudentConversionData(), month, IndexDataType.STUDENT_CONVERSION);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(month, "ALL"), month, IndexDataType.NEWLY_STUDENT_NUM);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(month, "QUIT"), month, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+		saveData(indexBaseMonthDataDao.getStudentConversionData(month), month, IndexDataType.STUDENT_CONVERSION);
 
 		//课程数据
-		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.MUSIC), month, IndexDataType.MUSIC_GROUP_COURSE);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.VIP), month, IndexDataType.VIP_GROUP_COURSE);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(GroupType.PRACTICE), month, IndexDataType.PRACTICE_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.MUSIC), month, IndexDataType.MUSIC_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.VIP), month, IndexDataType.VIP_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.PRACTICE), month, IndexDataType.PRACTICE_GROUP_COURSE);
 
 		return result;
 	}

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

@@ -197,7 +197,9 @@
 		WHERE
 			del_flag_ = 0
 		  	AND organ_id_ IS NOT NULL
-			AND DATE_FORMAT(create_time_, '%Y-%m') = #{month}
+		  	<if test="month!=null and month!=''">
+				AND DATE_FORMAT(create_time_, '%Y-%m') &lt;= #{month}
+			</if>
 		GROUP BY
 			organ_id_
 		ORDER BY
@@ -206,7 +208,7 @@
 	<select id="getMusicData" resultMap="IndexBaseMonthData">
 		SELECT
 			organ_id_,
-			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			CONCAT(#{month}, '-01') month_,
 			COUNT( id_ ) total_num_,
 			COUNT( id_ ) activate_num_,
 			COUNT( id_ ) percent_
@@ -216,6 +218,9 @@
 			del_flag_ = 0
 			AND status_ = 'PROGRESS'
 			AND organ_id_ IS NOT NULL
+			<if test="month!=null and month!=''">
+				AND DATE_FORMAT(create_time_, '%Y-%m') &lt;= #{month}
+			</if>
 		GROUP BY
 			organ_id_
 		ORDER BY
@@ -224,7 +229,7 @@
 	<select id="getMusicStudentData" resultMap="IndexBaseMonthData">
 		SELECT
 			mg.organ_id_,
-			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			CONCAT(#{month}, '-01') month_,
 			COUNT( DISTINCT sr.user_id_ ) total_num_,
 			COUNT( DISTINCT sr.user_id_ ) activate_num_,
 			COUNT( DISTINCT sr.user_id_ ) percent_
@@ -240,6 +245,9 @@
 			<if test="type!=null and type=='QUIT'">
 				AND sr.music_group_status_='QUIT'
 			</if>
+			<if test="month!=null and month!=''">
+				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &lt;= #{month}
+			</if>
 		GROUP BY
 			mg.organ_id_
 		ORDER BY
@@ -249,7 +257,7 @@
 	<select id="getTeacherData" resultMap="IndexBaseMonthData">
 		SELECT
 			t.organ_id_,
-			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			CONCAT(#{month}, '-01') month_,
 			COUNT( t.id_ ) total_num_,
 			COUNT( t.id_ ) activate_num_,
 			COUNT( t.id_ ) percent_
@@ -277,7 +285,7 @@
 	<select id="getGroupCourseData" resultMap="IndexBaseMonthData">
 		SELECT
 			m.organ_id_,
-			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			CONCAT(#{month}, '-01') month_,
 			COUNT( m.id_ ) total_num_,
 			COUNT( m.id_ ) activate_num_,
 			COUNT( m.id_ ) percent_
@@ -290,6 +298,9 @@
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
+			<if test="month!=null and month!=''">
+				AND (DATE_FORMAT(m.create_time_, '%Y-%m') &lt;= #{month} OR YEAR(m.create_time_)=3000)
+			</if>
 		GROUP BY
 			m.organ_id_
 		ORDER BY
@@ -299,7 +310,7 @@
 	<select id="getOtherStudentData" resultMap="IndexBaseMonthData">
 		SELECT
 			m.organ_id_,
-			CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '-01') month_,
+			CONCAT(#{month}, '-01') month_,
 			COUNT( DISTINCT s.user_id_ ) total_num_,
 			COUNT( DISTINCT s.user_id_ ) activate_num_,
 			COUNT( DISTINCT s.user_id_ ) percent_
@@ -308,9 +319,12 @@
 				LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 		WHERE
 			m.del_flag_ = 0
-		  AND m.is_lock_ = 0
-		  AND m.organ_id_ IS NOT NULL
-		  AND m.group_type_ IN ('VIP', 'PRACTICE')
+			AND m.is_lock_ = 0
+			AND m.organ_id_ IS NOT NULL
+			AND m.group_type_ IN ('VIP', 'PRACTICE')
+			<if test="month!=null and month!=''">
+				AND (DATE_FORMAT(m.create_time_, '%Y-%m') &lt;= #{month} OR YEAR(m.create_time_)=3000)
+			</if>
 		GROUP BY
 			m.organ_id_
 		ORDER BY
@@ -331,7 +345,10 @@
 				LEFT JOIN practice_group pg ON cssp.music_group_id_=pg.id_
 		WHERE
 			mg.del_flag_ = 0
-		  AND mg.organ_id_ IS NOT NULL
+			AND mg.organ_id_ IS NOT NULL
+			<if test="month!=null and month!=''">
+				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &lt;= #{month}
+			</if>
 		GROUP BY
 			mg.organ_id_
 		ORDER BY

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -195,7 +195,7 @@ public class CourseScheduleController extends BaseController {
         if(Objects.isNull(oldCourseSchedule)){
             return failed("未找到指定课程");
         }
-        if(Objects.nonNull(oldCourseSchedule.getNewCourseId())){
+        if(Objects.nonNull(oldCourseSchedule.getNewCourseId())&&!oldCourseSchedule.getNewCourseId().equals(oldCourseSchedule.getId())){
             return failed("被合并课程禁止调整");
         }
         if(GroupType.VIP.equals(oldCourseSchedule.getGroupType())){

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -321,7 +321,7 @@ public class TaskController extends BaseController {
 	}
 
 	@GetMapping("/countIndexBaseData")
-	public void countIndexBaseData(String startMonth){
-		indexBaseMonthDataService.indexBaseDataTask(startMonth);
+	public void countIndexBaseData(String month){
+		indexBaseMonthDataService.indexBaseDataTask(month);
 	}
 }