瀏覽代碼

feat: 首页数据调整;
fix:退团人数为0时提示请设置课酬

Joburgess 4 年之前
父節點
當前提交
b6fa147b3d

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

@@ -139,6 +139,10 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                                 @Param("groupType")GroupType groupType,
                                                 @Param("courseStatus") CourseStatusEnum courseStatus);
 
+    List<IndexBaseMonthData> getGroupCourseDataWithGroup(@Param("dayStr") String dayStr,
+                                                @Param("groupType")GroupType groupType,
+                                                @Param("courseStatus") CourseStatusEnum courseStatus);
+
     int countLessThenThreeClassGroupNum(@Param("organIds") Set<Integer> organIds);
     List<String> getLessThenThreeMusicGroup(@Param("organIds") Set<Integer> organIds);
 

+ 15 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -164,7 +164,11 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                     BigDecimal salary = null;
                     if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
-                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        if(studentNum>0){
+                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        }else{
+                            salary = new BigDecimal("0");
+                        }
                     }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
@@ -350,7 +354,11 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     }
                     BigDecimal salary = null;
                     if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
-                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        if(studentNum>0){
+                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        }else{
+                            salary = new BigDecimal("0");
+                        }
                     }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
@@ -558,7 +566,11 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                     BigDecimal salary = null;
                     if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
-                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        if(studentNum>0){
+                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        }else{
+                            salary = new BigDecimal("0");
+                        }
                     }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
                         if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){

+ 8 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -149,9 +149,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
 			indexBaseData.setIndexMonthData(typeDateMapEntry.getValue(), currentMonth);
 			if(IndexDataType.FINANCE_PAY.equals(typeDateMapEntry.getKey()) || IndexDataType.FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-				IndexDataType.FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey())
-				||IndexDataType.MUSIC_GROUP_COURSE.equals(typeDateMapEntry.getKey())||IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey())
-					||IndexDataType.PRACTICE_GROUP_COURSE.equals(typeDateMapEntry.getKey())){
+				IndexDataType.FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey())){
 				indexBaseData.setPercent(typeDateMapEntry.getValue().stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
 			}
 			result.add(indexBaseData);
@@ -193,10 +191,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 //		saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, true), dayStr, IndexDataType.DIMISSION_NUM);
 
 		//剩余课时
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.OVER), dayStr, IndexDataType.SURPLUS_COURSE_NUM);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_COURSE_NUM);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM);
+		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM);
 
 		//已消耗课时
 		saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER), dayStr, IndexDataType.OVER_COURSE_NUM);
@@ -215,9 +213,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment"), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE);
 
 		//课程数据
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER), dayStr, IndexDataType.VIP_GROUP_COURSE);
-		saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.MUSIC, null), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null), dayStr, IndexDataType.VIP_GROUP_COURSE);
+		saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.PRACTICE, null), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
 
 		//学员变动
 		saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);

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

@@ -400,6 +400,7 @@
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		  	AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
+		  	AND m.group_type_!='DEMO'
 			AND m.organ_id_ IS NOT NULL
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -427,6 +428,7 @@
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 			AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
+			AND m.group_type_!='DEMO'
 			AND m.organ_id_ IS NOT NULL
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -438,6 +440,33 @@
 		ORDER BY m.organ_id_;
 	</select>
 
+	<select id="getGroupCourseDataWithGroup" resultMap="IndexBaseMonthData">
+		SELECT
+		m.organ_id_,
+		#{dayStr} month_,
+		COUNT( m.id_ ) total_num_,
+		COUNT( m.id_ ) activate_num_,
+		COUNT( m.id_ ) percent_
+		FROM
+		course_schedule m
+		WHERE
+		m.del_flag_ = 0
+		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
+		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
+		AND m.group_type_!='DEMO'
+		AND m.organ_id_ IS NOT NULL
+		<if test="groupType!=null">
+			AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		</if>
+		<if test="dayStr!=null and dayStr!=''">
+			AND m.class_date_ = #{dayStr}
+		</if>
+		GROUP BY
+		m.organ_id_
+		ORDER BY
+		m.organ_id_;
+	</select>
+
 	<select id="getOtherStudentData" resultMap="IndexBaseMonthData">
 		SELECT
 			su.organ_id_,