Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

周箭河 4 lat temu
rodzic
commit
f2145a1bc6

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java

@@ -26,7 +26,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/task/**", "/user/updatePassword", "/user/noAuth/queryUserByPhone", "/user/queryUserByPhone", "/user/add").hasIpAddress("0.0.0.0/0")
+				.authorizeRequests().antMatchers("/task/**", "/user/updatePassword", "/user/noAuth/queryUserByPhone", "/user/queryUserByPhone", "/user/add", "/user/queryUserById/*").hasIpAddress("0.0.0.0/0")
 				.anyRequest().authenticated().and().httpBasic();
 	}
 

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -85,7 +85,11 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     List<IndexBaseMonthData> getMusicGroupStudentFromPreData(@Param("month") String month,
                                                              @Param("paymentStatus") PaymentStatusEnum paymentStatus);
 
-    List<IndexBaseMonthData> getStudentConversionData(@Param("month") String month);
+    List<Integer> getMusicGroupStudentIdFromPre(@Param("month") String month,
+                                                @Param("paymentStatus") PaymentStatusEnum paymentStatus);
+
+    List<IndexBaseMonthData> getStudentConversionData(@Param("month") String month,
+                                                      @Param("studentIds") List<Integer> studentIds);
 
     List<IndexBaseMonthData> getOtherStudentData(@Param("month") String month);
 

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexBaseMonthData.java

@@ -15,6 +15,8 @@ public class IndexBaseMonthData {
 	
 	/**  */
 	private java.util.Date month;
+
+	private String title;
 	
 	/** 分部编号 */
 	private Integer organId;
@@ -116,4 +118,12 @@ public class IndexBaseMonthData {
 	public void setUpdateTime(Date updateTime) {
 		this.updateTime = updateTime;
 	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
 }

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -543,6 +543,5 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param courseIds
      * @param classGroupStudents
      */
-    void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map<String,
-            String>> classGroupStudents,List<Long> allLockCourseIds,String batchNo,BigDecimal masterTotalPrice);
+    void spanGroupClassAdjustPass(Integer masterClassGroupId,List<Integer> studentIds,List<Long> courseIds,List<Map> classGroupStudents,List<Long> allLockCourseIds,String batchNo,BigDecimal masterTotalPrice);
 }

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

@@ -3781,7 +3781,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         musicGroupStudentClassAdjustDao.insert(musicGroupStudentClassAdjust);
         //没有需要审核的缴费项目
         if (paymentCalenderDto.getStatus() != AUDITING) {
-            List<Map<String,String>> classGroupStudents1 = (List<Map<String,String>>)JSON.parse(musicGroupStudentClassAdjust.getClassGroupStudents());
+            List<Map> classGroupStudents1 = JSON.parseArray(musicGroupStudentClassAdjust.getClassGroupStudents(),Map.class);
             spanGroupClassAdjustPass(masterClassGroupId,studentIds,courseIds,classGroupStudents1,allLockCourseIds,paymentCalenderDto.getBatchNo(),masterTotalPrice);
             return "操作成功:学员班级调整完成";
         }else {
@@ -3798,20 +3798,20 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public void spanGroupClassAdjustPass(Integer masterClassGroupId,
                                          List<Integer> studentIds,
                                          List<Long> courseIds,
-                                         List<Map<String, String>> classGroupStudents,
+                                         List<Map> classGroupStudents,
                                          List<Long> allLockCourseIds,
                                          String batchNo,BigDecimal masterTotalPrice){
         //删除班级关联的学员
         List<Integer> classGroupIds = new ArrayList<>();
         if (classGroupStudents != null && classGroupStudents.size() > 0) {
-            for (Map<String, String> classGroupStudent : classGroupStudents) {
-                Set<String> integers = classGroupStudent.keySet();
-                for (String integer : integers) {
+            for (Map<Integer, String> classGroupStudent : classGroupStudents) {
+                Set<Integer> integers = classGroupStudent.keySet();
+                for (Integer integer : integers) {
                     List<Integer> collect = Arrays.asList(classGroupStudent.get(integer).split(",")).stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
                     //学员退出群聊
-                    imGroupMemberService.quit(Long.parseLong(integer),collect);
-                    classGroupIds.add(Integer.parseInt(integer));
-                    classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(Integer.parseInt(integer), classGroupStudent.get(integer));
+                    imGroupMemberService.quit(integer.longValue(),collect);
+                    classGroupIds.add(integer);
+                    classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
                 }
             }
         }

+ 81 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.IndexDataType;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -88,7 +89,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				}
 				IndexBaseMonthData indexBaseMonthData = new IndexBaseMonthData();
 				indexBaseMonthData.setMonth(Date.from(currentMonthDate.atStartOfDay(DateUtil.zoneId).toInstant()));
-				indexBaseMonthData.setTotalNum(BigDecimal.ONE);
+				indexBaseMonthData.setTotalNum(BigDecimal.ZERO);
 				indexBaseMonthData.setActivateNum(BigDecimal.ZERO);
 				indexBaseMonthData.setPercent(BigDecimal.ZERO);
 				indexBaseMonthData.setDataType(typeDateMapEntry.getKey());
@@ -111,7 +112,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			indexBaseData.setIndexMonthData(typeDateMapEntry.getValue(), currentMonth);
 			result.add(indexBaseData);
 		}
-
+		countStudentConvertData(result, currentMonth);
 		return result;
 	}
 
@@ -161,7 +162,15 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		//学员变动
 		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.getMusicGroupPreRegistrationStudentData(month), month, IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM);
+		saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(month, null), month, IndexDataType.STUDENT_CONVERSION_STUDENT_NUM);
+		saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(month, PaymentStatusEnum.YES), month, IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM);
+		List<Integer> studentIds = indexBaseMonthDataDao.getMusicGroupStudentIdFromPre(month, PaymentStatusEnum.YES);
+		List<IndexBaseMonthData> convertStudentNum = new ArrayList<>();
+		if(!CollectionUtils.isEmpty(studentIds)){
+			convertStudentNum = indexBaseMonthDataDao.getStudentConversionData(month, studentIds);
+		}
+		saveData(convertStudentNum, month, IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM);
 
 		//课程数据
 		saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.MUSIC), month, IndexDataType.MUSIC_GROUP_COURSE);
@@ -171,6 +180,75 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		return result;
 	}
 
+	private void countStudentConvertData(List<IndexBaseDto> result, Date currentMonth){
+		List<IndexBaseMonthData> convertData = new ArrayList<>();
+
+		Map<IndexDataType, IndexBaseDto> typeDataMap = result.stream().collect(Collectors.toMap(IndexBaseDto::getDataType, i -> i, (i1, i2) -> i1));
+		List<IndexBaseMonthData> preStudentNum = typeDataMap.get(IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM).getIndexMonthData();
+
+		IndexBaseMonthData preStudentNumData = new IndexBaseMonthData();
+		preStudentNumData.setMonth(currentMonth);
+		preStudentNumData.setDataType(IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM);
+		preStudentNumData.setTitle(IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM.getMsg());
+		preStudentNumData.setTotalNum(preStudentNum.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+		preStudentNumData.setActivateNum(preStudentNum.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+
+		List<IndexBaseMonthData> studentNum = typeDataMap.get(IndexDataType.STUDENT_CONVERSION_STUDENT_NUM).getIndexMonthData();
+
+		IndexBaseMonthData studentNumData = new IndexBaseMonthData();
+		studentNumData.setMonth(currentMonth);
+		studentNumData.setDataType(IndexDataType.STUDENT_CONVERSION_STUDENT_NUM);
+		studentNumData.setTitle(IndexDataType.STUDENT_CONVERSION_STUDENT_NUM.getMsg());
+		studentNumData.setTotalNum(studentNum.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+		studentNumData.setActivateNum(studentNum.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+
+		List<IndexBaseMonthData> paymentStudentNum = typeDataMap.get(IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM).getIndexMonthData();
+
+		IndexBaseMonthData paymentStudentNumData = new IndexBaseMonthData();
+		paymentStudentNumData.setMonth(currentMonth);
+		paymentStudentNumData.setDataType(IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM);
+		paymentStudentNumData.setTitle(IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM.getMsg());
+		paymentStudentNumData.setTotalNum(paymentStudentNum.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+		paymentStudentNumData.setActivateNum(paymentStudentNum.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+
+		List<IndexBaseMonthData> convertStudentNum = typeDataMap.get(IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM).getIndexMonthData();
+
+		IndexBaseMonthData convertStudentNumData = new IndexBaseMonthData();
+		convertStudentNumData.setMonth(currentMonth);
+		convertStudentNumData.setDataType(IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM);
+		convertStudentNumData.setTitle(IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM.getMsg());
+		convertStudentNumData.setTotalNum(convertStudentNum.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+		convertStudentNumData.setActivateNum(convertStudentNum.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+
+		if(preStudentNumData.getActivateNum().compareTo(BigDecimal.ZERO)==0){
+			studentNumData.setPercent(BigDecimal.ZERO);
+			paymentStudentNumData.setPercent(BigDecimal.ZERO);
+			convertStudentNumData.setPercent(BigDecimal.ZERO);
+		}else{
+			studentNumData.setPercent(studentNumData.getActivateNum().divide(preStudentNumData.getActivateNum()).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
+			if(studentNumData.getActivateNum().compareTo(BigDecimal.ZERO)==0){
+				paymentStudentNumData.setPercent(BigDecimal.ZERO);
+				convertStudentNumData.setPercent(BigDecimal.ZERO);
+			}else{
+				paymentStudentNumData.setPercent(paymentStudentNumData.getActivateNum().divide(studentNumData.getActivateNum()).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
+				if(paymentStudentNumData.getActivateNum().compareTo(BigDecimal.ZERO)==0){
+					convertStudentNumData.setPercent(BigDecimal.ZERO);
+				}else{
+					convertStudentNumData.setPercent(convertStudentNumData.getActivateNum().divide(paymentStudentNumData.getActivateNum()).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
+				}
+			}
+		}
+
+		convertData.add(preStudentNumData);
+		convertData.add(studentNumData);
+		convertData.add(paymentStudentNumData);
+		convertData.add(convertStudentNumData);
+		IndexBaseDto indexBaseData = new IndexBaseDto(IndexDataType.STUDENT_CONVERSION, IndexDataType.STUDENT_CONVERSION.getMsg());
+		indexBaseData.setIndexMonthData(convertData, currentMonth);
+		indexBaseData.setPercent(convertStudentNumData.getPercent());
+		result.add(indexBaseData);
+	}
+
 	/**
 	 * @describe 处理并保存每月数据
 	 * @author Joburgess

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -805,7 +805,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}else if(paymentType == SPAN_GROUP_CLASS_ADJUST){
 				//删除和解冻班级,课程信息
 				MusicGroupStudentClassAdjust adjust = musicGroupStudentClassAdjustDao.findByBatchNo(batchNo);
-				List<Map<String,String>> classGroupStudents = (List<Map<String,String>>)JSON.parse(adjust.getClassGroupStudents());
+				List<Map> classGroupStudents = JSON.parseArray(adjust.getClassGroupStudents(),Map.class);
 				List<Integer> studentIds = JSON.parseArray(adjust.getStudentIds(), Integer.class);
 				List<Long> courseIds = JSON.parseArray(adjust.getSubLockCourseIds(), Long.class);
 				List<Long> allLockCourseIds = JSON.parseArray(adjust.getAllLockCourseIds(), Long.class);
@@ -1107,9 +1107,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				}
 				//记录操作日志
 				musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目通过(费用审核中 -> 报名中)", sysUser.getId(), ""));
-				Set<Integer> roleIds = new HashSet<>(1);
-				roleIds.add(SysUserRole.SECTION_MANAGER);
-				sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getUsername());
 			}
 		} else if (calender.getPaymentType() == ADD_STUDENT) {
 			// 学生加到班级
@@ -1123,7 +1120,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}else if(calender.getPaymentType() == SPAN_GROUP_CLASS_ADJUST){
 			//删除和解冻班级,课程信息
 			MusicGroupStudentClassAdjust adjust = musicGroupStudentClassAdjustDao.findByBatchNo(batchNo);
-			List<Map<String,String>> classGroupStudents = (List<Map<String,String>>)JSON.parse(adjust.getClassGroupStudents());
+			List<Map> classGroupStudents = JSON.parseArray(adjust.getClassGroupStudents(),Map.class);
 			List<Integer> studentIds = JSON.parseArray(adjust.getStudentIds(), Integer.class);
 			List<Long> courseIds = JSON.parseArray(adjust.getSubLockCourseIds(), Long.class);
 			List<Long> allLockCourseIds = JSON.parseArray(adjust.getAllLockCourseIds(), Long.class);

+ 6 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -524,8 +524,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		List<StudentPreRegistration> studentPreRegistrationList = studentPreRegistrationDao.queryByMusicGroupId(musicGroupId);
 		Map<Integer,String> receiverList = studentPreRegistrationList.stream().collect(Collectors.toMap(StudentPreRegistration :: getUserId, StudentPreRegistration :: getPhone));
 		
-		sysMessageService.batchSendImGroupMessage(MessageTypeEnum.SMS_MUSIC_GROUP_PARENT_MEETING_NOTICE, userId + "", null, new String[]{musicGroupId}, null, meetingDate, address);
-		sysMessageService.batchSendMessage(MessageSender.AWSMS, MessageTypeEnum.SMS_MUSIC_GROUP_PARENT_MEETING_NOTICE, receiverList, null, 1, null, null, meetingDate, address);
+		String meetingDateStr = sdf_ymdhms.format(meetingDate);
+		sysMessageService.batchSendImGroupMessage(MessageTypeEnum.SMS_MUSIC_GROUP_PARENT_MEETING_NOTICE, userId + "", null, new String[]{musicGroupId}, null, meetingDateStr, address);
+		sysMessageService.batchSendMessage(MessageSender.AWSMS, MessageTypeEnum.SMS_MUSIC_GROUP_PARENT_MEETING_NOTICE, receiverList, null, 1, null, null, meetingDateStr, address);
 		return true;
 	}
 
@@ -1147,7 +1148,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupDao.update(musicGroup);
         }
         //记录日志信息
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "修改乐团计划声部、乐器", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "基础信息提交审核(编辑中 -> 审核中)", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
         //删除原有的乐团声部规划
         musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
         //删除原有的声部商品组合
@@ -1338,12 +1339,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 添加成员
         imGroupMemberService.join(Long.parseLong(musicGroupId), userRoleMap);
 
-        Set<Integer> roleIds = new HashSet<>(3);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
-
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_ACTION_APPLY, "", musicGroup.getName());
     }
 
     @Override
@@ -2599,8 +2594,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
         userRoleMap.put(directorUserId, "乐队指导");
-        userRoleMap.put(educationalTeacherId, "运营主管");
-        userRoleMap.put(teamTeacherId, "教务老师");
+        userRoleMap.put(educationalTeacherId, "乐团主管");
+        userRoleMap.put(teamTeacherId, "运营主管");
         
         classGroups.forEach(e -> {
         	imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);

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

@@ -336,27 +336,27 @@
 
 	<select id="getStudentConversionData" resultMap="IndexBaseMonthData">
 		SELECT
-			mg.organ_id_,
-			CONCAT( #{month}, '-01' ) month_,
-			COUNT( DISTINCT sr.user_id_ ) total_num_,
-			COUNT( DISTINCT IF((cssp.group_type_='PRACTICE' AND pg.type_='CHARGE') OR cssp.group_type_='VIP', cssp.user_id_, NULL) ) activate_num_,
-			TRUNCATE(COUNT( DISTINCT IF((cssp.group_type_='PRACTICE' AND pg.type_='CHARGE') OR cssp.group_type_='VIP', cssp.user_id_, NULL) )/COUNT( DISTINCT sr.user_id_ )*100, 2) percent_
+			cs.organ_id_,
+			CONCAT( '2020-01', '-01' ) month_,
+			COUNT( DISTINCT m.user_id_ ) total_num_,
+			COUNT( DISTINCT m.user_id_ ) activate_num_,
+			COUNT( DISTINCT m.user_id_ ) percent_
 		FROM
-			student_registration sr
-			LEFT JOIN student_pre_registration spr ON sr.user_id_ = spr.user_id_ AND sr.music_group_id_ = spr.music_group_id_
-			LEFT JOIN music_group mg ON spr.music_group_id_ = mg.id_
-			LEFT JOIN course_schedule_student_payment cssp ON sr.user_id_=cssp.user_id_
-			LEFT JOIN practice_group pg ON cssp.music_group_id_=pg.id_
+			course_schedule_student_payment m
+				LEFT JOIN course_schedule cs ON m.course_schedule_id_=cs.id_
 		WHERE
-			mg.del_flag_ = 0
-			AND mg.organ_id_ IS NOT NULL
-			<if test="month!=null and month!=''">
-				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &lt;= #{month}
-			</if>
+			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
+			AND cs.organ_id_ IS NOT NULL
+			AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
+			AND m.group_type_ IN ('VIP', 'PRACTICE')
+			AND m.user_id_ IN
+			<foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+				#{studentId}
+			</foreach>
 		GROUP BY
-			mg.organ_id_
+			cs.organ_id_
 		ORDER BY
-			mg.organ_id_;
+			cs.organ_id_;
 	</select>
 
 	<select id="getMusicGroupPreRegistrationStudentData" resultMap="IndexBaseMonthData">
@@ -404,4 +404,22 @@
 		ORDER BY
 			mg.organ_id_;
 	</select>
+
+	<select id="getMusicGroupStudentIdFromPre" resultType="int">
+		SELECT
+			sr.user_id_
+		FROM
+			student_registration sr
+			LEFT JOIN student_pre_registration spr ON sr.user_id_ = spr.user_id_ AND sr.music_group_id_ = spr.music_group_id_
+			LEFT JOIN music_group mg ON spr.music_group_id_ = mg.id_
+		WHERE
+			mg.del_flag_ = 0
+			AND mg.organ_id_ IS NOT NULL
+			AND mg.status_ = 'PROGRESS'
+			<if test="paymentStatus!=null">
+				AND sr.music_group_status_ = 'NORMAL'
+				AND sr.payment_status_ = #{paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			</if>
+			AND DATE_FORMAT( sr.create_time_, '%Y-%m' ) &lt;= #{month}
+	</select>
 </mapper>

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

@@ -80,7 +80,7 @@
             <if test="courseType != null">
                 course_type_ = #{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
-                update_time_ = #{updateTime}
+                update_time_ = NOW()
         </set>
         WHERE id_ = #{id}
     </update>
@@ -108,7 +108,7 @@
                 <if test="paymentCourseDetail.courseType != null">
                     course_type_ = #{paymentCourseDetail.courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 </if>
-                update_time_ = #{paymentCourseDetail.updateTime}
+                update_time_ = NOW()
             </set>
             WHERE id_ = #{paymentCourseDetail.id}
         </foreach>

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

@@ -746,7 +746,7 @@
         LEFT JOIN subject s ON sr.actual_subject_id_ = s.id_
         where sr.music_group_id_ = #{musicGroupId} and sr.user_id_ = #{studentId}
     </select>
-    <select id="getStudentSubjectNameByStuIds" resultType="java.lang.String">
+    <select id="getStudentSubjectNameByStuIds" resultType="java.util.Map">
         SELECT sr.user_id_ 'key',s.name_ 'value'
         FROM student_registration sr
         LEFT JOIN subject s ON sr.actual_subject_id_ = s.id_